#!/bin/sh # # high bitrate -a224 -b6500 if it underruns # medium bitrate -a224 -b6000 if it underruns # low bitrate -a192 -b5500 if it underruns # very low bitrate -a96 -b5000 if it underruns # -b6000 -qmin 4 / -b6750 -qmin 3 / -b7500 -qmin 2 # # quantizer values are essentially half that of mjpegtools # def_abitrate=224 def_bitrate=6000 def_interlace=1 def_ratio=2 def_signal=1 help(){ cat < Options: -a n Set the audio bitrate ($def_abitrate) -b n Set the bitrate ($def_bitrate) -i n n=0 progressive, n=1 top, n=2 bottom ($def_interlace) -r n aspect ratio, n=1 4:3, n=2 16:9 ($def_ratio) -v n Video Signal, n=1 ntsc n=2 pal ($def_signal) -h Print this help message END exit 0 } abitrate=$def_abitrate bitrate=$def_bitrate interlace=$def_interlace ratio=$def_ratio signal=$def_signal while getopts v:a:b:i:r:h name "$@" do case $name in v) signal=$OPTARG ;; a) abitrate=$OPTARG ;; b) bitrate=$OPTARG ;; i) interlace=$OPTARG ;; r) ratio=$OPTARG ;; *) help ;; esac done let shiftind=$OPTIND-1 shift $shiftind if test "$#" != "1" then help fi case $1 in *.qt) input="$1" base=`echo $input | sed "s/\.qt$//"` ;; *.mov) input="$1" base=`echo $input | sed "s/\.mov$//"` ;; *.avi) input="$1" base=`echo $input | sed "s/\.avi$//"` ;; *.dv) input="$1" base=`echo $input | sed "s/\.dv$//"` ;; *.mpg) input="$1" base=`echo $input | sed "s/\.mpg$//"`-dvd ;; *) help ;; esac echo Encoding $input to $base.mpg.... case $signal in 2) Frate="-r pal" ;; *) Frate="-r ntsc" ;; esac case $interlace in 0) flags="-interlace 0" ;; 1) flags="-interlace 1 -ildct -ilme -top 1" ;; *) flags="-interlace 1 -ildct -ilme -top 0" ;; esac case $ratio in 2) aflag="-aspect 16:9" ;; *) aflag="-aspect 4:3" ;; esac echo ffmpeg -i $input $flags $Frate -target dvd \ -s 540x480 -padleft 90 -padright 90 $aflag \ -qmin 3 -b $bitrate -ab $abitrate -y $base.mpg sleep 5 # To resize 16:9 NTSC to 4:3 PAL (missing aspect ratio?) # -s 800x480 -padtop 48 -padbottom 48 -cropright 40 -cropleft 40 \ # To resize 4:3 NTSC to 4:3 PAL (or 16:9 NTSC to 16:9 PAL) # -s 600x480 -padtop 48 -padbottom 48 -padleft 60 -padright 60 \ # To resize 4:3 NTSC to 16:9 NTSC # -s 540x480 -padleft 90 -padright 90 \ ffmpeg -i $input $flags $Frate -target dvd \ -s 540x480 -padleft 90 -padright 90 $aflag \ -qmin 3 -b $bitrate -ab $abitrate -y $base.mpg