#!/bin/sh def_signal=0 def_sound=0 def_tools=1 help(){ cat < Options: -s n audio, n=0 mp2enc, n=1 toolame ($def_sound) -t n video, n=0 mjpegtools, n=1 ffmpeg ($def_tools) -v n Video Signal, n=1 ntsc n=2 pal ($def_signal) END exit 0 } signal=$def_signal sound=$def_sound tools=$def_tools while getopts s:t:v:h name "$@" do case $name in s) sound=$OPTARG ;; t) tools=$OPTARG ;; v) signal=$OPTARG ;; *) help ;; esac done let shiftind=$OPTIND-1 shift $shiftind case $signal in 2) Vflag="-F 25:1" Nflag="pal" Rflag_m="-A 59:54" fwidth="720" fheight="576" ;; *) Vflag="-F 30000:1001" Nflag="ntsc" Rflag_m="-A 10:11" fwidth="720" fheight="480" ;; esac if test "$#" = "1" then case $1 in *.pnm) ifilter=cat input="$1" base=`echo $input | sed "s/\.pnm$//"` ;; *.ppm) ifilter=cat input="$1" base=`echo $input | sed "s/\.ppm$//"` ;; *.png) ifilter=pngtopnm input="$1" base=`echo $input | sed "s/\.png$//"` ;; *) help ;; esac echo Transcoding $input to $base.mpg.... sleep 1 dd if=/dev/zero bs=4 count=16000 | sox -t raw -s -w -c2 -r48000 /dev/stdin "$base".wav case $tools in 1) $ifilter $input | ppmtoy4m $Rflag $Vflag -n 10 -r -I p -S 420mpeg2 | ffmpeg -f yuv4mpegpipe -i /dev/stdin \ -aspect 4:3 -interlace 0 -r ntsc -target dvd -y "$base".m2v ffmpeg -i "$base".wav -i "$base".m2v \ -target dvd -ab 128000 -y "$base"b.mpg ;; *) $ifilter $input | ppmtoy4m $Rflag $Vflag -n 10 -r -I p -S 420mpeg2 | mpeg2enc -a2 -f 8 -n $Nflag -o "$base".m2v case $sound in 1) toolame -b 128 -s 48 "$base".wav "$base".m2a ;; *) mp2enc -r48000 -b128 -o "$base".m2a <"$base".wav ;; esac mplex -f 8 "$base".m2v "$base".m2a -o "$base"b.mpg ;; esac if test ! -f $base.xml then cat <$base.xml EOF fi spumux $base.xml <"$base"b.mpg >$base.mpg else help fi