#!/bin/sh # # high bitrate -a224 -b6500 -q2 if it underruns # medium bitrate -a224 -b6000 -q3 if it underruns # low bitrate -a192 -b5500 -q4 if it underruns # very low bitrate -a96 -b5000 -q4 if it underruns # # quantizer values are essentially half that of mjpegtools # def_interlace=1 help(){ cat < Options: -i n n=1 top, n=2 bottom ($def_interlace) -h Print this help message END exit 0 } interlace=$def_interlace while getopts i:q:r:s:t:v:h name "$@" do case $name in i) interlace=$OPTARG ;; *) help ;; esac done let shiftind=$OPTIND-1 shift $shiftind if test "$#" != "1" then help fi case $1 in *.qt) input="$1" base=`echo $input | sed "s/\.qt$//"` ;; *.m2t) input="$1" base=`echo $input | sed "s/\.m2t$//"` ;; *.mov) input="$1" base=`echo $input | sed "s/\.mov$//"` ;; *.flv) input="$1" base=`echo $input | sed "s/\.flv$//"` ;; *.avi) input="$1" base=`echo $input | sed "s/\.avi$//"` ;; *.dv) input="$1" base=`echo $input | sed "s/\.dv$//"` ;; *.mpg) input="$1" base=`echo $input | sed "s/\.mpg$//"`-720p ;; *) help ;; esac case $interlace in 0) iflag_f="-interlace 0" iflag_m=NOT_INTERLACED ;; 1) iflag_f="-interlace 1 -ildct -ilme -top 1" iflag_m=INTERLACED_TOP_FIRST ;; *) iflag_f="-interlace 1 -ildct -ilme -top 0" iflag_m=INTERLACED_BOTTOM_FIRST ;; esac echo "Encoding $input to $base.mpg" echo " video bitrate $bitrate" echo " audio bitrate $abitrate" #sleep 5 input="$1" #lav2wav $input >$base.wav #lav2yuv $input | # yuvscaler -M BICUBIC -O SIZE_1280x720 | ffmpeg -i $input -f wav -y $base.wav mp2enc -r48000 -b224 <$base.wav -o $base.m2a ffmpeg -i $input -f yuv4mpegpipe -pix_fmt yuv420p -y /dev/stdout | yuvcorrect -T PROGRESSIVE | y4mscaler -I sar=16:9 -O size=1280x720 | yuvfps -s 24000:1001 -r 24000:1001 | mpeg2enc --no-constraints -F1 -f3 -nn -a3 \ -Ktmpgenc -lh -b18000 -V488 -r32 -G18 -q7 -s -o $base.m2v mplex -f8 -b488 -r20000 $base.m2v $base.m2a -o $base.mpg