Czy istnieje narzędzie, które może wykrywać (i jeśli to możliwe, naprawiać) usterki w plikach MP3? [Zamknięte]

31

Moja kolekcja zawiera niektóre pliki MP3, które mają pewne usterki, takie jak:

  • wyświetlanie niewłaściwego czasu ładowania
  • niewielkie skoki
  • nagle kończy się, pomimo czasu trwania, twierdzi, że pozostała kolejna minuta
  • hałas

Szukam narzędzia, które może wykryć jak najwięcej takich usterek i naprawić te, które można naprawić (oczywiście np. Hałas nie może być po prostu wyeliminowany w większości przypadków).

Tobias Kienzler
źródło
Brzmią jak problemy z odtwarzaczem. Czy na pewno są to spowodowane Twoimi plikami MP3?
digitxp
@digitxp nagłe zakończenie jest prawdopodobnie spowodowane brakującymi częściami pliku, ale źle wyświetlany czas może być spowodowany przez VLC. Ale nadal oznacza to, że coś jest nie tak z plikiem, ponieważ inne pliki pokazują prawidłowy czas. Hałas i skoki mogą być spowodowane złym CD czytać, ja zdigitalizowany moją kolekcję, nie robiąc podwójne kontrole: - /
Tobias Kienzler
hm, zły czas mogłoby wynikać z VBR vs CBR ... więc pozostałe problemy są kompletności CD błędów odczytu
Tobias Kienzler

Odpowiedzi:

35

Narzędzie mp3val z linii poleceń umożliwia szybkie skanowanie i opcjonalną naprawę defektów strukturalnych w plikach mp3. Próbuję uruchomić go prawie na każdym pliku w mojej kolekcji, zgodnie z zasadą „nie mogę zranić”. Identyfikuje niesamowitą liczbę pozornie dobrych plików z defektami od nieistotnych do poważnych.

mp3val jest szczególnie dobry w rozpoznawaniu i korygowaniu braków nagłówków, takich jak brak nagłówków VBR w pliku VBR (źródło większości niepoprawnych czasów trwania i problemów z wyszukiwaniem). Ale usunie również śmieci / uszkodzone dane ramki audio, bezużyteczne cruft, które niektórzy gracze mogą obsłużyć mniej niż elegancko, jeśli pozostaną w pliku.

Można nawet powiedzieć, aby uruchomił cały katalog plików mp3, naprawiając tylko te pliki, z którymi ma problemy, przechowując kopie zapasowe (lub opcjonalnie nie), zachowując znaczniki czasu (opcjonalnie) i rejestrując sesję w pliku tekstowym (opcjonalnie).

I to jest darmowe i otwarte oprogramowanie! (Link jest do jego projektu sourceforge).

EDYCJA: Ostatnia rzecz, o której zapomniałem wspomnieć. „Ale mp3val nie był aktualizowany od 2009 roku !!”, słyszę twój płacz. To bardzo prawda ! Działa dobrze od 2009 roku i nie wymaga aktualizacji. (W końcu format pliku MP3 nie zmienił się w ciągu ostatnich 2 lat!)

