我有一些问题需要为一个音频文件添加多个淡入淡出效果。当我尝试使用这样的命令时:
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 参数之间有什么区别?
答案 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)
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