#寻找指定路径下所有的wav文件 find $filePath -iname "*.wav" > wav.flist #依次取出每个wav文件,与test.wav进行合并 for line in `cat wav.flist` do echo $line ffmpeg -i path/to/test.wav -i $line -filter_complex "[0:a]volume=1,atrim=1:4[a1];[1:a]volume=0.5[a2];[a1][a2]amix=inputs=2:duration=longest" -y $line done
-
[0:a]volume=1[a1]
:这个部分将第一个音频的音量设置为1,也就是原始音量。[0:a]
表示选择第一个音频输入,volume=1
将其音量设置为1(保持不变),[a1]
是输出的音频流名称。 - atrim=1:4 截取第一个音频1:4秒
-
[1:a]volume=0.5[a2]
:这个部分将第二个音频的音量设置为0.5倍。[1:a]
表示选择第二个音频输入,volume=0.5
将其音量设置为0.5倍,[a2]
是输出的音频流名称。 -
[a1][a2]amix=inputs=2:duration=longest
:这个部分将两个音频流混合在一起。[a1]
和[a2]
表示之前设置的两个音频流,amix
将它们混合在一起,inputs=2
表示两个输入音频,duration=longest
表示输出音频的持续时间与最长的输入音频持续时间相匹配。 -
output.mp3
:这是输出音频文件的路径和文件名。您可以将其更改为所需的位置和名称。