.wma to .mp3

From LQWiki
Jump to navigation Jump to search

wma2mp3

#!/bin/bash
#
# wma to mp3

function wma2mp3 () {

if [ ! -f "$1" ]; then
  echo "File $1 not found!"
else
  wav=`ls "$1" | sed -e 's/.wma/.wav/' | tr -d "*"`
  mplayer -ao pcm "${1%%.[Ww][Mm][Aa]}.wav" "$1" &&
  mv audiodump.wav "$wav" && unset wav &&
  lame -h -b 192 "${1%%.[Ww][Mm][Aa]}.wav" "${1%%.[Ww][Mm][Aa]}.mp3" &&
  rm -f "${1%%.[Ww][Mm][Aa]}.wav" ||
  echo "There was a problem with the conversion process!"
fi

}

# convert all wma files in directory
if [ $# -eq 1 -a -d "$1" ]; then
  for file in $1/*.[Ww][Mm][Aa]; do
    wma2mp3 "$file"
  done
  exit
fi

# One or more wma files were given
for file in "$@"; do
  wma2mp3 "$file"
done

# Not enough information
if [ $# -lt 1 ]; then
  echo
  echo "Usage:	wma2mp3 myfile.wma"
  echo "	wma2mp3 /directory/containing/wma/files"
  echo "	wma2mp3 myfile.wma myfile2.wma myfile3.wma"
  # You have to use quotations for the arguement below.
  # Failure to do so will result in only one file being
  # converted. Namely, the first one it comes across...
  echo '	wma2mp3 "*.wma"'
  echo
  echo "For converting .wma's that have spaces in the"
  echo 'name, use the directory option OR "*.wma"'
  echo
  exit
fi

exit

See also

External Links

mplayer and lame

Also notice that you must call that script wma2mp3