#!/bin/sh # def_interlace=2 def_docrop=1 help(){ cat < Options: -i n n=1 top, n=2 bot ($def_interlace) -c n croping, n=0 pillarbox n=1 crop ($def_docrop) END exit 0 } docrop=$def_docrop interlace=$def_interlace while getopts i:c:h name "$@" do case $name in i) interlace=$OPTARG ;; c) docrop=$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$//"` ;; *.mov) input="$1" base=`echo $input | sed "s/\.mov$//"` ;; *.mpg) input="$1" base=`echo $input | sed "s/\.mpg$//"` ;; *.dv) input="$1" base=`echo $input | sed "s/\.dv$//"` ;; *.avi) input="$1" base=`echo $input | sed "s/\.avi$//"` ;; *) help ;; esac case $interlace in 1) iflag_m=INTERLACED_TOP_FIRST ;; *) iflag_m=INTERLACED_BOTTOM_FIRST ;; esac echo Rescaling $input 4:3 video to ${base}-169.avi 16:9 video... ffmpeg -i $input -f wav -y $base.wav ffmpeg -i $input -f yuv4mpegpipe -pix_fmt yuv411p -y /dev/stdout | case $docrop in 0) yuvcorrect -T PROGRESSIVE 2>/dev/null | y4mscaler -v 0 -O size=720x480 | y4mscaler -v 0 -I sar=NTSC -O sar=NTSC_WIDE \ -O size=720x480 -O active=540x480+90+0 | case $interlace in 1) y4mscaler -v 0 -I active=720x479+0+0 \ -O active=720x479+0+1 -O size=720x480 ;; esac | yuvcorrect -T INTERLACED_BOTTOM_FIRST 2>/dev/null ;; *) yuvcorrect -T $iflag_m 2>/dev/null | yuvdeinterlace -d | yuvcorrect -T PROGRESSIVE 2>/dev/null | y4mscaler -v 0 -O size=720x480 | y4mscaler -v 0 -I sar=NTSC -O sar=NTSC_WIDE \ -O size=720x480 -I active=720x360+0+60 | yuvfps -s 60000:1001 -r 60000:1001 | y4minterlace -ib ;; esac | ffmpeg -f yuv4mpegpipe -i /dev/stdin -i $base.wav \ -interlace 1 -ildct -ilme -top 0 \ -vcodec dvvideo -acodec pcm_s16le \ -target dv -y ${base}-169.avi