Existe-t-il un outil qui peut détecter (et si possible, corriger) les problèmes dans les fichiers MP3? [fermé]

31

Ma collection contient des MP3 qui ont des problèmes comme:

  • affichage de la mauvaise durée au chargement
  • sauts mineurs
  • se terminant soudainement malgré la durée réclame encore une minute
  • bruit

Je suis à la recherche d'un outil capable de détecter autant de ces défauts que possible et de corriger ceux qui peuvent être corrigés (par exemple, par exemple, le bruit ne peut pas être simplement éliminé dans la plupart des cas).

Tobias Kienzler
la source
Cela ressemble à des problèmes de joueur. Êtes-vous sûr que ceux-ci sont causés par vos fichiers MP3?
digitxp
@digitxp la fin soudaine est probablement due à des parties manquantes du fichier, mais l'heure affichée incorrectement peut être causée par VLC. Mais cela signifie tout de même qu'il y a un problème avec le fichier car d'autres fichiers affichent l'heure correcte. Le bruit et les sauts peuvent être dus à une mauvaise lecture de CD, j'ai numérisé ma collection sans faire de double vérification: - /
Tobias Kienzler
hm, la mauvaise durée pourrait provenir de VBR vs CBR ... donc les problèmes restants sont l'incomplétude et les erreurs de lecture de CD
Tobias Kienzler

Réponses:

35

L'outil de ligne de commande mp3val permet de rechercher rapidement et éventuellement de réparer les défauts structurels des fichiers mp3. J'essaie de l'exécuter sur presque tous les fichiers de ma collection, sur le principe "ne peut pas faire de mal". Il identifie un nombre incroyable de fichiers ostensiblement bons avec des défauts allant de sans importance à graves.

mp3val est particulièrement efficace pour reconnaître et corriger les carences d'en-tête, telles que le manque d'en-têtes VBR dans un fichier VBR (la source de la plupart des problèmes de mauvaise durée et de recherche). Mais il effacera également les données de trame audio corrompues / corrompues, une déchirure inutilisable que certains joueurs peuvent gérer de manière moins élégante si elle est laissée dans le fichier.

On peut même lui dire de parcourir un répertoire entier de mp3, de réparer uniquement les fichiers avec lesquels il rencontre des problèmes, de conserver les sauvegardes (ou éventuellement pas), de préserver les horodatages (facultativement) et de journaliser la session dans un fichier texte (facultatif).

Et c'est gratuit et open source! (Le lien est vers son projet sourceforge.)

EDIT: Une dernière chose que j'ai oublié de mentionner. "Mais mp3val n'a pas été mis à jour depuis 2009 !!", je vous entends pleurer. C'est bien vrai ! Cela fonctionne très bien depuis 2009 et n'a pas eu besoin de mise à jour. (Après tout, ce n'est pas comme si le format de fichier MP3 avait changé au cours des 2 dernières années!)

FeRD
la source
+1 également une deuxième fois pour vous éditez :-) bien qu'il semble y avoir des bogues valides encore ouverts ...
Tobias Kienzler
1
Oui, il semble que mp3val ait de réels problèmes sous Windows 7 avec certains noms de fichiers ésotériques. C'est malheureux. (Première règle de l'informatique moderne: toute collection MP3 suffisamment grande contiendra un fichier avec n'importe quelle forme donnée de nom de fichier ésotérique.) Il pourrait utiliser du luv d'un programmeur Windows, si quelqu'un le veut! [OffTopic: C'était surréaliste de regarder le svn mp3val et de découvrir que le patch le plus récent venait de MOI - d'autant plus que j'avais totalement oublié de le faire! ;-)]
FeRD
1
Malheureusement, mp3val n'a pas réussi à réparer certains de mes fichiers :(. Mais MP3Diagsa pu les corriger (en-tête Xing sur les fichiers VBR qui conduit à une mauvaise durée d'affichage).
scai
@Marecky C'est très étrange. Je viens d'essayer mp3valsur Fedora 28, et ça fonctionne toujours bien. La dépendance de bibliothèque la plus ésotérique qu'il possède est soit libm.so.6ou libstdc++.so.6, donc ce n'est pas comme si une rupture ABI incompatible était probable. Juste pour vérifier, cependant: dans son mode par défaut, mp3val il ne touchera aucun fichier, il ne fera des modifications que s'il est exécuté avec l' -findicateur - et même dans ce cas, seuls les fichiers où le mode de numérisation a enregistré un WARNING:ou ERROR:seront modifiés. S'il ne détecte aucun problème réparable, il laissera vos fichiers intacts.
FeRD
1
@FeRD - Vous avez raison, je ne me souviens plus de quel programme il s'agissait (Audacious, Gnome MPV ou Rhythmbox Music Player) mais après avoir extrait un CD avec le dernier, j'ai mis de nouveaux fichiers dans la liste de lecture de l'un de ces programmes et j'ai vu mal les temps de piste - c'est pourquoi je pensais que les mp3 ont de mauvais index (ou quoi que ce soit à l'intérieur) et les exécutent mp3val- mais les fichiers étaient corrects - c'est pourquoi je mp3valn'ai jamais affiché d'avertissement et je n'ai pas corrigé les fichiers. Je ne sais pas pourquoi le joueur a affiché des temps de piste incorrects, je supprimerai mon commentaire précédent.
Marecky
10

