这是一个困扰我一段时间的 Linux 音频 MP3 难题:
如何修剪 MP3 音频文件的开头几秒?(我无法ffmpeg -ss使用 00:01 或 1.000 格式)
到目前为止,为了做我想做的事情,我采用 GUI 方式来做,这对于单个文件来说可能会更慢,而对于一批文件来说肯定会更慢。
要在 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”)
确保您的时间规范以小时开头。
引用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 进行测试。)