Conversion de wma en mp3 en masse sans changer de répertoire

8

J'ai des milliers de morceaux de musique au format WMA depuis que j'utilisais Windows Media Player pour extraire des CD. Maintenant, j'ai des problèmes pour les lire sur mon bureau Linux au travail.

Existe-t-il une bonne solution (pour Windows ou Linux) pour convertir tous les WMA en MP3 tout en les laissant dans les mêmes répertoires qu'auparavant? J'ai essayé d'utiliser iTunes pour le faire, mais il a commencé à créer de nouveaux répertoires pour stocker toutes les pistes converties, ce que je ne veux pas.

Tourbillon
la source
1
Sous Linux (quelle distribution, au fait?) Une combinaison de find -execdiret ffmpegdevrait le faire, mais je vais exécuter un test avant de poster une réponse.
William Jackson
2
Sachez que chaque fois que vous convertissez entre des formats avec perte, vous perdez de la qualité. Que cette perte de qualité soit audible dépend de la qualité d'origine, de l'encodeur que vous utilisez pour le transcodage, de votre équipement de lecture et de vos oreilles. Si c'était moi, je chercherais à ré-extraire les CD (si possible) plutôt qu'à transcoder. Même si je sais que cela prend beaucoup plus de temps. Vous pouvez également envisager le stockage de vos CD rippés dans un format sans perte (FLAC est mon préféré, mais il y a d' autres), et transcoder que pour MP3 pour votre lecteur MP3 portable, etc. Ce bien sûr nécessite plus d'espace disque.
Flimzy
@William: Au travail, j'utilise openSUSE, à la maison, j'utilise Linux Mint (Ubuntu) et Windows 7. Je vais devoir vérifier ffmpeg quand j'ai le temps et voir si je peux écrire un script bash ou quelque chose. Si vous postez une réponse qui fonctionne, alors je marquerai cela
Eddy
@Flimzy: Je vais essayer de convertir quelques pistes et vérifier à l'oreille si je constate une perte de qualité. Je ne suis pas un audiophile, donc je pense que ce sera probablement bien pour moi, mais mieux vaut prévenir que guérir, je suppose
Eddy
J'utilise DB PowerAmp Music Converter pour cela, un logiciel génial mais pas gratuit (licence mp3 requise) ... dbpoweramp.com/dmc.htm
Moab

Réponses:

6

Si vous avez des milliers de fichiers, cela prendra une éternité.

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k -map_metadata 0:s:0 {}.mp3 \;

(Les anciennes versions de ffmpeg peuvent nécessiter -map_meta_dataau lieu de -map_metadata, 0:0au lieu de 0:s:0.)

J'ai testé cela sur Ubuntu 16.04. Si vous ne l'avez pas déjà fait, vous devez installer les packages ffmpeget libavcodec-extra-52.

Démarrez cette commande à partir du répertoire parent qui contient tous vos fichiers WMA. Il recherchera dans tous les sous-répertoires tout fichier avec une .wmaextension et tentera de le convertir en MP3. Si le fichier source est nommé Awesome Song.wma, le nouveau fichier sera Awesome Song.wma.mp3et sera dans le même répertoire que le fichier source.

Si vous utilisez normalement un débit binaire supérieur ou inférieur à 192k, changez l' -ab 192kindicateur en celui que vous voulez.

William Jackson
la source
1

Cet indicateur ajouté indiquera à ffmpeg d'essayer de conserver les balises ID3:

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;
normod
la source
1

Celui-ci trouve les fichiers WMA, les convertit en MP3 avec un nom d'extension propre .mp3au lieu de .wma.mp3et supprime l'ancien fichier. Cela a été testé pour fonctionner sur Fedora 19 lors de la recherche de fichiers WMA à travers 150 Go de fichiers organisés par artist/album/<disk number>/file.

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;
Randell
la source
Fonctionne dans un Mac, semble également conserver certaines métadonnées. Bien que j'ai reçu beaucoup d' Queue input is backward in time [mp3 @ 0x7fbffb02ba00] Application provided invalid, non monotonically increasing dts to muxer in streamavertissements.
adib