Je suppose que vous avez déjà essayé la première option sur google ...? Également un script perl, mp3checker , qui pourrait être utile.

Modifier:

En ce qui concerne la réparation de vos pistes, vous pouvez jeter un œil aux MP3 Diags (liens vers un article Lifehacker).

John
la source
merci, échec et mat est un bon outil pour identifier les fichiers problématiques (cela laisse quand même la tâche de réparer les choses si possible)
Tobias Kienzler
1
Bravo pour MP3 Diags. J'ai eu des problèmes avec mon lecteur mp3 qui ne rapportait pas correctement la durée. MP3 Diags a trouvé et résolu le problème.
David L
4

mpck fonctionne sur Windows et GNU / Linux.

Page d'accueil: http://checkmate.gissen.nl/

Il détecte les mauvaises trames et génère des rapports facultatifs.
Il existe également une interface graphique pour 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

Mise à jour:

Ce programme semble être entièrement capable de gérer les noms de fichiers utf-8, bien que je n'ai pas essayé les glyphes japonais, chinois ou plus exotiques.

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 avec locale UTF-8 (locale japonaise dans Windows)
Le binaire natif de Windows ne connaît pas cygwin, j'ai donc dû convertir la sortie.

$ 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            
Ярослав Рахматуллин
la source
Merci, même si cela a déjà été mentionné dans cette réponse
Tobias Kienzler
mpck! = mp3check. Ai-je tort?
Ярослав Рахматуллин
Non, c'est le lien intitulé "la première option sur google". Mais +1 quand même si vous développez un peu ses fonctions
Tobias Kienzler
Oh, c'est vrai. J'ai ignoré ça. Je vais vérifier mp3val, mais jusqu'à présent, mpck a pu tout ce dont j'ai besoin à partir d'un mp3-checker.
Ярослав Рахматуллин
2
Sous Linux, il ne me semble pas nécessaire d'appliquer des solutions de contournement pour mp3val - AFAICT, le bogue référencé est un problème Windows uniquement. (Quelles que soient les fonctions qu'il utilise pour analyser la ligne de commande ou gérer les noms de fichiers ne doivent pas être protégées par Unicode.) Sous Linux, je viens d'endommager à la main (en mettant à zéro les blocs aléatoires avec ghex) les fichiers mp3 renommés comme suit: Tësting 1.mp3 Testíng ®eally hµrd.mp3 ☭They don't get much weirder☭.mp3... mp3val n'avait pas difficulté à les traiter correctement.
FeRD
0

Le plus simple est d'utiliser ffmpeg pour copier le fichier de celui dont la durée est défectueuse dans sa balise ID3. Cela lui fait écrire les informations correctes.

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

Parce qu'il utilise la copie, cela prend une fraction du temps que prend l'encodage d'origine. C'est à peine perceptible avec une chanson, mais vous l'appréciez vraiment avec un livre audio de 7 heures. Après le ré-encodage, les balises ID3 ont maintenant les informations correctes.

Miriam English
la source