如果我有一个 .wav 格式的音频文件,我可以sox
按如下方式运行它:
sox in.wav out6.wav silence -l 1 0.1 1% -1 2.0 1%
这个命令对于消除静音非常有效。
我可以在 ffmpeg 中使用类似的命令吗?
目前,我正在通过以下方式从 .mp4 转换为 .wav
ffmpeg -i input.mp4 output.wav
然后执行 sox 沉默删除命令。
我想要做的是,不缩短音频,而是将音频中的静音区域保留为空白部分/暂停。
答案1
silenceremove
该过滤器丢弃低于阈值(以分贝为单位)的样本,静默期可以缩短到一定的间隔。
来自FFmpeg手动的:
以下示例显示了如何使用此过滤器来开始录制,该录制不包含开始时的延迟,这种延迟通常发生在按下录制按钮和表演开始之间:
ffmpeg in.mp4 -filter:a "silenceremove=start_periods=1:start_duration=5:start_threshold=0.02" out.mp4