]> git.phdru.name Git - audio-cdr-video.git/blobdiff - video/ff_encode
Join codecs' if's into one if/elif/else operator
[audio-cdr-video.git] / video / ff_encode
index 275417cf0688a4470a2d03b9927fc6feaa3cbcc9..cb20f956c2e9d162fe3f71ba4dc6610cd28ac4f8 100755 (executable)
@@ -39,31 +39,39 @@ else
    output=output.avi
 fi
 
-if [ "$vcodec" = mpeg4-hq ]; then
+if [ "$vcodec" = mpeg4 ]; then
+   vopts="-g 300 -bf 2"
+
+elif [ "$vcodec" = mpeg4-hq ]; then
    vcodec=mpeg4
-   vopts="-mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2"
-fi
+   vopts="-g 300 -bf 2 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2"
 
-if [ "$vcodec" = x264 ]; then
+elif [ "$vcodec" = mpeg4-vhq ]; then
+   vcodec=mpeg4
+   vopts="-g 200 -bf 2 -mbd rd -flags +mv4+aic+qprd+mv0 -flags2 skiprd -trellis 2 -cmp 2 -subcmp 2"
+
+elif [ "$vcodec" = x264 ]; then
    vcodec=libx264
-fi
 
-if [ "$vcodec" = x264-hq ]; then
+elif [ "$vcodec" = x264-hq ]; then
    vcodec=libx264
    vopts="-preset slow"
-fi
 
-if [ "$vcodec" = x264-vhq ]; then
+elif [ "$vcodec" = x264-vhq ]; then
    vcodec=libx264
    vopts="-preset veryslow"
+
+else
+   echo "Unknown video codec $vcodec; known codecs are {mpeg4,x264}[-[v]hq], copy" >&2
+   exit 1
 fi
 
 if [ "$pass" -eq 1 ]; then
-   exec ffmpeg $input_opts -i "$input" -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" $output_opts "$output"
+   exec ffmpeg $input_opts -i "$input" -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -c:a "$acodec" -b:a "$abitrate" $output_opts "$output"
 
 elif [ "$pass" -eq 2 ]; then
-   ffmpeg -pass 1 $input_opts -i "$input" -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" -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" $output_opts "$output"
+   ffmpeg -pass 1 $input_opts -i "$input" -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -an -f rawvideo -y /dev/null $output_opts &&
+   exec ffmpeg -pass 2 $input_opts -i "$input" -c:v "$vcodec" $vopts $vscale -b:v "$vbitrate" -c:a "$acodec" -b:a "$abitrate" $output_opts "$output"
 
 else
    echo "Can only do 1 or 2 passes." >&2