我在向一个音频文件添加多个淡入淡出效果时遇到一些问题。当我尝试使用这样的命令时:
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参数有什么区别?
适用于我的 ffmpeg 2.5.2。
我正在使用淡入和淡出音频过滤器,两者持续时间均为 3 秒。
ffmpeg -i audio.mp3 -af 'afade=t=in:ss=0:d=3,afade=t=out:st=27:d=3' out.mp3
我建议升级您的 ffmpeg,因为这可能是一个错误。更多信息在文档中。
问题是,在淡出音频后,您试图在静音中淡出。
解决方案是当您想要开始淡入时禁用淡出过滤器。
您可以通过时间轴编辑来实现这一点,以在特定的时间内启用过滤器。
以下示例效果很好:
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
看这里:ffmpeg 音量过滤器
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