From 9dfd1943980dc08a13ffde4a00732b227cc61009 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Sun, 2 Nov 2014 00:36:49 +0300 Subject: [PATCH] Add ff_encode for 1 and 2-pass encoding using ffmpeg --- video/ff_encode | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 video/ff_encode diff --git a/video/ff_encode b/video/ff_encode new file mode 100755 index 0000000..8b19270 --- /dev/null +++ b/video/ff_encode @@ -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 -- 2.39.2