我可以使用ffmpeg将两个音频mp3文件叠加/缩混成一个mp3输出文件吗?
使用amix过滤器:
ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3
或者amerge过滤器:
ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amerge=inputs=2 -ac 2 output.mp3
ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex "amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3" output.mp3
使用join过滤器:
ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex join=inputs=2:channel_layout=stereo output.mp3
或者amerge:
ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amerge=inputs=2 output.mp3
使用amix过滤器:
ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3
看一下这个:
ffmpeg -y -i ad_sound/whistle.mp3 -i ad_sound/4s.wav -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame ad_sound/outputnow.mp3
我认为这会有所帮助。
amix
滤波器有助于将多个音频输入混合到单个输出中。
如果您运行以下命令:
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
此命令将3个输入音频流(我使用两个mp3文件,在下面的示例中)混合为单个输出,其持续时间与第一个输入相同,并且丢失转换时间为3秒。
amix
过滤器接受以下参数:
例如,我在Ubuntu中运行以下命令:FFMPEG版本:3.2.1-1 UBUNTU 16.04.1
ffmpeg -i background.mp3 -i bSound.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -codec:a libmp3lame -q:a 0 OUTPUT.mp3
-codec:a libmp3lame -q:a 0
用于设置可变比特率。请记住,如果需要,您需要安装libmp3lame库。但是,即使没有-codec:a libmp3lame -q:a 0
部分也能工作。
如果它们的长度不同,您可以使用apad为最短的声音添加静音
随着Bash
set 'amovie=a.mp3 [gg]; amovie=b.mp3 [hh]; [gg][hh] amerge'
ffmpeg -f lavfi -i "$1" -q 0 c.mp3