4 echo "Usage: [vcodec=s] [vbitrate=n] [vscale=s] [aid=n] [acodec=s] [abitrate=n] [ascale=s] [pass=n] $0 [-mencoder_options] input.avi..."
8 if [ -z "$vcodec" ]; then
14 if [ -z "$vbitrate" ]; then
20 if [ -n "$vscale" ]; then
21 vscale="-vf scale=$vscale"
24 if [ -z "$acodec" ]; then
30 if [ -z "$abitrate" ]; then
36 if [ -n "$ascale" ]; then
37 ascale="-af volume=$ascale"
40 if [ "$vcodec" = lavc ]; then
41 vopts="-lavcopts vcodec=mpeg4:vbitrate=$vbitrate:autoaspect"
43 elif [ "$vcodec" = lavc-hq ]; then
45 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"
47 elif [ "$vcodec" = lavc-vhq ]; then
49 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"
51 elif [ "$vcodec" = x264 ]; then
52 vopts="-x264encopts bitrate=$vbitrate"
54 elif [ "$vcodec" = x264-hq ]; then
56 vopts="-x264encopts bitrate=$vbitrate:subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b"
58 elif [ "$vcodec" = x264-vhq ]; then
60 vopts="-x264encopts bitrate=$vbitrate:subq=6:8x8dct:frameref=5:bframes=3:b_pyramid:weight_b:partitions=all:me=umh"
62 elif [ "$vcodec" = xvid ]; then
63 vopts="-xvidencopts bitrate=$vbitrate"
65 elif [ "$vcodec" = xvid-hq ]; then
67 vopts="-xvidencopts bitrate=$vbitrate:chroma_opt:vhq=2:bvhq=1:quant_type=mpeg"
69 elif [ "$vcodec" = xvid-vhq ]; then
71 vopts="-xvidencopts bitrate=$vbitrate:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg"
73 elif [ "$vcodec" = copy ]; then
77 echo "Unknown video codec $vcodec; known codecs are {lavc,x264,xvid}[-[v]hq], copy" >&2
81 if [ "$acodec" = mp3lame ]; then
82 aopts="-lameopts cbr:br=$abitrate:q=0"
83 elif [ "$acodec" = copy ]; then
86 echo "Unknown audio codec $acodec; known codecs are mp3lame and copy" >&2
91 aopts="$aopts -aid $aid"
94 if [ -z "$pass" ]; then
100 if [ "$vcodec" = lavc ]; then
102 elif [ "$vcodec" = x264 ]; then
104 elif [ "$vcodec" = xvid ]; then
108 if [ "$pass" -eq 1 ]; then
109 exec mencoder -ovc "$vcodec" $vopts $vscale -oac "$acodec" $aopts $ascale -o output.avi "$@"
111 elif [ "$pass" -eq 2 ]; then
113 mencoder -ovc "$vcodec" $vopts:$vpass=1 $vscale -nosound -o /dev/null "$@" &&
114 exec mencoder -ovc "$vcodec" $vopts:$vpass=2 $vscale -oac "$acodec" $aopts $ascale -o output.avi "$@"
116 elif [ "$pass" -eq 3 ]; then
118 mencoder -ovc "$vcodec" $vopts:$vpass=1 $vscale -nosound -o /dev/null "$@" &&
119 mencoder -ovc "$vcodec" $vopts:$vpass=3 $vscale -nosound -o /dev/null "$@" &&
120 exec mencoder -ovc "$vcodec" $vopts:$vpass=3 $vscale -oac "$acodec" $aopts $ascale -o output.avi "$@"
121 # pass=3 is not a typo!
124 echo "Can only do 1, 2 or 3 passes." >&2