input="$1"
shift
+if [ "$vcodec" = mpeg4-hq ]; then
+ vcodec=mpeg4
+ vopts="-mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2"
+fi
+
if [ "$pass" -eq 1 ]; then
- exec ffmpeg $input_opts -i "$input" -f avi -c:v "$vcodec" $vscale -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" $output_opts output.avi
+ exec ffmpeg $input_opts -i "$input" -f avi -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" $output_opts output.avi
elif [ "$pass" -eq 2 ]; then
- ffmpeg -pass 1 $input_opts -i "$input" -f avi -c:v "$vcodec" $vscale -b:v "$vbitrate" -g 300 -bf 2 -an -f rawvideo -y /dev/null $output_opts &&
- exec ffmpeg -pass 2 $input_opts -i "$input" -f avi -c:v "$vcodec" $vscale -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" $output_opts output.avi
+ ffmpeg -pass 1 $input_opts -i "$input" -f avi -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -g 300 -bf 2 -an -f rawvideo -y /dev/null $output_opts &&
+ exec ffmpeg -pass 2 $input_opts -i "$input" -f avi -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" $output_opts output.avi
else
echo "Can only do 1 or 2 passes." >&2