Comment puis-je corriger une durée mp3 incorrecte?

22

J'ai un certain nombre de chansons dans ma bibliothèque musicale qui affichent des valeurs de durée incorrectes, et je ne joue donc que partiellement dans Clementine. Dans Banshee et certains autres joueurs, ils affichent différentes valeurs de durée et jouent parfois la chanson complète.

Existe-t-il un moyen de résoudre ce problème sans avoir à "ré-encoder" la chanson?

RolandiXor
la source

Réponses:

24

MP3 Diags peut corriger des durées incorrectes (et d'autres erreurs). Il est open source et dans les référentiels. Il s'agit d'un outil GUI.

Installation

sudo apt-get install mp3diags mp3diags-doc

Une autre option est MP3val , qui peut être utilisée via la ligne de commande ou via l'interface graphique:

Installation

sudo apt-get install mp3val

Exemple d'utilisation

mp3val damaged.mp3 -f -t

-f: corriger les erreurs,: -tconserver l'horodatage d'origine

phoibos
la source
Cela a fonctionné pour moi. J'utilise catpour combiner des parties de livres audio en un seul fichier ( cat 1.mp3 2.mp3 > out.mp3) et cela fonctionne très bien pour la lecture, mais presque tous les joueurs deviennent farfelus avec les horodatages et mediainfomontrent même la durée du premier fichier plutôt que du combiné.
blockloop
catest loin d'être idéal pour des tâches telles que la combinaison de mp3. Une meilleure façon: http://superuser.com/questions/314239/how-to-join-merge-many-mp3-files
phoibos
Pourquoi pensez-vous cela? Les fichiers MP3 ne sont pas beaucoup plus que des flux bruts et ils sont presque le candidat idéal à catpart les effets secondaires triviaux résolus avec une simple réévaluation des données d'en-tête Xing. Même sans mp3val, les fichiers sont toujours lus dans tous les lecteurs par lesquels je les ai envoyés. catest extrêmement efficace et BEAUCOUP plus rapide que le ré-encodage avec ffmpeg. Même avec la commande mp3val ajoutée.
blockloop
ffmpegavec concatet -acodec copyne pas réencoder - il seulement des copies des flux (il est donc rapide), mais crée un fichier approprié en premier lieu (sans en- tête inutiles et données de marquage apparaissant à plusieurs reprises dans les fichiers résultants).
phoibos
10

Si vous ne voulez rien installer de nouveau, essayez avec ffmpeg :

ffmpeg -i file_orig.mp3 -acodec copy file_fixed.mp3
Alcaro
la source
Solution parfaite, fonctionne également si le mauvais fichier mp3 a été créé par ffmpeg lui-même!
Pierpaolo Cira
Cela a réellement fonctionné pour moi, alors que les solutions mp3valet mp3checkne l'ont pas fait. (Juste pour être sûr, il ne se réencode pas, non?)
Noldorin
Avec la copie -acodec, il ne se réencode pas. Si vous voulez vérifier, essayez avec et sans elle et vérifiez à quelle vitesse cela va.
Alcaro
1

Mis à part les en-têtes VBR ne correspondant pas à l'audio réel (que vous utiliseriez mp3valpour corriger, comme mentionné dans l'autre réponse), une autre raison peut être causée par un fichier MP3 ayant une balise ID3 qui a une valeur incorrecte pour la TLENbalise. Vous pouvez résoudre ce problème en utilisant l' mid3v2outil du mutagenpackage pour supprimer la balise (apparemment, c'est facultatif):

$ mid3v2 --delete-frames=TLEN filename.mp3

Le lecteur de musique Quodlibet dispose également d'un plug-in pratique "Fix MP3 Duration" que vous pouvez utiliser pour ce faire.

(Tiré de la FAQ Quodlibet: http://quodlibet.readthedocs.org/en/latest/guide/faq.html )

nedned
la source
1

mp3check a fonctionné parfaitement pour moi aussi avec des caractères génériques.

sudo apt-get install mp3check

mp3check {filename or wildcard} --cut-junk-start --cut-junk-end --fix-headers
Dmitry Orlov
la source
aidé lorsque le lecteur Windows Media a montré une mauvaise durée de fichier mp3
Mantas D
AVERTISSEMENT Si vous avez des balises id3v2, des illustrations de couverture, etc., soyez extrêmement conscients de ces problèmes (j'ai appris à la dure) bugs.launchpad.net/ubuntu/+source/mp3check/+bug/592775 bugs.launchpad.net/ubuntu/+ source / mp3check / + bug / 1348223
digitaltoast