#!/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 <<END
Usage: $0 [options] <filename.[avi|dv|mov|mpg|m2t|qt]>
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$//"` ;;
*.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

#    yuvdenoise -g 0,0,0 -t 8,12,12 -M 0,0,0 |

ffmpeg -i $input -f yuv4mpegpipe -pix_fmt yuv420p -y /dev/stdout |
	yuvcorrect -T $iflag_m |
    yuvdeinterlace -d |
    yuvcorrect -T PROGRESSIVE |
	y4mscaler -O size=1280x720 |
    yuvfps -s 60000:1001 -r 60000:1001 |
	mpeg2enc --no-constraints -f3 -nn -a3 \
       -Ktmpgenc -lh -b18000 -V488 -r32 -G18 -q3 -o $base.m2v

mplex -f8 -b488 -r20000 $base.m2v $base.m2a -o $base.mpg