FeRD
źródło
+1 także po raz drugi do edytowania :-) choć wydaje się, że niektóre ważne błędy nadal otwarte ...
Tobias Kienzler
1
Tak, wygląda na to, że mp3val ma poważne problemy z Windows 7 z niektórymi ezoterycznymi nazwami plików. To niefortunne. (Pierwsza zasada współczesnego przetwarzania: każda wystarczająco duża kolekcja MP3 będzie zawierać plik z dowolną postacią ezoterycznej nazwy pliku). Przydałby się luv z programisty Windows, jeśli ktoś jest do tego zdolny! [OffTopic: Surrealistycznie było patrzeć na svn mp3val i dowiedzieć się, że najnowsza łatka pochodzi ode MNIE - zwłaszcza, że ​​całkowicie zapomniałem o tym! ;-)]
FeRD
1
Niestety mp3val nie naprawił niektórych moich plików :(. Ale MP3Diagsbył w stanie je naprawić (nagłówek Xing na plikach VBR, który prowadzi do nieprawidłowego czasu wyświetlania).
scai
@Marecky To bardzo dziwne. Właśnie wypróbowałem mp3valFedorę 28 i nadal działa dobrze. Najbardziej ezoteryczną zależnością biblioteki jest albo libm.so.6albo libstdc++.so.6, więc prawdopodobnie nie jest to niezgodne zerwanie ABI. Tylko po to, by sprawdzić: w domyślnym trybie mp3val nie będzie dotykać żadnych plików, dokona modyfikacji tylko, jeśli zostanie uruchomiony z -fflagą - i nawet wtedy tylko pliki, w których tryb skanowania zarejestrował WARNING:lub ERROR:zostałby zmodyfikowany. Jeśli nie wykryje żadnych problemów, które można naprawić, pliki pozostaną niezmienione.
FeRD
1
@FeRD - Masz rację, nie pamiętam teraz, który to program (Audacious, Gnome MPV lub Rhythmbox Music Player), ale po zgraniu płyty z ostatnim z nich umieściłem nowe pliki na liście odtwarzania jednego z tych programów i zobaczyłem źle czasy utworów - dlatego myślałem, że mp3 ma złe indeksy (lub cokolwiek, co ma w środku) i działają na nich mp3val- ale pliki były prawidłowe - dlatego mp3valnigdy nie wyświetlałem żadnych ostrzeżeń i nie poprawiałem plików. Nie wiem, dlaczego gracz pokazał nieprawidłowe czasy utworów, usunę mój poprzedni komentarz.
Marecky,
10

Zakładałem, że wypróbowałeś już pierwszą opcję w Google ...? Przydatny może być również skrypt perla, mp3checker .

Edytować:

Jeśli chodzi o naprawę twoich utworów, może dać MP3 Diags (linki do artykułu o Lifehackerze).

Jan
źródło
dzięki, mat jest narzędziem do identyfikacji plików miły problem (który nadal pozostawia zadanie ustalenie rzeczy, jeśli to możliwe chociaż)
Tobias Kienzler
1
Kciuki w górę za MP3 Diags. Miałem problemy z tym, że mój odtwarzacz mp3 nie zgłaszał poprawnie czasu trwania. Znaleziono pliki MP3 Diags i rozwiązało problem.
David L
4

mpck działa na systemach Windows i GNU / Linux.

Strona główna: http://checkmate.gissen.nl/

Wykrywa złe ramki i generuje opcjonalne raporty.
Istnieje również nakładka GUI dla systemu Windows.

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

Aktualizacja:

Ten program wydaje się być w pełni zdolny do obsługi nazw plików utf-8, chociaż nie próbowałem japońskich, chińskich ani bardziej egzotycznych glifów.

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

Cygwin z ustawieniami narodowymi UTF-8 (japońskie ustawienia regionalne w Windows)
Natywny plik binarny Windows nie zna cygwina, więc musiałem przekonwertować dane wyjściowe.

$ 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            
Ярослав Рахматуллин
źródło
Dzięki, chociaż zostało to już wspomniane w tej odpowiedzi
Tobias Kienzler
mpck! = mp3check. Czy się mylę?
Ярослав Рахматуллин
Nie, to link oznaczony jako „pierwsza opcja w Google”. Niemniej jednak +1, ponieważ trochę rozwinąłeś jego funkcje
Tobias Kienzler
Och, racja. Zignorowałem to. Sprawdzę mp3val, ale do tej pory mpck był w stanie zrobić wszystko, czego potrzebuję od sprawdzania mp3.
Ярослав Рахматуллин
2
W Linuksie nie wydaje mi się konieczne stosowanie jakichkolwiek obejść dla mp3val - AFAICT wspomniany błąd jest problemem tylko dla systemu Windows. (Jakiekolwiek funkcje, których używa do parsowania wiersza poleceń lub obsługi nazw plików, nie mogą być bezpieczne dla Unicode.) W Linuksie po prostu ręcznie uszkodziłem (zerując losowe bloki z ghex) pliki mp3 o zmienionych Tësting 1.mp3 Testíng ®eally hµrd.mp3 ☭They don't get much weirder☭.mp3nazwach : ... mp3val nie miał problemy z prawidłowym przetwarzaniem ich wszystkich.
FeRD
0

Prostsze jest użycie ffmpeg do skopiowania pliku z błędnym czasem trwania w jego znaczniku ID3. To powoduje, że zapisuje prawidłowe informacje.

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

Ponieważ używa kopiowania, zajmuje to ułamek czasu, jaki zajmuje oryginalne kodowanie. Jest to prawie niezauważalne w przypadku utworu, ale naprawdę doceniasz go dzięki 7-godzinnemu audiobookowi. Po ponownym kodowaniu tagi ID3 mają teraz prawidłowe informacje.

Miriam English
źródło