如何修复不正确的 mp3 持续时间?

Rol*_*Xor 30 music mp3

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

有没有办法解决这个问题而不必“重新编码”这首歌?

pho*_*bos 28

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

安装

sudo apt-get install mp3diags mp3diags-doc
Run Code Online (Sandbox Code Playgroud)

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

安装

sudo apt-get install mp3val
Run Code Online (Sandbox Code Playgroud)

使用示例

mp3val damaged.mp3 -f -t
Run Code Online (Sandbox Code Playgroud)

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

  • 带有 concat 和 -acodec copy 的 ffmpeg _不_ 重新编码 - 它只是复制流(所以速度很快),但首先创建一个正确的文件(没有无用的标头和标签数据多次出现在生成的文件)。 (4认同)

Alc*_*aro 19

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

ffmpeg -i file_orig.mp3 -acodec copy file_fixed.mp3
Run Code Online (Sandbox Code Playgroud)

  • 完美的解决方案,如果 ffmpeg 本身创建了错误的 mp3 文件,也可以工作! (2认同)
  • 使用 -acodec copy,它不会重新编码。如果您想验证,请尝试使用和不使用它,并检查它的运行速度。 (2认同)