]> git.phdru.name Git - audio-cdr-video.git/blobdiff - video/transcoding/tc_encode
Move outdated scripts to separate subdirectories
[audio-cdr-video.git] / video / transcoding / tc_encode
diff --git a/video/transcoding/tc_encode b/video/transcoding/tc_encode
new file mode 100755 (executable)
index 0000000..e5e39d5
--- /dev/null
@@ -0,0 +1,86 @@
+#! /bin/sh
+
+if [ -z "$1" ]; then
+   echo "Usage: [vcodec=s] [vbitrate=n] [vscale=s] [acodec=s] [abitrate=n] [ascale=s] [pass=n] $0 input.avi [-transcode_options]"
+   exit 1
+fi
+
+if [ -z "$vcodec" ]; then
+   vcodec=ffmpeg
+else
+   vcodec="$vcodec"
+fi
+
+if [ -z "$vbitrate" ]; then
+   vbitrate=1600
+else
+   vbitrate="$vbitrate"
+fi
+
+if [ -n "$vscale" ]; then
+   vscale="-Z $vscale"
+fi
+
+if [ -z "$acodec" ]; then
+   acodec=mp3
+else
+   acodec="$acodec"
+fi
+
+if [ -z "$abitrate" ]; then
+   abitrate=256
+else
+   abitrate="$abitrate"
+fi
+
+if [ -n "$ascale" ]; then
+   ascale="-s $ascale"
+fi
+
+if [ "$vcodec" = ffmpeg ]; then
+   tc_vcodec=ffmpeg
+   vopts="-F mpeg4"
+elif [ "$vcodec" = h264 ]; then
+   tc_vcodec=ffmpeg
+   vopts="-F h264"
+elif [ "$vcodec" = xvid ]; then
+   tc_vcodec=xvid
+   vopts=""
+elif [ "$vcodec" = copy ]; then
+   tc_vcodec=copy
+   vopts=""
+else
+   echo "Unknown video codec $vcodec; known codecs are ffmpeg, h264, xvid, copy" >&2
+   exit 1
+fi
+
+if [ "$acodec" = mp3 ]; then
+   aopts=""
+elif [ "$acodec" = copy ]; then
+   aopts=""
+else
+   echo "Unknown audio codec $acodec; known codecs are mp3 and copy" >&2
+   exit 1
+fi
+
+if [ -z "$pass" ]; then
+   pass=1
+else
+   pass="$pass"
+fi
+
+input="$1"
+shift
+
+if [ "$pass" -eq 1 ]; then
+   exec transcode -i "$input" -y $tc_vcodec      $vopts -u 50 -w "$vbitrate" -b "$abitrate"                  $vscale $ascale -o output.avi "$@"
+
+elif [ "$pass" -eq 2 ]; then
+
+        transcode -i "$input" -y $tc_vcodec,null $vopts -u 50 -w "$vbitrate" -b "$abitrate" -R1 -x auto,null $vscale         -o /dev/null  "$@" &&
+   exec transcode -i "$input" -y $tc_vcodec      $vopts -u 50 -w "$vbitrate" -b "$abitrate" -R2              $vscale $ascale -o output.avi "$@"
+
+else
+   echo "Can only do 1 or 2 pass." >&2
+   exit 1
+fi