#! /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