#!/bin/bash -x

if ( test ${#} -lt 1 ) ; then
cat << !EOF
usage: $0 "%s" %d %d %d %d %f %d &
	%s: file name of the frames, e.g. 'cap-%04d.xwd'
	%d: number of the first saved frame
	%d: number of the last saved frame
	%d: width of the frame
	%d: height of the frame
	%f: frames per second
	%d: time per frame (ms, TPF = 1000 / FPS)

!EOF
exit
fi

LOC_TRANSCODE=`which transcode`
LOC_FFMPEG=`which ffmpeg`
LOC_MENCODER=`which mencoder`
EXTENSION=`echo "${1}" | nawk -F "." '{print tolower($NF)}'`
FILE=`echo "${1}" | sed 's/%[0-9]*[i|d]/*/g'`
OUTPUTFILE="/tmp/output.avi"


#
# ffmpeg part
#

if ( test -z ${LOC_FFMPEG} ) ; then
	echo "ffmpeg not found, trying transcode ..."
else
	if test "x${EXTENSION}" = "xpng" -o "x${EXTENSION}" = "xppm" -o "x${EXTENSION}" = "xpgm" ; then
		echo "Encoding with ffmpeg found at: ${LOC_FFMPEG}"

		${LOC_FFMPEG} -y -r 10 -i ${1} ${OUTPUTFILE}
		exit 0
	else
		echo "of xvidcap's output files ffmpeg only supports png, ppm, and pnm."
		echo "can't encode the input files you're providing, sorry."
		exit 1
	fi
fi


#
# transcode part
#

if ( test -z ${LOC_TRANSCODE} ) ; then
	echo "transcode not found, trying mencoder ..."
else
	echo "Encoding with transcode found at: ${LOC_TRANSCODE}"

	LIST="/tmp/xv_transcode_${$}.piclist"
	DIM="${4}x${5}"
	FPS="${6}"
	ls -1 ${FILE} | sort > ${LIST}
	${LOC_TRANSCODE} -i ${LIST} -g ${DIM} -x imlist,null -y ffmpeg,null -F mpeg4 -f ${FPS} -o ${OUTPUTFILE} -H 1 --use_rgb
	rm ${LIST}
	exit 0
fi


#
# mencoder part
#

if ( test -z ${LOC_MENCODER} ) ; then
	echo "mencoder not found either, sorry!"
else
	if test "x${EXTENSION}" = "xpng" -o "x${EXTENSION}" = "xjpg" -o x"${EXTENSION}" = "xjpeg" ; then
		echo "Encoding with mencoder found at: ${LOC_MENCODER}"

		${LOC_MENCODER} "mf://${FILE}" -mf fps=${6} -o ${OUTPUTFILE} -ovc lavc
	else
		echo "of xvidcap's output files mencoder only supports png and jpg."
		echo "can't encode the input files you're providing, sorry."
	fi
fi

exit


syntax highlighted by Code2HTML, v. 0.9.1