使用 ffmpeg 在一个音频文件中实现多个淡入/淡出效果

问题描述 投票:0回答:3

我在向一个音频文件添加多个淡入淡出效果时遇到一些问题。当我尝试使用这样的命令时:

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

然后我的输出音频文件仅应用一次 fadeinfadeout。接下来的所有效果都不会应用。有没有可能的方法将多个淡入淡出效果应用于同一个音频文件?另外,这个命令中的ssst参数有什么区别?

audio ffmpeg
3个回答
8
投票

适用于我的 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,因为这可能是一个错误。更多信息在文档中


8
投票

问题是,在淡出音频后,您试图在静音中淡出。

解决方案是当您想要开始淡入时禁用淡出过滤器。

您可以通过时间轴编辑来实现这一点,以在特定的时间内启用过滤器。

以下示例效果很好:

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

5
投票

看这里: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
© www.soinside.com 2019 - 2024. All rights reserved.