#!/bin/bash # Ogg/Mp3 to M4a Conversion # Written by Tristanto Prabowo # Version 0.1: Jan 14, 2007 # Derived from "audio convert" by edoardo # http://gnomefiles.org/app.php/audio_convert # Requirement: zenity (dialogs), vorbis-tools (decoding ogg files), # lame (decoding mp3 files), faac (encoding m4a) # Tested on Ubuntu 6.10 - The Edgy Eft title="Ogg/Mp3 to M4a Conversion Ver 0.1" quality="125" # change to adjust the quality of m4a files generated # type "faac --help" for details #--------------- Functions: is_ogg(){ file -b "$1" | grep 'Vorbis' || echo $1 | grep -i '\.ogg$' } is_mp3 (){ file -b "$1" | grep 'MP3' || echo $1 | grep -i '\.mp3$' } ogg_decode (){ oggdec "$1" -o "$temp_file" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="Decoding: $1" --auto-close } mp3_decode (){ lame --decode "$1" "$temp_file" 2>&1 | awk -vRS='\r' -F'[ /]+' '(NR>2){if((100*$2/$3)<=100)print 100*$2/$3; fflush();}' | zenity --progress --title="$title" --text="Decoding: $1" --auto-close } m4a_encode (){ faac -w -q $quality "$1" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $3; fflush();}' | zenity --progress --title="$title" --text="Encoding to: $out_file" --auto-close } #-------------- Main: file_number=$# (while [ $# -gt 0 ]; do in_file=$1 out_file=`echo "$in_file" | sed 's/\.\w*$/'.m4a'/'` temp_file=`echo "$in_file" | sed 's/\.\w*$/'.wav'/'` if (is_ogg "$in_file") then ogg_decode "$in_file" m4a_encode "$temp_file" rm -f "$temp_file" fi if (is_mp3 "$in_file") then mp3_decode "$in_file" m4a_encode "$temp_file" rm -f "$temp_file" fi shift done )