如何使用 FFMpeg 仅从 mp3 文件的开头和结尾修剪静音?

如何使用 FFMpeg 仅从 mp3 文件的开头和结尾修剪静音?

经过调查寻找解决问题的方法,我最终一无所获。

我希望 Windows 10 中有一个上下文菜单选项,这样每当我右键单击 MP3 文件时,我都可以使用此选项来修剪 MP3 文件开头和结尾的静音部分。我不想从音频文件的中间部分删除静音部分。

谁能给我提供适当的 FFmpeg 命令行来删除 MP3 文件的开头和结尾的静音部分?

答案1

像这样:

ffmpeg -i input.mp3 -af "silenceremove=start_periods=1:start_duration=1:start_threshold=-60dB:detection=peak,aformat=dblp,areverse,silenceremove=start_periods=1:start_duration=1:start_threshold=-60dB:detection=peak,aformat=dblp,areverse" output.flac

您需要根据具体情况调整阈值( start_threshold)和持续时间( )。start_duration

答案2

对我来说,使用 mp4 文件执行此项工作的最佳选择是此过滤器:

ffmpeg -i INPUT.mp4 -af "areverse,atrim=start=0.2,silenceremove=start_periods=1:start_silence=0.1:start_threshold=0.02,areverse,atrim=start=0.2,silenceremove=start_periods=1:start_silence=0.1:start_threshold=0.02"
-acodec aac OUTPUT.mp4,

了解过滤器的所有部件:

  • areverse:反转整个音频。
  • atrim=start=0.2:剪掉前 0.2 秒,以避免音频结尾处可能出现的高频停止录制噪音(请记住音频是反转的)。
  • silenceremove=start_periods=1:start_silence=0.1:start_threshold=0.02:此部分剪掉了结尾的静默。
  • areverse:此部分将音频恢复为原始方式。
  • atrim=start=0.2剪掉前 0.2 秒以避免音频开头可能出现的高噪音
  • silenceremove=start_periods=1:start_silence=0.1:start_threshold=0.02":这部分删除了开头的沉默

答案3

值得一提的是,虽然原始问题明确要求使用 FFmpeg,但有一个名为的工具mp3splt可以修剪静音(-r),而无需重新编码 MP3。这样可以保持 MP3 的原始质量。

答案4

我尝试了所有答案ffmpeg,但mp3split无法对我的 MP3 文件执行此操作。最后我通过使用得到了结果sox

sox input.mp3 ./output.mp3 silence 1 0.1 0.1% reverse silence 1 0.1 0.1% reverse

我从这里因为其他来源没有mp3 库如果没有它,它就无法工作。

相关内容