Comment «réencoder» des fichiers mp3

10

J'ai un bon nombre de fichiers mp3 que j'ai créés en utilisant audiohijack pro sur un mac. Maintenant, je n'ai plus de mac et je les utilise sur mes systèmes Linux. Malheureusement, le programme que j'utilise (rhythmbox) pour écouter ces fichiers ne peut pas déterminer la longueur des fichiers. Ces fichiers durent jusqu'à 5 heures et lorsque le programme ne parvient pas à déterminer la durée, je ne peux pas faire défiler le fichier. Des programmes Unix / Linux qui peuvent recoder ces fichiers? Je ne connais pas assez l'audio sous linux ou le format de fichier mp3 pour savoir ce que cela impliquerait.

Bien, Bart

kasterma
la source

Réponses:

6

Il ne répond pas à la question de votre titre, mais il est peut-être possible de corriger les fichiers sans réencodage. Par exemple, un problème courant avec des longueurs incorrectes de fichiers MP3 sont les fichiers à débit binaire variable qui ne sont pas correctement marqués comme ayant un débit binaire variable (et des programmes comme rhythmbox les traitant comme s'ils en avaient un constant). L'outil vbrfix peut corriger ces fichiers. Un autre outil utile pour vérifier le fichier MP3 est mp3check , il a également des options comme --fix-headerscelle-ci qui pourraient réparer les fichiers (faites d'abord des sauvegardes des fichiers!).

Marcel Stimberg
la source
Agréable. Cela semble être un outil très utile.
Steven D
1
"for i in 1 2 3 4 5; do vbrfix -always -log EndersGame $ i.mp3 EG $ i.mp3; done" était la commande que j'utilisais pour économiser sur certaines saisies.
kasterma
Je ne comprends vraiment pas pourquoi un lien vers un programme merdique développé sur Windows et seulement porté plus tard sur Linux (donc même pas scriptable, tsk tsk) en a fait la réponse acceptée! (donc j'ai downvoté la réponse)
ixtmixilix
@ixtmixilix - Pour vbrfix au moins, les binaires qu'ils ont compilés sur le lien sont pour windowz car c'est ce que beaucoup de gens utilisent tristement. Les versions pour Linux sont disponibles ailleurs ( et semblent également être incluses dans Ubuntu 12.04+ ) - vous pouvez également essayer d'utiliser le code source disponible . Le lien mp3check est mort cependant ....
Wilf
OK vbrfix fonctionne parfaitement - alors que j'utilise Fedora, j'ai téléchargé les sources de la version Ubuntu , utilisé dpkg-source -x vbrfix_0.24-7.dscpour l'extraire, appliquer des correctifs, etc. ./configure --prefix='/home/wilf/Downloads/fsbOPEN/vbrfix/makeinstall', makeet make installpour produire un excitable autonome que je pourrais utiliser sur mes fichiers. J'avais besoin d'analyser l' -alwaysoption pour le faire fonctionner.
Wilf
8

Bien que je ne sache pas spécifiquement si des options supplémentaires seraient nécessaires pour résoudre le problème que vous mentionnez, ffmpeg est

une solution complète et multiplateforme pour enregistrer, convertir et diffuser de l'audio et de la vidéo.

C'est le couteau suisse pour l'audio et la vidéo. Le réencodage de vos fichiers devrait être aussi simple que

$ ffmpeg -i oldfile.mp3 newfile.mp3

ffmpeg se trouve dans les dépôts de la plupart des distributions majeures ou peut être téléchargé depuis leur site Web.

Steven D
la source
cela me semble une réponse plus sensée. de toute évidence, l'OP a beaucoup de fichiers et sait probablement ouvrir une ligne de commande, bien que l'on s'inquiète ces jours-ci, et en fait, cette réponse a effectivement répondu à la question que j'allais poser. donc je l'ai voté. vous obtenez un bon karma SE, @Steven D, bien que votre réponse n'ait obtenu aucun vote jusqu'à ce que je le voie.
ixtmixilix
1
J'ai un problème similaire, et j'ai déjà essayé ffmpeg et cela a fonctionné pour la plupart: D, mais j'ai quelques fichiers sur lesquels il est sorti en citant Invalid data found when processing input....
Wilf
3

Il est possible de le faire avec lameet de reporter les balises id3 (trouvé ici ).

find . -type f -iname "*.mp3" | while read file 
do
    mv "$file" "${file}.old" && \
    lame --mp3input -q 0 -b 192 --resample 44.1 "${file}.old" "$file" && \
    id3cp "${file}.old" "$file"
done

Voir plus de scripts de conversion que j'ai écrits ici: https://github.com/sid-the-sloth/conversion-scripts

woohoo
la source
0

Essayez LAME Je dois vous avertir que le réencodage peut (probablement) entraîner une perte de qualité.

xénoterracide
la source