我目前正在开发一个卡拉 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