Je viens de me confronter à cette situation;
J'ai récupéré pour un ami une jolie chanson sur un site web. Malheureusement, le fichier est au format WMA.
Cela m'embetait de lui passer un fichier dans cet état-la, j'ai donc cherché sur le web un moyen de le convertir en Mp3, format plus confortable à lire quelque soit l'OS ou le player.

Les premières pistes que j'ai obtenues traitaient de commandes du genre:

# mplayer -ao pcm -aofile good_sound.wav bad_sound.wma

puis conversion en mp3 après, avec les librairies LAME:

# lame -h goo_sound.wav mp3_sound.mp3

C'était sans compter l'ancienneté de mes sources web, l'évolution des arguments, de la syntaxe, de ma config audio... La bazar quoi.

La solution, je l'ai trouvée en un script PERL trouvé ici. C'est une solution que j'ai retrouvée sur plusieurs sites et listes de discussions, que j'appréhendais un petit peu (PERL? beuh cékoica..).

En fait c'est super simple, voici la démarche:

  • 1) Disposer des paquets suivants:
# apt-get install mplayer lame lame-extras liblame0
  • 2) Créer un fichier nommé wma2mp3.pl avec ça dedans:
#!/usr/bin/perl -w
use strict;

foreach my $file (@ARGV) {
next if ($file !~ /\.wma$/i);
my $base = $file; $base =~ s/\.wma$//i;
#utilisation de mplayer pour encoder le .wma en .wav
system "mplayer \"$file\" -ao pcm:file=\"$base.wav\"";
#utilisation de lame pour encoder .wav en .mp3
system "lame -h \"$base.wav\" \"$base.mp3\"";
unlink("$base.wav");
#affichage du message de fin
print "$base.wma converti en mp3.\n";
}
  • 3) Lancer cette ligne de commande, dans le répertoire contenant le script ainsi que le fichier à convertir:
$ perl wma2mp3.pl chanson.wma
  • 4) Ca mouline tout seul un petit moment, et c'est DONE :)