--- /dev/null
+#! /bin/sh
+
+if [ -z "$1" ]; then
+ echo "Usage: [vcodec=s] [vbitrate=n] [vscale=s] [aid=n] [acodec=s] [abitrate=n] [ascale=s] [pass=n] $0 [-mencoder_options] input.avi..."
+ exit 1
+fi
+
+if [ -z "$vcodec" ]; then
+ vcodec=lavc
+else
+ vcodec="$vcodec"
+fi
+
+if [ -z "$vbitrate" ]; then
+ vbitrate=1600
+else
+ vbitrate="$vbitrate"
+fi
+
+if [ -n "$vscale" ]; then
+ vscale="-vf scale=$vscale"
+fi
+
+if [ -z "$acodec" ]; then
+ acodec=mp3lame
+else
+ acodec="$acodec"
+fi
+
+if [ -z "$abitrate" ]; then
+ abitrate=256
+else
+ abitrate="$abitrate"
+fi
+
+if [ -n "$ascale" ]; then
+ ascale="-af volume=$ascale"
+fi
+
+if [ "$vcodec" = lavc ]; then
+ vopts="-lavcopts vcodec=mpeg4:vbitrate=$vbitrate:autoaspect"
+
+elif [ "$vcodec" = lavc-hq ]; then
+ vcodec=lavc
+ vopts="-lavcopts vcodec=mpeg4:vbitrate=$vbitrate:autoaspect:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo"
+
+elif [ "$vcodec" = lavc-vhq ]; then
+ vcodec=lavc
+ vopts="-lavcopts vcodec=mpeg4:vbitrate=$vbitrate:autoaspect:mbd=2:trell:v4mv:last_pred=3:dia=2:vmax_b_frames=2:vb_strategy=1:cmp=2:subcmp=2:precmp=2:mv0:cbp:predia=2:preme=2:qns=2"
+
+elif [ "$vcodec" = x264 ]; then
+ vopts="-x264encopts bitrate=$vbitrate"
+
+elif [ "$vcodec" = x264-hq ]; then
+ vcodec=x264
+ vopts="-x264encopts bitrate=$vbitrate:subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b"
+
+elif [ "$vcodec" = x264-vhq ]; then
+ vcodec=x264
+ vopts="-x264encopts bitrate=$vbitrate:subq=6:8x8dct:frameref=5:bframes=3:b_pyramid:weight_b:partitions=all:me=umh"
+
+elif [ "$vcodec" = xvid ]; then
+ vopts="-xvidencopts bitrate=$vbitrate"
+
+elif [ "$vcodec" = xvid-hq ]; then
+ vcodec=xvid
+ vopts="-xvidencopts bitrate=$vbitrate:chroma_opt:vhq=2:bvhq=1:quant_type=mpeg"
+
+elif [ "$vcodec" = xvid-vhq ]; then
+ vcodec=xvid
+ vopts="-xvidencopts bitrate=$vbitrate:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg"
+
+elif [ "$vcodec" = copy ]; then
+ vopts=""
+
+else
+ echo "Unknown video codec $vcodec; known codecs are {lavc,x264,xvid}[-[v]hq], copy" >&2
+ exit 1
+fi
+
+if [ "$acodec" = mp3lame ]; then
+ aopts="-lameopts cbr:br=$abitrate:q=0"
+elif [ "$acodec" = copy ]; then
+ aopts=""
+else
+ echo "Unknown audio codec $acodec; known codecs are mp3lame and copy" >&2
+ exit 1
+fi
+
+if [ "$aid" ]; then
+ aopts="$aopts -aid $aid"
+fi
+
+if [ -z "$pass" ]; then
+ pass=1
+else
+ pass="$pass"
+fi
+
+if [ "$vcodec" = lavc ]; then
+ vpass=vpass
+elif [ "$vcodec" = x264 ]; then
+ vpass=pass
+elif [ "$vcodec" = xvid ]; then
+ vpass=pass
+fi
+
+if [ "$pass" -eq 1 ]; then
+ exec mencoder -ovc "$vcodec" $vopts $vscale -oac "$acodec" $aopts $ascale -o output.avi "$@"
+
+elif [ "$pass" -eq 2 ]; then
+
+ mencoder -ovc "$vcodec" $vopts:$vpass=1 $vscale -nosound -o /dev/null "$@" &&
+ exec mencoder -ovc "$vcodec" $vopts:$vpass=2 $vscale -oac "$acodec" $aopts $ascale -o output.avi "$@"
+
+elif [ "$pass" -eq 3 ]; then
+
+ mencoder -ovc "$vcodec" $vopts:$vpass=1 $vscale -nosound -o /dev/null "$@" &&
+ mencoder -ovc "$vcodec" $vopts:$vpass=3 $vscale -nosound -o /dev/null "$@" &&
+ exec mencoder -ovc "$vcodec" $vopts:$vpass=3 $vscale -oac "$acodec" $aopts $ascale -o output.avi "$@"
+ # pass=3 is not a typo!
+
+else
+ echo "Can only do 1, 2 or 3 passes." >&2
+ exit 1
+fi