私のコレクションには、次のような不具合があるMP3が含まれています。
- ロード時に間違った期間を表示する
- マイナージャンプ
- 残りの時間が残り1分であるにもかかわらず、突然終了する
- ノイズ
これらのグリッチをできるだけ多く検出し、修正可能なグリッチを修正できるツールを探しています(明らかに、ほとんどの場合、ノイズを単純に除去することはできません)。
私のコレクションには、次のような不具合があるMP3が含まれています。
これらのグリッチをできるだけ多く検出し、修正可能なグリッチを修正できるツールを探しています(明らかに、ほとんどの場合、ノイズを単純に除去することはできません)。
回答:
コマンドラインツールmp3valを使用すると、mp3ファイルの構造上の欠陥をすばやくスキャンし、必要に応じて修復できます。「傷つけない」という原則に基づいて、コレクション内のほぼすべてのファイルに対して実行しようとしています。それは、重要ではないものから重大なものまで、欠陥のある見かけ上良好なファイルを驚くほど多く識別します。
mp3valは、VBRファイル内のVBRヘッダーの欠如など、ヘッダーの欠陥を認識および修正するのに特に優れています(最も不適切な期間とシークの問題の原因)。しかし、ゴミや破損したオーディオフレームデータも消去されます。これは、一部のプレーヤーがファイルに残しておくとエレガントに処理できない可能性があるという使用不可能な問題です。
mp3のディレクトリ全体を実行し、問題が見つかったファイルのみを修復し、バックアップを保持する(またはオプションで保持しない)、タイムスタンプを保持する(オプションで)、セッションをテキストファイルに記録する(オプションで)ように指示することもできます。
そして、それは無料でオープンソースです!(リンクはsourceforgeプロジェクトへのリンクです。)
編集:私が言及するのを忘れた最後の一つ。「しかし、mp3valは2009年以降更新されていません!!」それはとても本当です!それはされていますうまく働いて 2009年から、更新を必要としていません。(結局、過去2年間でMP3ファイル形式が変更されたわけではありません!)
MP3Diags
それらを修正することができました(VBRファイルの興ヘッダービーイングが表示され、間違った期間にリード)。
mp3val
Fedora 28で試したところ、まだ正常に動作しています。最も難解なライブラリの依存関係はまたはのいずれlibm.so.6
かlibstdc++.so.6
であるため、互換性のないABI破損の可能性は低くなります。ただし、確認するために、デフォルトモードでmp3val
はファイルに触れないため、-f
フラグ付きで実行された場合にのみ変更が行われます。それでも、スキャンモードがログに記録したファイルWARNING:
またはERROR:
変更されるファイルのみが変更されます。修正可能な問題が検出されない場合、ファイルは変更されません。
mp3val
-しかし、ファイルは正しい-それがmp3val
警告を表示せず、ファイルを修正しなかった理由です。プレイヤーが間違ったトラック時間を示した理由がわかりません。以前のコメントを削除します。
私はあなたがすでにグーグルで最初のオプションを試したと思っていました... また、役に立つかもしれないperlスクリプトmp3checker。
編集:
トラックの修復に関しては、MP3 Diags(ライフハッカーの記事へのリンク)を見ることができます。
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
Tësting 1.mp3
Testíng ®eally hµrd.mp3
☭They don't get much weirder☭.mp3
破損しました:... mp3val has noそれらすべてを正しく処理できない。
より簡単なのは、ffmpegを使用して、ID3タグにエラー期間のあるファイルからファイルをコピーすることです。これにより、正しい情報が書き込まれます。
ffmpeg -i "audio.mp3" -acodec copy "audio_fixed.mp3"
コピーを使用するため、元のエンコードにかかる時間の数分の一しかかかりません。これは歌ではほとんど目立ちませんが、7時間のオーディオブックで本当に感謝しています。再エンコード後、ID3タグに正しい情報が含まれるようになりました。