我遇到了一个问题,但在任何地方都找不到解决方案,因此:
我有两个文件,f1.mp3 是一个普通的 mp3 文件,只有一些声音,f2.mp3 大部分是静音的,但中间有一部分有声音。两个文件都是 1 分钟长。问题是,当我尝试合并它们时,f1.mp3 的音量变低了。这个过程重复了几次,结果第一个声音完全静音了。我该怎么做才能避免这个问题?目前我已经测试了这两个说明:
ffmpeg -i f1.mp3 -i f2.mp3 -filter_complex amix=inputs=2:duration=first out.mp3
和
ffmpeg -i f1.mp3 -i f2.mp3 -filter_complex \"[0:a][1:a]amerge[aout]\" -map \"[aout]\" -ac 2 out.mp3
答案1
为了amix
保持与输入相同的最大音量以防止削波,它会在混合之前对音频进行标准化(因此,amixing
相同的两个输入将呈现相同的输出,而不是增加其音量)。如果您需要将两个输入的原始音量相加,则必须应用过滤volume
器:
ffmpeg -i f1.mp3 -i f2.mp3 -filter_complex '[0][1] amix=inputs=2:duration=first [a];[a] volume=volume=2 [b]' -map [b] out.mp3
请注意,如果您需要两个以上的音频,则需要应用相应的增益。
注意:由于第二个过滤器,输出可能会被剪切,请检查结果!