如何使用 ffmpeg amerge 过滤器混合两个音频文件

zel*_*lla 3 ffmpeg

我有两个音频文件,我想将它们合并为一个带有音量和延迟过滤器的文件。我需要在一个音频流中插入延迟,也需要改变音量。我在理解map选项方面有问题...

ffmpeg -i one.mp3 -i two.mp3 -shortest -filter_complex \
"[0:a]volume=0.4[a0]; \
 [1:a]volume=5.0[a1]; \
 [0:a]adelay=10000[0:a]; \
 [0:a][1:a]amerge=inputs=2[out]" \
 #wrong 
 -map [a0] -map [a1] -map ["out"] -ac 2 -c:a libfdk_aac output.m4a
Run Code Online (Sandbox Code Playgroud)

如何正确地做到这一点?

Gya*_*yan 5

假设您打算将整个第一个输入延迟 10000 毫秒,

ffmpeg -i one.mp3 -i two.mp3 -shortest -filter_complex \
"[0:a]adelay=10000|10000,volume=0.4[a0]; \
 [1:a]volume=5.0[a1]; \
 [a0][a1]amix=inputs=2[out]" \
 -map "[out]" -ac 2 -c:a libfdk_aac output.m4a
Run Code Online (Sandbox Code Playgroud)

(记住不要在行尾的斜杠后面包含任何空格。)

  • amix 进行混音,即 2 通道 + 2 通道 = 2 通道输出,而 amerge 是 2 通道;+ 2 通道 = 4 通道 (3认同)