I was reading this post, as I was in the same situation..
I decided to just stop and write a little perl program to:
1) Read all .wma files in a directory and with each one:
2) Use mplayer to make a converted copy to wav file
3) Use lame to convert the wav file to mp3
4) Remove the wav file
When complete, you will end up with an .mp3 copy of each .wma file. Im not an audio codec expert by any means, so there may be switches to make it faster/more efficient/etc.. Im also not responsible if something does not work right - but for me this works great.
Just copy the code below starting at "#! /usr/bin/perl" into a new text file, name it "convert.pl" or whatever you wish - place the file in the folder with the
wma files.. then run it from the command line "perl convert.pl" - and wait. Dont worry about spaces in file names - it will leave all original file names as is and use the original file names to make the .mp3 file.
Enjoy:
#! /usr/bin/perl
###
WMA TO MP3 CONVERTER
$dir=`pwd`;
## READ EACH FILE, IF
WMA, MAKE A "COPY" TO WAV THEN TO MP3 THEN DELETE
WMA
chop($dir);
opendir(checkdir,"$dir");
while ($file=readdir(checkdir)) {
$orig_file=$file;
if ($orig_file !~ /\.wma$/i) {next};
print "Checking file: $orig_file\n";
$new_wav_file=$orig_file;$new_wav_file=~s/\.wma/\.wav/;
$new_mp3_file=$orig_file;$new_mp3_file=~s/\.wma/\.mp3/;
$convert_to_wav="mplayer \"./$orig_file\" -ao pcm -aofile \"./$new_wav_file\"";
$convert_to_mp3="lame -h \"./$new_wav_file\" \"./$new_mp3_file\"";
$remove_wav="rm -rf \"./$new_wav_file\"";
print "EXEC 1: $convert_to_wav\n";
$cmd=`$convert_to_wav`;
print "EXEC 2: $convert_to_mp3\n";
$cmd=`$convert_to_mp3`;
print "REMOVE WAV: $remove_wav\n";
$cmd=`$remove_wav`;
print "\n\n";
}
print "Done.";