FFMPEG:向先前的 amix 输出添加更多曲目

FFMPEG: add more tracks to previous amix output

我可以使用类似

的命令在 ffmpeg 中混合多个音轨
ffmpeg -i track1.wav \
       -i track2.wav \
       -i track3.wav \
       -filter_complex "[0:a] [1:a] [2:a] amix=3 [out]" \
       -map "[out]" \
       -c copy mix.wav

在我的用例中,所有轨道的长度都相同。我会定期收到一首新曲目(称之为 track4.wav),我想制作所有四首曲目的新混音。天真的解决方案是重新 运行 上面的评论和额外的轨道,但随着轨道数量的增加,这会变得昂贵。

是否有一种优雅的方法可以将 mix.wavtrack4.wav 结合起来以获得等效的结果,并且与 "naive" 方法相比不会出现音量不平衡或质量显着下降?

只要您保存到 PCM/WAV,就没有质量损失可言。

使用最新版本的 ffmpeg,您可以运行

ffmpeg -i mixof3.wav \
       -i track4.wav \
       -filter_complex "[0:a] [1:a] amix=2:weights='3 1' [out]" \
       -map "[out]" \
       mixof4.wav

这相当于 运行 您的原始命令有 4 个输入。