#!/bin/sh
# canon_vidtranscode.sh by Frank "yogan" Blendinger (fb@intoxicatedmind.net)
#
# Transcodes video clips from Canon digital cameras to mpeg4 avi files
# with MP3 audio and merges them.
# Based on http://www.edginet.org/techie/linux/canon_divx.html

BITRATE=750	# video bitrate in kBit/s

if [ ${#*} -eq 0 ]
then
	echo "Usage: `basename $0` SOURCEFILE1 [SOURCEFILE2 ...]"
	exit 1
fi
if [ -e merged.avi ]
then
	echo "Target file 'merged.avi' already exists, aborting."
	exit 2
fi

echo -n "Transcoding files with $BITRATE kBit/s... "
mkdir transcode
for file in "$@" ; do
	echo "Transcoding $file" >> `basename $0`
	for pass in 1 2 ; do
		echo -e "\n[Pass ${pass}]" >> `basename $0`
		if [ $pass -eq 1 ] ; then b=$(($BITRATE * 2)) ; else b=$BITRATE ; fi
		mencoder "$file" \
			-channels 1 -srate 11025 -oac mp3lame -lameopts mode=3:abr:br=16 \
			-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=${b}:vpass=$pass -o "transcode/$file" \
			1> /dev/null 2>> `basename $0`
	done
	echo "--------------------------------------------------------------------------------" >> `basename $0`
done
echo "done."
rm divx2pass.log

echo -n "Merging files... "
avimerge -i transcode/* -o merged.avi &> /dev/null && rm -r transcode/
echo "done."
echo "Video written to 'merged.avi', logfile written to '`basename $0`.log'."

