--- /dev/null
+#! /bin/sh
+
+if [ -z "$1" ]; then
+ echo "Usage: [vcodec=s] [vbitrate=n] [vscale=s] [acodec=s] [abitrate=n] [ascale=s] [pass=n] $0 input.avi [-transcode_options]"
+ exit 1
+fi
+
+if [ -z "$vcodec" ]; then
+ vcodec=ffmpeg
+else
+ vcodec="$vcodec"
+fi
+
+if [ -z "$vbitrate" ]; then
+ vbitrate=1600
+else
+ vbitrate="$vbitrate"
+fi
+
+if [ -n "$vscale" ]; then
+ vscale="-Z $vscale"
+fi
+
+if [ -z "$acodec" ]; then
+ acodec=mp3
+else
+ acodec="$acodec"
+fi
+
+if [ -z "$abitrate" ]; then
+ abitrate=256
+else
+ abitrate="$abitrate"
+fi
+
+if [ -n "$ascale" ]; then
+ ascale="-s $ascale"
+fi
+
+if [ "$vcodec" = ffmpeg ]; then
+ tc_vcodec=ffmpeg
+ vopts="-F mpeg4"
+elif [ "$vcodec" = h264 ]; then
+ tc_vcodec=ffmpeg
+ vopts="-F h264"
+elif [ "$vcodec" = xvid ]; then
+ tc_vcodec=xvid
+ vopts=""
+elif [ "$vcodec" = copy ]; then
+ tc_vcodec=copy
+ vopts=""
+else
+ echo "Unknown video codec $vcodec; known codecs are ffmpeg, h264, xvid, copy" >&2
+ exit 1
+fi
+
+if [ "$acodec" = mp3 ]; then
+ aopts=""
+elif [ "$acodec" = copy ]; then
+ aopts=""
+else
+ echo "Unknown audio codec $acodec; known codecs are mp3 and copy" >&2
+ exit 1
+fi
+
+if [ -z "$pass" ]; then
+ pass=1
+else
+ pass="$pass"
+fi
+
+input="$1"
+shift
+
+if [ "$pass" -eq 1 ]; then
+ exec transcode -i "$input" -y $tc_vcodec $vopts -u 50 -w "$vbitrate" -b "$abitrate" $vscale $ascale -o output.avi "$@"
+
+elif [ "$pass" -eq 2 ]; then
+
+ transcode -i "$input" -y $tc_vcodec,null $vopts -u 50 -w "$vbitrate" -b "$abitrate" -R1 -x auto,null $vscale -o /dev/null "$@" &&
+ exec transcode -i "$input" -y $tc_vcodec $vopts -u 50 -w "$vbitrate" -b "$abitrate" -R2 $vscale $ascale -o output.avi "$@"
+
+else
+ echo "Can only do 1 or 2 pass." >&2
+ exit 1
+fi