MP3ファイルのグリッチを検出(および可能であれば修正)できるツールはありますか?[閉まっている]


31

私のコレクションには、次のような不具合があるMP3が含まれています。

  • ロード時に間違った期間を表示する
  • マイナージャンプ
  • 残りの時間が残り1分であるにもかかわらず、突然終了する
  • ノイズ

これらのグリッチをできるだけ多く検出し、修正可能なグリッチを修正できるツールを探しています(明らかに、ほとんどの場合、ノイズを単純に除去することはできません)。


プレイヤーの問題のように聞こえます。これらはMP3ファイルが原因であると確信していますか?
-digitxp

@digitxp突然の終了は、おそらくファイルの一部が欠落しているためですが、誤って表示される時間はVLCが原因である可能性があります。しかしそれでも、他のファイルが正しい時間を示しているため、ファイルに何か問題があることを意味します。ノイズとジャンプが原因CDが読ん悪いのかもしれないが、私は二重チェックを行うことなく、私のコレクションをデジタル化: - /
トビアスKienzler

残りの問題は不完全とCDの読み取りエラーがあるので、HM、間違った期間が... CBR対VBRから生じる可能性
トビアスKienzler

回答:


35

コマンドラインツールmp3valを使用すると、mp3ファイルの構造上の欠陥をすばやくスキャンし、必要に応じて修復できます。「傷つけない」という原則に基づいて、コレクション内のほぼすべてのファイルに対して実行しようとしています。それは、重要ではないものから重大なものまで、欠陥のある見かけ上良好なファイルを驚くほど多く識別します。

mp3valは、VBRファイル内のVBRヘッダーの欠如など、ヘッダーの欠陥を認識および修正するのに特に優れています(最も不適切な期間とシークの問題の原因)。しかし、ゴミや破損したオーディオフレームデータも消去されます。これは、一部のプレーヤーがファイルに残しておくとエレガントに処理できない可能性があるという使用不可能な問題です。

mp3のディレクトリ全体を実行し、問題が見つかったファイルのみを修復し、バックアップを保持する(またはオプションで保持しない)、タイムスタンプを保持する(オプションで)、セッションをテキストファイルに記録する(オプションで)ように指示することもできます。

そして、それは無料でオープンソースです!(リンクはsourceforgeプロジェクトへのリンクです。)

編集:私が言及するのを忘れた最後の一つ。「しかし、mp3valは2009年以降更新されていません!!」それはとても本当です!それはされていますうまく働いて 2009年から、更新を必要としていません。(結局、過去2年間でMP3ファイル形式が変更されたわけではありません!)


また、1あなたの編集のために二度目:-)まだいくつかの有効なバグがあるように思われるものの、オープン ...
トビアスKienzler

1
ええ、mp3valにはいくつかの難解なファイル名でWindows 7の下でいくつかの本当の問題があるようです。それは残念です。(最新のコンピューティングの最初のルール:十分に大きいMP3コレクションには、任意の形式の難解なファイル名のファイルが含まれます。)Windowsプログラマーのluvを使用することができます(だれでも可能です)。[OffTopic:mp3val svnを調べて、特に最新のパッチがMEからのものであることを知るのは非現実的でした。;-)]
FeRD

