如何使用 `ffmpeg` 修剪 mp3 文件?

Mar*_*son 14 linux ffmpeg mp3

这是一个困扰我一段时间的 Linux 音频 MP3 难题:

如何修剪 MP3 音频文件的开头几秒?(我无法ffmpeg -ss使用 00:01 或 1.000 格式)

到目前为止,为了做我想做的事情,我采用 GUI 方式来做,这对于单个文件来说可能会更慢,而对于一批文件来说肯定会更慢。

roz*_*acz 6

要在 linux 下编辑 mp3,我建议使用sox。它有一个简单易用的trim效果,man sox可以满足您的要求(请参阅datails - search (press /) for "trim start")。例子:

sox input.mp3 output.mp3 trim 1 5
Run Code Online (Sandbox Code Playgroud)

你没有提到它,但如果你的目的只是消除文件开头的静音,你会发现silence效果更有用(man sox,搜索“above-periods”)


小智 6

您可以尝试使用mp3splt,它可以拆分 MP3 和 Ogg 文件,并且具有不重新编码文件的优点,从而避免质量损失。

  • 我喜欢; 谢谢。它很简单,但有很多选项...例如:这是我刚刚使用的命令,它将分割时间添加到文件名中: `mp3splt "$file" 4.12 27.55.7` ...它允许自定义输出名称格式和多个分割点。 (2认同)

max*_*zig 5

确保您的时间规范以小时开头。

引用ffmpeg 手册页

位置可以以秒为单位或以“hh:mm:ss[.xxx]”形式

这意味着当您选择第二种语法时,只有该.xxx部分是可选的。否则 ffmpeg 可能会将其错误解析为秒。

持续时间也是如此:

持续时间可以是以秒为单位的数字,或者以“hh:mm:ss[.xxx]”形式

另一个陷阱是 ffmpeg 参数的顺序(例如,输入文件的-ss/-t选项必须位于该-i选项之前)。

例子

$ wget http://traffic.libsyn.com/twiv/TWiV179.mp3
$ ffmpeg -ss 1:05:59.3 -t 00:02:03.9 -i TWiV179.mp3 -acodec copy \
     what_is_a_hmm_twiv179.mp3
Run Code Online (Sandbox Code Playgroud)

根据规范,-ss 1:05:59.3 -t 2:03.9您将得到不同的结果(即 2 秒长的片段)。

(在 Fedora 17 上使用 ffmpeg 版本 0.10.7 进行测试。)