From: "andrew cooke" <andrew@...>
Date: Thu, 1 Jan 2009 13:03:51 -0300 (CLST)
This simply uncompresses the wma file and then re-encodes it as mp3. It uses a fifo rather than a temporary file to avoid writing to disk (much faster than the temporary file approach, but the uncompressed intermediate file is big). It's difficult to know what quality setting to use - since the wma file was already compressed, anything other than "perfect" is going to lose even more information. On the other hand, there's no point in using crazy quality if the details have already been thrown away. So I just opted for variable bit rate and let the encoder decide. Typical results have similar file sizes in some quick tests I made, but one file was ten times bigger as an mp3. I don't know why. This is based on the scripts at the link given below; I just reformatted, fixed options that had changed slightly, and used vbr. Note that mplayer will require appropriate codecs. For me that meant that the ffmpeg library was needed. #!/bin/bash # Dump wma to mp3 # from http://ocaoimh.ie/2005/08/16/how-to-convert-from-wma-to-mp3/ for src in *.wma do if [ -f "$src" ] then fifo=`echo "$src"|sed -e 's/wma$/wav/'` rm -f "$fifo" mkfifo "$fifo" mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader "$src" -ao pcm:file="$fifo" & dest=`echo "$src"|sed -e 's/wma$/mp3/'` lame --vbr-new "$fifo" "$dest" rm -f "$fifo" fi done