如何在 FFMPEG 中修剪输入音频?

如何在 FFMPEG 中修剪输入音频?

我想将音频文件连接起来,并在它们之间设置特定的静音。然后,我需要修剪输入音频,以使中间的空间准确。

我试过

ffmpeg \
-i 1.mp3 -af silenceremove=1:0:-50dB \
-f lavfi -t 0.5 -i anullsrc \
-i 2.mp3 -af silenceremove=1:0:-50dB \
-f lavfi -t 0.5 -i anullsrc -i 3.mp3 \
-af silenceremove=1:0:-50dB \
-filter_complex 'concat=n=5:v=0:a=1' out.mp3

但收到错误:

选项 af(设置音频过滤器)不能应用于输入 url anullsrc - 您正在尝试将输入选项应用于输出文件,反之亦然。

将此选项移至其所属的文件之前。

分析输入文件 anullsrc 的选项时出错。

打开输入文件时出错:参数无效

它似乎-af适用于下一个-f选项。

答案1

过滤器不是源操作,而是对选择输出的流执行的。

在这种情况下,由于您有多个需要合并的文件,请在图表内执行所有过滤。

ffmpeg \
-f lavfi -t 0.5 -i anullsrc \
-i 1.mp3 \
-i 2.mp3 \
-i 3.mp3 \
-filter_complex '[1]silenceremove=1:0:-50dB[a1];\
                 [2]silenceremove=1:0:-50dB[a2];\
                 [3]silenceremove=1:0:-50dB[a3];\
                 [a1][0][a2][0][a3]concat=n=5:v=0:a=1' out.mp3

相关内容