如何修复错误的mp3持续时间?


22

我的音乐库中有许多歌曲显示的持续时间值不正确,因此只能在Clementine中部分播放。在Banshee和其他一些播放器中,他们显示不同的持续时间值,有时播放整首歌曲。

有没有一种方法可以解决此问题而无需“重新编码”歌曲?

Answers:


24

MP3 Diags可以修复不正确的持续时间(和其他错误)。它是开源的,并且在存储库中。它是一个GUI工具。

安装

sudo apt-get install mp3diags mp3diags-doc

另一个选项是MP3val,可以通过命令行或GUI使用:

安装

sudo apt-get install mp3val

使用范例

mp3val damaged.mp3 -f -t

-f:修复错误, -t:保留原始时间戳


这对我有用。我曾经cat将有声读物的部分组合成一个文件(cat 1.mp3 2.mp3 > out.mp3),非常适合播放,但是几乎每个播放器都会对时间戳感到古怪,甚至mediainfo显示从第一个文件开始的持续时间,而不是合并后的时间。
13年

cat对于合并mp3之类的任务而言并不理想。更好的方法:http
//superuser.com/questions/314239/how-to-join-merge-many-mp3-files

为什么你这么想?MP3文件只不过是原始流,除了通过简单地重新评估Xing标头数据而解决的琐碎副作用之外,它们几乎是完美的候选者cat。即使没有mp3val,文件仍然可以在我发送给它们的每个播放器中播放。cat与使用ffmpeg重新编码相比,它非常高效且速度更快。即使添加了mp3val命令。
13年

ffmpegconcat-acodec copy重新编码-它只是复制流(因此它的快),但会在第一个地方一个适当的文件(没有无用的报头和标签数据在生成的文件中出现多次)。
phoibos

10

如果您不想安装任何新东西,请尝试使用ffmpeg

ffmpeg -i file_orig.mp3 -acodec copy file_fixed.mp3

完美的解决方案,如果ffmpeg本身创建了错误的mp3文件,也可以使用!
Pierpaolo Cira

mp3valmp3check解决方案不起作用时,这实际上对我有用。(请确定,它不会重新编码,对吧?)
Noldorin

使用-acodec复制,它不会重新编码。如果要验证,请尝试使用和不使用它,并检查其运行速度。
Alcaro

1

除了与实际音频不匹配的VBR头(您将使用它mp3val来纠正,如另一个答案中所述)外,另一个可能的原因是MP3文件的ID3标签的标签值不正确TLEN。您可以使用包装中的mid3v2工具来解决此问题,mutagen以删除标签(显然是可选标签):

$ mid3v2 --delete-frames=TLEN filename.mp3

音乐播放器Quodlibet也有一个方便的“修复MP3持续时间”插件,您可以用来执行此操作。

(摘自Quodlibet常见问题解答:http ://quodlibet.readthedocs.org/en/latest/guide/faq.html )


1

mp3check对通配符也非常适合我。

sudo apt-get install mp3check

mp3check {filename or wildcard} --cut-junk-start --cut-junk-end --fix-headers

Windows Media Player显示错误的mp3文件持续时间时提供帮助
Mantas D

警告如果您有id3v2标签,封面等,请特别注意这些问题(我是很难学的)bugs.launchpad.net/ubuntu/+source/mp3check/+bug/592775 bugs.launchpad.net/ubuntu/+来源/ mp3check / + bug / 1348223
digitaltoast
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.