MusicFreeDesktop icon indicating copy to clipboard operation
MusicFreeDesktop copied to clipboard

添加ffmpeg支持

Open CTZZG opened this issue 6 months ago • 0 comments

引入ffmpeg以解决html/web audio 无法播放部分格式的问题(如m4a/alac) ffmpeg流程: 1、HTMLAudioElement 判断为不受支持的音频 2、将文件写入ffmpeg的MEMFS 3、使用-i input_xxxx -f s16le -ar 44100 -ac 2 output.pcm 转换为pcm,推送Web Audio API 播放

PR 解决的问题 (PR Summary)

html/web audio受限于Chromium,部分音频格式不支持,引入ffmpeg

影响范围 (Impact Scope)

之前采取引入node-mpv调用mpv以支持更广泛的音频格式,改动较大,调试困难 1、ffmpeg主要引入@ffmpeg/core和@ffmpeg/ffmpeg,修改audio-controller.ts 2、res/ffmpeg 包含 FFmpeg Core 文件,确保这些文件在 Electron 应用打包后能够被 FFmpeg 的 Web Worker 正确访问 3、引入copy-webpack-plugin,修改config/webpack.renderer.config.ts ,在Running prePackage hook环节将ffmpeg.js复制到 .webpack/renderer/main_window 负责加载.wasm 模块 4、打包后文件体积大概增加10M,转码播放受文件大小影响,基本在5s内

截屏 (Screenshot)

image

CTZZG avatar May 30 '25 03:05 CTZZG