使用 ffmpeg 将任意数量的音频文件混合成单个立体声音频文件

使用 ffmpeg 将任意数量的音频文件混合成单个立体声音频文件

我目前正在开发一个卡拉 OK 应用程序,需要将任意数量(从 1 到 12)的输入音轨与一个歌曲音轨合并为一个应为立体声的输出音频文件。

我尝试使用 amerge 和 amix 过滤器,它们效果很好,但都有一个问题 - 生成的混音音量低于源文件中的音量。我使用的命令是:

ffmpeg.exe -y  -i song.mp3 -i track1.mp3  .... -i track[N].mp3  -filter_complex amerge=inputs=[N]  -c:a libmp3lame  -ar 44100 -q:a 1 mix.mp3

我也尝试使用平移滤镜,它对于 2 个文件效果很好,其中
pan=stereo:c0=c0+c1:c1=c0+c1 - 结果正是我需要的,但我无法让它处理超过 2 个文件(而我需要能够合并最多 12 个)。

答案1

供将来参考:正如 llogan 所说,您首先需要 amerge:

ffmpeg -i 输入1.mp3 -i 输入2.mp3 -filter_complex “[0:a][1:a]amerge=inputs=2[a]” -map “[a]” -ac 2 输出.mp3

相关内容