有没有一种工具可以检测(如果可能的话,修复)MP3 文件中的故障?

Tob*_*ler 39 linux mp3 repair

我的收藏包含一些 MP3,它们有一些小故障,例如:

  • 加载时显示错误的持续时间
  • 小跳
  • 尽管持续时间声称还剩一分钟,但突然结束
  • 噪音

我正在寻找一种工具,它可以检测尽可能多的这些故障并修复那些可以修复的故障(显然,例如在大多数情况下不能简单地消除噪声)。

FeR*_*eRD 40

命令行工具mp3val可以快速扫描和修复 mp3 文件中的结构缺陷。我尝试根据“不能伤害”的原则运行我收藏中的几乎每个文件。它可以识别数量惊人的表面上良好的文件,这些文件的缺陷从无关紧要到严重不等。

mp3val 特别擅长识别和纠正标题缺陷,例如 VBR 文件中缺少 VBR 标题(大多数错误持续时间和搜索问题的根源)。但它也会清除垃圾/损坏的音频帧数据,如果将其留在文件中,某些玩家可能无法优雅地处理这些无法使用的残骸。

甚至可以告诉它运行整个 mp3 目录,仅修复发现问题的文件,保留备份(或可选不),保留时间戳(可选),并将会话记录到文本文件(可选)。

而且它是免费和开源的!(该链接指向其 sourceforge 项目。)

编辑:最后一件事我忘了提及。“但是 mp3val 自 2009 年以来一直没有更新!!”,我听到你哭了。这是非常正确的!自 2009 年以来,它一直运行良好,不需要更新。(毕竟,MP3 文件格式在过去 2 年里并没有发生任何变化!)


Joh*_*ohn 11

我假设你已经在谷歌上尝试过第一个选项......?还有一个 perl 脚本mp3checker,这可能很有用。

编辑:

至于修复您的曲目可能会给MP3 Diags(生活黑客文章的链接)看一看。


Яро*_*лин 5

mck适用于 Windows 和 GNU / Linux。

\n\n

主页: http: //checkmate.gissen.nl/

\n\n

它检测坏帧并生成可选报告。
\nWindows 也有一个 GUI 前端。

\n\n
mpck 0.19 - checks a MP3 file for errors\n\nUsage: mpck [OPTION]... [FILE]...\n\nVerbosity:\n   -v, --verbose        print some extra info\n   -q, --quiet          print only Ok or Bad per file\n   -B, --badonly        only report bad files\nOther options:\n   -R, --recursive      check directories recursively\n   -e, --extention=EXT  only check files ending on .EXT\n   -r                   short for -R -e mp3\n   -m, --maxname=NUM    report bad for filenames which exceed NUM characters\n   -n, --namecheck      check for strange characters in the filename\n   -x, --xmloutput      output results in XML\n   -h, --help           print this help, then exit\n   -V, --version        print version information\n
Run Code Online (Sandbox Code Playgroud)\n\n

更新:

\n\n

这个程序似乎完全能够处理 utf-8 文件名,尽管我还没有尝试过日语、中文或更奇特的字形。

\n\n

Gentoo (UTF-8)

\n\n
$ mpck -r 2000\\ -\\ \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba\\ \xd0\xbd\xd0\xb0\\ \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5\\ \\(USA\\)/  | grep SUM\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//04-ja-sbrasyvaju-kozhu.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//07-tak-vot-kakaja-ty-demo.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//09-evrej-i-goj.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//06-teplyj-dozhd\'-demo.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//01-vse-napominaet-o-tebe.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//02-marsh-novoselov--sf-unplugged.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//05-rubaha.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)//03-kalifornia-love.mp3\n
Run Code Online (Sandbox Code Playgroud)\n\n

带有 UTF-8 语言环境的 Cygwin(Windows 中的日语语言环境)
\n本机 Windows 二进制文件不知道 cygwin,因此我必须转换输出。

\n\n
$ mpck.exe -r "2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)" | grep \'SUM\' | \n       iconv -f CP932 -t UTF-8\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\04-ja-sbrasyvaju-kozhu.mp3          \nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\07-tak-vot-kakaja-ty-demo.mp3       \nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\09-evrej-i-goj.mp3                  \nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\06-teplyj-dozhd\'-demo.mp3          \nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\01-vse-napominaet-o-tebe.mp3        \nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\02-marsh-novoselov--sf-unplugged.mp3\nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\05-rubaha.mp3                     \nSUMMARY: 2000 - \xd0\x97\xd0\xb0\xd0\xb2\xd1\x82\xd1\x80\xd0\xb0\xd0\xba \xd0\xbd\xd0\xb0 \xd1\x82\xd1\x80\xd0\xb0\xd0\xb2\xd0\xb5 (USA)\\03-kalifornia-love.mp3            \n
Run Code Online (Sandbox Code Playgroud)\n

  • 在 Linux 上,我认为没有必要对 mp3val 应用任何解决方法 — AFAICT 所引用的错误是 Windows 独有的问题。(无论它用于解析命令行或处理文件名的函数都不能是 Unicode 安全的。)在 Linux 下,我只是手工损坏(通过使用 ghex 将随机块清零)mp3 文件,重命名如下:`Tësting 1.mp3` `测试确实 hµrd.mp3` `☭他们并没有变得更奇怪☭.mp3` ...mp3val 正确处理所有这些都没有问题。 (2认同)