#!/bin/bash function usage () { echo 1>&2 echo "Usage: miff2avi [-f frames_per_second]" 1>&2 echo " [-o outfile.avi]" 1>&2 echo " file.miff" 1>&2 echo 1>&2 echo " Converts file.miff to file.avi (or outfile.avi if -o is given)" 1>&2 echo " using frames_per_second as framerate (defaults to 25)" 1>&2 echo 1>&2 echo " Assumes mjpeg tools and \"convert\" (ImageMagick) are installed." 1>&2 echo 1>&2 echo " file.miff should contain all the frames to be animated. " 1>&2 echo " $0 does not accept a file list (e.g. file*.miff) as an argument. " 1>&2 echo 1>&2 echo " This script was originally written by Ulrich Oelmann . " 1>&2 echo " See http://opendx.npaci.edu/mail/opendx-users/2004.10/msg00026.html" 1>&2 echo 1>&2 exit 0 } if [ $[$# < 1 ] = 1 ]; then usage fi FOPTION=25; OOPTION=""; while getopts "f:o:" OPTION; do case $OPTION in f) FOPTION=$OPTARG;; o) OOPTION=$OPTARG;; ?) usage;; esac done shift $[$OPTIND-1] if [ x"$OOPTION" == "x" ]; then OOPTION=`basename $1 .miff` OOPTION=`basename $OOPTION .MIFF` OOPTION=`dirname $1`/$OOPTION".avi" fi TMPDIR=`mktemp -d miff2xvid.XXXXXXXXXX` mkdir -p $TMPDIR declare -i FRAMES X Y echo "######### Analyzing $1" IDENTIFY=`identify -format "%n %w %h" $1 | \ tail -n 2 | head -n 1` FRAMES=`echo $IDENTIFY | gawk '{ print $1 }'` X=`echo $IDENTIFY | gawk '{ print $2 }'` Y=`echo $IDENTIFY | gawk '{ print $3 }'` FRAMES=$(( FRAMES-1 )) if [ $(( $Y % 2 )) -eq 1 ]; then JOPTION=1 else JOPTION=0 fi; if [ $(( $X % 2 )) -eq 1 ]; then JOPTION=$JOPTION",1,0,0" else JOPTION=$JOPTION",0,0,0" fi; echo "######### Extracting $(( FRAMES+1 )) frames out of $1" convert -quality 9 $1 $TMPDIR/frame.ppm echo "######### Encoding animation to $OOPTION" echo ppmtoy4m -F $FOPTION:1 $TMPDIR/frame.ppm | yuv2lav -q 100 -f a -o $OOPTION #convert -quality 9 $1 $TMPDIR/frame.png # test later when transcode and other libraries become available #for ZAHL in `seq 0 $FRAMES`; do # mv $TMPDIR/frame.png.$ZAHL $TMPDIR/frame.$ZAHL.png # echo $TMPDIR/frame.$ZAHL.png >> $TMPDIR/frameliste.txt #done #transcode -i $TMPDIR/frameliste.txt \ # -x imlist,null \ # -g "$X"x"$Y" \ # -z \ # -j $JOPTION \ # -y xvid4,null \ # -f $FOPTION \ # -w 1500 \ # -H 0 \ # -o $OOPTION rm -rf $TMPDIR # version # $Id$ # End of file