Blame misc/mlame

Packit 47f805
#!/bin/sh 
Packit 47f805
Packit 47f805
############################################################################
Packit 47f805
#   
Packit 47f805
#  Run the LAME encoder on multiple files, with option to delete .wav files
Packit 47f805
#  after encoding.  "mlame -?" will give instructions.
Packit 47f805
#
Packit 47f805
#  Robert Hegemann
Packit 47f805
#  modified on request: Frank Klemm <pfk@uni-jena.de>
Packit 47f805
#
Packit 47f805
############################################################################
Packit 47f805
Packit 47f805
# encoder path to use
Packit 47f805
mp3coder="lame"
Packit 47f805
mp3analyzer="mlame_corr"
Packit 47f805
Packit 47f805
# default options to use
Packit 47f805
options_low="-h -d -mj -b 128"
Packit 47f805
options_high="-h -d -mj -V 1 -b 112 -B 320"
Packit 47f805
options=$options_high
Packit 47f805
Packit 47f805
# remove source?
Packit 47f805
removesource=false
Packit 47f805
Packit 47f805
# force overwrite of destination
Packit 47f805
testoverwrite=true
Packit 47f805
Packit 47f805
# waiting after error report n seconds
Packit 47f805
errordelay=1 
Packit 47f805
Packit 47f805
helptext="\n\
Packit 47f805
This script runs the LAME mp3 encoder on multiple files: \n\n\
Packit 47f805
    $0 [options] <file 1> ... <file n>\n\
Packit 47f805
\n\
Packit 47f805
  options:\n\
Packit 47f805
    -?                  this help text\n\
Packit 47f805
    -r                  remove files after encoding\n\
Packit 47f805
    -f                  force overwrite of destination if exists\n\
Packit 47f805
    -l                  low quality settings\n\
Packit 47f805
    -h                  high quality settings\n\
Packit 47f805
    -o \"<lame options>\" overrides script default options
Packit 47f805
\n\
Packit 47f805
  example:\n\
Packit 47f805
    $0  -r  -f  -o \"-v -V 0 -b 112\" a*.wav z*.aif g*.mp?\n\
Packit 47f805
\n\
Packit 47f805
"
Packit 47f805
Packit 47f805
#   process command-line options
Packit 47f805
#   this could be extended to fake the 
Packit 47f805
#   commandline interface of the mp3encoder
Packit 47f805
Packit 47f805
while getopts ":o:r:h:l:f" optn; do
Packit 47f805
    case $optn in
Packit 47f805
    o ) options=$OPTARG 	# replace default options
Packit 47f805
	echo New lame options are \'$options\'
Packit 47f805
        ;; 
Packit 47f805
    r ) removesource=true
Packit 47f805
        echo Removing source files after successfully converting
Packit 47f805
	;;
Packit 47f805
    f ) testoverwrite=false
Packit 47f805
        echo Force overwriting existing destination files
Packit 47f805
	;;
Packit 47f805
    h ) options=$options_high
Packit 47f805
        ;;
Packit 47f805
    l ) options=$options_low
Packit 47f805
        ;;
Packit 47f805
    \? ) printf "$helptext"
Packit 47f805
	sleep $errordelay
Packit 47f805
        exit 1  
Packit 47f805
        ;;
Packit 47f805
    esac
Packit 47f805
done
Packit 47f805
shift $(($OPTIND - 1))
Packit 47f805
Packit 47f805
# no files remaining?
Packit 47f805
Packit 47f805
if [ "$1" = "" ]; then
Packit 47f805
    printf "$helptext"
Packit 47f805
    sleep $errordelay
Packit 47f805
    exit 1  
Packit 47f805
fi
Packit 47f805
Packit 47f805
#   process input-files
Packit 47f805
Packit 47f805
for src in "$@"; do
Packit 47f805
Packit 47f805
    case $src in
Packit 47f805
    *[.][wW][aA][vV]  )
Packit 47f805
        dst=${src%[.][wW][aA][vV]}.mp3
Packit 47f805
        if [ -f "$src" ]; then
Packit 47f805
            if [ $testoverwrite = true -a -f "$dst" ]; then
Packit 47f805
                echo \'$dst\' already exists, skipping
Packit 47f805
		sleep $errordelay
Packit 47f805
            elif $mp3coder $options `$mp3analyzer "$src"` "$src" "$dst"; then
Packit 47f805
                if [ $removesource = true ]; then
Packit 47f805
                    rm -f "$src"
Packit 47f805
                fi
Packit 47f805
            else
Packit 47f805
                echo converting of \'$src\' to \'$dst\' failed
Packit 47f805
		sleep $errordelay
