修剪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 [关闭]

使用 NAudio 修剪 mp3 文件

如何使用 ffmpeg/php 在按钮单击时将 mp4 文件转换为 mp3?

FFMPEG:如何使用 FFMPEG 将附加图片 (APIC) 从源 mp3 文件转码到目标 mp3 文件?

ffmpeg 将mp3文件转成aac文件

为啥立体声 mp3 文件在使用 ffmpeg 从 mp4 转换时会丢失一个通道?