答案1
Stack Overflow 帖子中回答了这个问题 使用 FFMPEG 和 silentdetect 来消除音频静音。
第一个注释是,silencedetect 仅检测静音,而不是消除静音。您应该改用 silentremove 过滤器。
要检测你的 ffmpeg 版本是否有此过滤器运行:
ffmpeg -hide_banner -filters | grep silenceremove
输出应如下所示:
silenceremove A->A Remove silence
删除静音部分的命令可能如下所示:
ffmpeg -i input.mp3 -af silenceremove=1:0:-50dB output.mp3
其中silenceremove参数解释为删除:
- 在开头(由第一个参数表示
1
) - 最小长度为零(由第二个参数表示
0
) - 静音被定义为低于 -50 分贝(以 表示
-50dB
)
参考:FFMPEG 静音删除过滤器。
为了找到正确的静音值,首先将输入音频音量标准化为
0dB
,如中所述这个答案。