如何使用 ffmpeg.exe 在特定时间间隔内降低音量

如何使用 ffmpeg.exe 在特定时间间隔内降低音量

我正在尝试使用 ffmpeg.exe 在特定时间间隔内降低音量。假设我有一个 5 分钟长的视频,我想在 00:01:30 和 00:02:00 之间降低音量。我读到我们可以同时使用不同的参数,但我搞不懂。

任何帮助将不胜感激。

答案1

您可以使用复合过滤器来实现:

ffmpeg -i in.mp4 -filter_complex "[0:v]null[out2];[0:a]atrim=duration=90[a];\
[0:a]atrim=start=90:duration=30,volume=0.1,asetpts=PTS-STARTPTS[b];[a][b]concat=v=0:a=1[c];\
[0:a]atrim=start=120,asetpts=PTS-STARTPTS[d];[c][d]concat=v=0:a=1[out1]" \
-acodec mp2 -map [out1] -map [out2] out.mp4

它将 90 秒到 120 秒片段的音量降低到 0.1(1.0 为满)。它是如何工作的?它不对视频流(过滤器为空)执行任何操作,只是将其包含在过滤器图中。然后从音频流中修剪前 90 秒,然后从音频流中修剪 30 秒(90-120)并将音量降低到 0.1。然后将最后 2 个音频流与 concat 组合在一起。然后再次修剪其余音频流并再次将其组合在一起。

希望能帮助到你。

相关内容