#!/bin/csh # Written by Bill Brown, to ease making of mpeg movies from rgb files. # May want to experiment with some of the things in parameter file - # see documentation for mpeg_encode if ($#argv < 3) then echo echo USAGE: make.mpeg \[-s scalefactor\] moviename rgbfile1 rgbfile2... echo exit 1 endif if ($#argv > 1000) then echo echo Too many files to use this script! echo exit 1 endif if ($#argv < 8) then echo echo Too few frames to use this script! echo exit 1 endif set THISDIR=`pwd` set firstfile set num @ num=1 set FSTART="0" if( "$1" == "-s" ) then set SCALE=$2 @ firstfile=4 set MOVIENAME=$3 else set SCALE="none" @ firstfile=2 set MOVIENAME=$1 endif # prevent no match error echo NULL > m_mpeg.000 /bin/rm m_mpeg.* set WID=`istat $argv[$firstfile] | awk '( $1 != "xsize" ) {print $1}'` set HGT=`istat $argv[$firstfile] | awk '( $1 != "xsize" ) {print $2}'` foreach i ($*) if ( "$i" == "$argv[$firstfile]" ) then set FSTART="1" endif if ( "$FSTART" != "0" ) then echo $i set SUFFIX=`echo "$num"` if ( $num < 10 ) then set SUFFIX=`echo 00"$num"` else if ( $num < 100 ) then set SUFFIX=`echo 0"$num"` endif set TNAME=m_mpeg.$SUFFIX if ( $SCALE != "none") then izoom $i $THISDIR/$TNAME $SCALE $SCALE if ( "$FSTART" == "1" ) then set WID=`istat $THISDIR/$TNAME | awk '( $1 != "xsize" ) {print $1}'` set HGT=`istat $THISDIR/$TNAME | awk '( $1 != "xsize" ) {print $2}'` set FSTART="2" endif else ln $i $THISDIR/$TNAME endif @ num= $num + 1 endif end set PFILE=$MOVIENAME.param @ num= $num - 1 #make parameter file set COM1=`echo "#" parameter file for "$MOVIENAME".mpg moviefile` set COM2=`echo "#" used by mpeg_encode when creating .mpg file from images` echo $COM1 > $PFILE echo $COM2 >> $PFILE echo >> $PFILE echo #echo "PATTERN IBBPBB" >> $PFILE # use this for better quality, less compression echo "PATTERN IBPB" >> $PFILE echo FORCE_ENCODE_LAST_FRAME >> $PFILE echo >> $PFILE echo OUTPUT "$MOVIENAME".mpg >> $PFILE echo >> $PFILE echo "INPUT_DIR ." >> $PFILE echo "INPUT" >> $PFILE echo "m_mpeg.* [001-"$SUFFIX"]" >> $PFILE echo "END_INPUT" >> $PFILE echo >> $PFILE echo "BASE_FILE_FORMAT YUV" >> $PFILE echo YUV_SIZE "$WID"x"$HGT" >> $PFILE echo "INPUT_CONVERT sgitoyuv < *" >> $PFILE echo "GOP_SIZE 30" >> $PFILE echo "SLICES_PER_FRAME 1" >> $PFILE echo >> $PFILE echo "PIXEL HALF" >> $PFILE echo "RANGE 10" >> $PFILE echo >> $PFILE echo "PSEARCH_ALG TWOLEVEL" >> $PFILE echo "BSEARCH_ALG CROSS2" >> $PFILE echo >> $PFILE echo "IQSCALE 8" >> $PFILE echo "PQSCALE 10" >> $PFILE echo "BQSCALE 20" >> $PFILE echo >> $PFILE echo "REFERENCE_FRAME DECODED" >> $PFILE #echo "REFERENCE_FRAME ORIGINAL" >> $PFILE mpeg_encode -stat $MOVIENAME.stat $MOVIENAME.param # clean up /bin/rm $THISDIR/m_mpeg.* /bin/rm $MOVIENAME.stat $MOVIENAME.param