]> git.phdru.name Git - audio-cdr-video.git/commitdiff
Add ff_encode for 1 and 2-pass encoding using ffmpeg
authorOleg Broytman <phd@phdru.name>
Sat, 1 Nov 2014 21:36:49 +0000 (00:36 +0300)
committerOleg Broytman <phd@phdru.name>
Sat, 1 Nov 2014 22:03:58 +0000 (01:03 +0300)
video/ff_encode [new file with mode: 0755]

diff --git a/video/ff_encode b/video/ff_encode
new file mode 100755 (executable)
index 0000000..8b19270
--- /dev/null
@@ -0,0 +1,55 @@
+#! /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 input.avi [-ffmpeg_options]"
+   exit 1
+fi
+
+if [ -z "$vcodec" ]; then
+   vcodec=mpeg4
+else
+   vcodec="$vcodec"
+fi
+
+if [ -z "$vbitrate" ]; then
+   vbitrate=1600k
+else
+   vbitrate="$vbitrate"
+fi
+
+if [ -n "$vscale" ]; then
+   vscale="-s $vscale"
+fi
+
+if [ -z "$acodec" ]; then
+   acodec=libmp3lame
+else
+   acodec="$acodec"
+fi
+
+if [ -z "$abitrate" ]; then
+   abitrate=256k
+else
+   abitrate="$abitrate"
+fi
+
+if [ -z "$pass" ]; then
+   pass=1
+else
+   pass="$pass"
+fi
+
+input="$1"
+shift
+
+if [ "$pass" -eq 1 ]; then
+   exec ffmpeg -i "$input" -f avi -c:v "$vcodec" -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" "$@" output.avi
+
+elif [ "$pass" -eq 2 ]; then
+   ffmpeg -pass 1 -i "$input" -f avi -c:v "$vcodec" -b:v "$vbitrate" -g 300 -bf 2 -an -f rawvideo -y /dev/null "$@" &&
+   exec ffmpeg -pass 2 -i "$input" -f avi -c:v "$vcodec" -b:v "$vbitrate" -g 300 -bf 2 -c:a "$acodec" -b:a "$abitrate" "$@" output.avi
+
+else
+   echo "Can only do 1 or 2 passes." >&2
+   exit 1
+fi