]> git.phdru.name Git - audio-cdr-video.git/blobdiff - video/mplayer/m_encode
Move outdated scripts to separate subdirectories
[audio-cdr-video.git] / video / mplayer / m_encode
diff --git a/video/mplayer/m_encode b/video/mplayer/m_encode
new file mode 100755 (executable)
index 0000000..5f91d4f
--- /dev/null
@@ -0,0 +1,126 @@
+#! /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