1
残念ながらmp3val私のファイルの一部を修正することができなかった:(しかしが。MP3Diagsそれらを修正することができました(VBRファイルの興ヘッダービーイングが表示され、間違った期間にリード)。
SCAI

@Mareckyそれは非常に奇妙です。mp3valFedora 28で試したところ、まだ正常に動作しています。最も難解なライブラリの依存関係はまたはのいずれlibm.so.6libstdc++.so.6であるため、互換性のないABI破損の可能性は低くなります。ただし、確認するために、デフォルトモードでmp3val ファイルに触れないため、-fフラグ付きで実行された場合にのみ変更が行われます。それでも、スキャンモードがログに記録したファイルWARNING:またはERROR:変更されるファイルのみが変更されます。修正可能な問題が検出されない場合、ファイルは変更されません。
FeRD

1
@FeRD-あなたは正しい、私は今どのプログラムだったのか覚えていない(Audacious、Gnome MPV、Rhythmbox Music Player)トラック時間-だから私はmp3のインデックスが間違っている(または内部にあるものは何でも)と考えて実行しますmp3val-しかし、ファイルは正しい-それがmp3val警告を表示せず、ファイルを修正しなかった理由です。プレイヤーが間違ったトラック時間を示した理由がわかりません。以前のコメントを削除します。
マレキー

10

私はあなたがすでにグーグルで最初のオプションを試しと思っていました... また、役に立つかもしれないperlスクリプトmp3checker

編集:

トラックの修復に関しては、MP3 Diags(ライフハッカーの記事へのリンク)を見ることができます。


おかげで、チェックメイトは(まだ可能ただし場合は、物事を固定する作業を残していること)問題のファイルを特定するための便利なツールである
トビアスKienzler

1
MP3 Diagsに賛成です。mp3プレーヤーで期間が正しく報告されないという問題がありました。MP3 Diagsが問題を見つけて修正しました。
デビッドL

4

mpckは、WindowsおよびGNU / Linuxで動作します。

ホームページ:http : //checkmate.gissen.nl/

不良フレームを検出し、オプションのレポートを生成します。
Windows用のGUIフロントエンドもあります。

mpck 0.19 - checks a MP3 file for errors

Usage: mpck [OPTION]... [FILE]...

Verbosity:
   -v, --verbose        print some extra info
   -q, --quiet          print only Ok or Bad per file
   -B, --badonly        only report bad files
Other options:
   -R, --recursive      check directories recursively
   -e, --extention=EXT  only check files ending on .EXT
   -r                   short for -R -e mp3
   -m, --maxname=NUM    report bad for filenames which exceed NUM characters
   -n, --namecheck      check for strange characters in the filename
   -x, --xmloutput      output results in XML
   -h, --help           print this help, then exit
   -V, --version        print version information

更新:

このプログラムはutf-8ファイル名を完全に処理できるように見えますが、日本語、中国語、またはもっとエキゾチックなグリフは試していません。

Gentoo(UTF-8)

$ mpck -r 2000\ -\ Завтрак\ на\ траве\ \(USA\)/  | grep SUM
SUMMARY: 2000 - Завтрак на траве (USA)//04-ja-sbrasyvaju-kozhu.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//07-tak-vot-kakaja-ty-demo.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//09-evrej-i-goj.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//06-teplyj-dozhd'-demo.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//01-vse-napominaet-o-tebe.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//02-marsh-novoselov--sf-unplugged.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//05-rubaha.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//03-kalifornia-love.mp3

UTF-8ロケール(Windowsの日本語ロケール)
のCygwin ネイティブのWindowsバイナリはcygwinを認識しないため、出力を変換する必要がありました。

$ mpck.exe -r "2000 - Завтрак на траве (USA)" | grep 'SUM' | 
       iconv -f CP932 -t UTF-8
SUMMARY: 2000 - Завтрак на траве (USA)\04-ja-sbrasyvaju-kozhu.mp3          
SUMMARY: 2000 - Завтрак на траве (USA)\07-tak-vot-kakaja-ty-demo.mp3       
SUMMARY: 2000 - Завтрак на траве (USA)\09-evrej-i-goj.mp3                  
SUMMARY: 2000 - Завтрак на траве (USA)\06-teplyj-dozhd'-demo.mp3          
SUMMARY: 2000 - Завтрак на траве (USA)\01-vse-napominaet-o-tebe.mp3        
SUMMARY: 2000 - Завтрак на траве (USA)\02-marsh-novoselov--sf-unplugged.mp3
SUMMARY: 2000 - Завтрак на траве (USA)\05-rubaha.mp3                     
SUMMARY: 2000 - Завтрак на траве (USA)\03-kalifornia-love.mp3            

おかげで、それはすでにこの回答で
トビアスキンツラー

mpck!= mp3check。私が間違っている?
ЯрославРахматуллин

いいえ、「グーグルの最初のオプション」というラベルの付いたリンクです。ただし、その機能について少し詳しく説明しているため、+ 1
トビアスキーンズラー

ああ、そう。私はそれを無視しました。私はmp3valをチェックアウトしますが、これまでのところ、mpckはmp3-checkerから必要なものすべてに対応できました。
ЯрославРахматуллин

2
Linuxでは、mp3valの回避策を適用する必要はありません—言及されているバグはWindowsのみの問題です。(コマンドラインの解析またはファイル名の処理に使用する関数はすべてユニコードセーフであってはなりません。)Linuxでは、次のように名前を変更したmp3ファイルを手動で(ghexでランダムブロックをゼロにすることで)Tësting 1.mp3 Testíng ®eally hµrd.mp3 ☭They don't get much weirder☭.mp3破損しました:... mp3val has noそれらすべてを正しく処理できない。
FeRD

0

より簡単なのは、ffmpegを使用して、ID3タグにエラー期間のあるファイルからファイルをコピーすることです。これにより、正しい情報が書き込まれます。

ffmpeg -i "audio.mp3" -acodec copy "audio_fixed.mp3"

コピーを使用するため、元のエンコードにかかる時間の数分の一しかかかりません。これは歌ではほとんど目立ちませんが、7時間のオーディオブックで本当に感謝しています。再エンコード後、ID3タグに正しい情報が含まれるようになりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.