使用ffmpeg在一个音频文件中使用多个fadeIn / fadeOut效果

时间:2014-04-22 12:00:33

标签: audio ffmpeg

我有一些问题需要为一个音频文件添加多个淡入淡出效果。当我尝试使用这样的命令时:

ffmpeg -y -i /home/user/video/test/sound.mp3 -af "afade=t=in:ss=0:d=3,afade=t=out:st=7:d=3,afade=t=in:st=10:d=3,afade=t=out:st=17:d=3,afade=t=in:st=20:d=3,afade=t=out:st=27:d=3" /tmp/test.mp3

然后我的输出音频文件只有一次 fadein fadeout 。所有下一个效果都不会被应用。有没有办法将多个淡入淡出效果应用于同一个音频文件?此外,此命令中 ss st 参数之间有什么区别?

3 个答案:

答案 0 :(得分:7)

使用ffmpeg 2.5.2为我工作。

我正在使用fade in and fade out audio filter,持续时间为3秒。

ffmpeg -i audio.mp3 -af 'afade=t=in:ss=0:d=3,afade=t=out:st=27:d=3' out.mp3

我建议升级你的ffmpeg,因为这可能是个错误。更多信息in the docs

答案 1 :(得分:7)

问题是,在淡出音频后,你试图在沉默中消失。

解决方法是在您想要开始淡入时禁用淡出滤镜。

您可以使用Timeline Editing实现此功能,以便在特定时间内启用过滤器。

以下示例运行正常:

ffmpeg -i input.mp3 -af "afade=enable='between(t,0,3)':t=in:ss=0:d=3,afade=enable='between(t,7,10)':t=out:st=7:d=3,afade=enable='between(t,10,13)':t=in:st=10:d=3,afade=enable='between(t,13,16)':t=out:st=13:d=3" -t 16 output.mp3

答案 2 :(得分:5)

看看这里:ffmpeg volume filters

volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame

完成命令:

ffmpeg -i movie.wav -filter volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame modified-movie.wav