修剪mp3文件时ffmpeg不精确
Posted
技术标签:
【中文标题】修剪mp3文件时ffmpeg不精确【英文标题】:ffmpeg being inprecise when trimming mp3 files 【发布时间】:2019-06-06 18:42:44 【问题描述】:我想使用 ffmpeg 来修剪一些 mp3 而无需重新编码。我使用的命令是ffmpeg -i "inputfile.mp3" -t 00:00:12.414 -c copy out.mp3
但是,out.mp3 的长度为 12.460s,当我在 Audacity 中加载文件时,我可以看到它在错误的位置被剪切,而不是在 12.414s。
这是为什么?我用谷歌搜索了一下,并尝试了一些其他命令,例如ffmpeg -i "inputfile.mp3" -ss 0 -to 00:00:12.414 -c copy out.mp3
(有趣的是,这会导致不同的长度为 12.434 秒),但始终无法正确缩短毫秒数。
PS。我不确定 SO 是否是正确的地方,因为它在技术上与编程无关,但是我在 ffmpeg 上找到的用于修剪音频文件的大部分内容都是 *** 问题,例如。 G。 ffmpeg trimming videos with millisecond precision
【问题讨论】:
我有同样的问题你有没有找到更精确修剪的解决方案? @EdmundRojas 没有。不幸的是,似乎不可能以高精度修剪有损音频。另见布拉德的回答 【参考方案1】:您无法以这种精度水平修剪 MP3(也不是大多数有损编解码器输出)。在编码期间添加一个 MP3 帧左右的填充。 (另请参阅:https://wiki.hydrogenaud.io/index.php?title=Gapless,以及完成这项工作所需的所有技巧。)
如果您需要精确计时,请使用未压缩的东西,例如 WAV 中的 PCM,或无损压缩(例如 FLAC)。
【讨论】:
非常有趣的答案,请问mpeg2 ts(mp2)怎么样。可以用这种格式完全精确地修剪吗??【参考方案2】:在 Linux 上,您可以使用 mp3splt:
mp3splt -f mp3file.mp3 从 到 -o 输出文件格式
例子:
mp3splt -f "/home/audio 文件夹/test.mp3" 0.11.89 3.25.48 -o @f_trimmed 这将创建一个“/home/audio 文件夹/test_trimmed.mp3”
有关参数的更多信息,请查看 mp3splt 手册页here
在 Windows 上,您可以使用 mp3DirectCut
mp3DirectCut 有一个 GUI,但它也有命令行支持
【讨论】:
以上是关于修剪mp3文件时ffmpeg不精确的主要内容,如果未能解决你的问题,请参考以下文章
FFmpeg 可以“编码”为 mp3,但不接受“输入”mp3 [关闭]
如何使用 ffmpeg/php 在按钮单击时将 mp4 文件转换为 mp3?