#!/bin/sh resample=TRUE format=VCD USAGE='any2mpeg [options] input.file [output.mpg]\n -n Do not resample audio output\n -f VCD|SVCD|DVD Select output profile [VCD]\n' export resample format USAGE #set -- `getopt -s sh -o nf: -- $*` #if [ $? != 0 ] #then # echo ERROR: Invalid Syntax # printf "$USAGE" # exit 2 #fi for i in $* do case $i in -n) resample=FALSE; shift;; -f) format=$2; shift 2;; --) shift; break;; esac done input=$1 export input if [ -z "$input" ]; then echo ERROR: No Input File Specified [no default] printf "$USAGE" exit 2 fi if [ -z "$2" ]; then output="$input.mpg" else output="$2" fi export output if [ "$format" = "DVD" ]; then FILT="-mpegopts format=dvd -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:abitrate=192:aspect=16/9" RATE=48800 elif [ "$format" = "SVCD" ]; then FILT="-mpegopts format=xsvcd -vf scale=480:480,harddup -lavcopts vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224" RATE=44100 elif [ "$format" = "VCD" ]; then FILT="-mpegopts format=xvcd -vf scale=320:240,harddup -lavcopts vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224" RATE=44100 else echo ERROR: Invalid Output Format Profile [$format] printf "$USAGE" exit 2 fi export FILT RATE if [ "$resample" = "TRUE" ]; then FILT="$FILT -af lavcresample=$RATE" fi mencoder -oac lavc -ovc lavc -of mpeg -srate $RATE -ofps 30000/1001 $FILT -o "$output" "$input"