Packit 47f805
            fi
Packit 47f805
        else
Packit 47f805
            echo No source file \'$src\' found.
Packit 47f805
	    sleep $errordelay
Packit 47f805
        fi
Packit 47f805
        ;;
Packit 47f805
Packit 47f805
    *[.][aA][iI][fF]  )
Packit 47f805
        dst=${src%[.][aA][iI][fF]}.mp3
Packit 47f805
        if [ -f "$src" ]; then
Packit 47f805
            if [ $testoverwrite = true -a -f "$dst" ]; then
Packit 47f805
                echo \'$dst\' already exists, skipping
Packit 47f805
		sleep $errordelay
Packit 47f805
            elif $mp3coder $options "$src" "$dst"; then
Packit 47f805
                if [ $removesource = true ]; then
Packit 47f805
                    rm -f "$src"
Packit 47f805
                fi
Packit 47f805
            else
Packit 47f805
                echo converting of \'$src\' to \'$dst\' failed
Packit 47f805
		sleep $errordelay
Packit 47f805
            fi
Packit 47f805
        else
Packit 47f805
            echo No source file \'$src\' found.
Packit 47f805
	    sleep $errordelay
Packit 47f805
        fi
Packit 47f805
        ;;
Packit 47f805
Packit 47f805
    *[.][aA][iI][fF][fF] )
Packit 47f805
        dst=${src%[.][aA][iI][fF][fF]}.mp3
Packit 47f805
        if [ -f "$src" ]; then
Packit 47f805
            if [ $testoverwrite = true -a -f "$dst" ]; then
Packit 47f805
                echo \'$dst\' already exists, skipping
Packit 47f805
		sleep $errordelay
Packit 47f805
            elif $mp3coder $options "$src" "$dst"; then
Packit 47f805
                if [ $removesource = true ]; then
Packit 47f805
                    rm -f "$src"
Packit 47f805
                fi
Packit 47f805
            else
Packit 47f805
                echo converting of \'$src\' to \'$dst\' failed
Packit 47f805
		sleep $errordelay
Packit 47f805
            fi
Packit 47f805
        else
Packit 47f805
            echo No source file \'$src\' found.
Packit 47f805
	    sleep $errordelay
Packit 47f805
        fi
Packit 47f805
        ;;
Packit 47f805
Packit 47f805
    *[.][mM][pP][gG12]  )
Packit 47f805
        dst=${src%[.][mM][pP][gG12]}.mp3
Packit 47f805
        if [ -f "$src" ]; then
Packit 47f805
            if [ $testoverwrite = true -a -f "$dst" ]; then
Packit 47f805
                echo \'$dst\' already exists, skipping
Packit 47f805
		sleep $errordelay
Packit 47f805
            elif $mp3coder $options "$src" "$dst"; then
Packit 47f805
                if [ $removesource = true ]; then
Packit 47f805
                    rm -f "$src"
Packit 47f805
                fi
Packit 47f805
            else
Packit 47f805
                echo converting of \'$src\' to \'$dst\' failed
Packit 47f805
		sleep $errordelay
Packit 47f805
            fi
Packit 47f805
        else
Packit 47f805
            echo No source file \'$src\' found.
Packit 47f805
	    sleep $errordelay
Packit 47f805
        fi
Packit 47f805
        ;;
Packit 47f805
Packit 47f805
    *[.][mM][pP]3 )
Packit 47f805
        dst=${src%[.][mM][pP]3}-new-converted-file.${src##*.}
Packit 47f805
        if [ -f "$src" ]; then
Packit 47f805
            if [ $testoverwrite = true -a -f "$dst" ]; then
Packit 47f805
                echo \'$dst\' already exists, skipping
Packit 47f805
		sleep $errordelay
Packit 47f805
            elif $mp3coder $options "$src" "$dst"; then
Packit 47f805
                if [ $removesource = true ]; then
Packit 47f805
                    mv -f "$dst" "$src"
Packit 47f805
                fi
Packit 47f805
            else
Packit 47f805
                echo converting of \'$src\' to \'$dst\' failed
Packit 47f805
		sleep $errordelay
Packit 47f805
            fi
Packit 47f805
        else
Packit 47f805
            echo No source file \'$src\' found.
Packit 47f805
	    sleep $errordelay
Packit 47f805
        fi
Packit 47f805
        ;;
Packit 47f805
Packit 47f805
    * ) # the rest
Packit 47f805
        echo warning: File extention \'.${src##*.}\' not supported
Packit 47f805
        sleep $errordelay
Packit 47f805
        ;;
Packit 47f805
Packit 47f805
    esac
Packit 47f805
Packit 47f805
done