bash script to encode mkv avi to mpeg-4
This will allow a classic XBOX to play 1280×720 video and should work for anything you can throw at mencoder.
subtitletracks=`mkvinfo "${1}" | fgrep "Track type: subtitles" -b2 | fgrep "Track number:" | awk '{print $NF}' | xargs`;
echo "Found subtitle tracks: ${subtitletracks}";
if [ `echo ${subtitletracks} | wc -w` -gt 1 ]; then
for i in ${subtitletracks};
do
mkvextract tracks "${1}" ${i}:"$1".avi.srt.${i};
done;
cp -i -a "${1}".avi.srt.`echo ${subtitletracks} | cut -d " " -f1` "${1}".avi.srt;
else
mkvextract tracks "${1}" ${subtitletracks}:"${1}".avi.srt;
fi;
echo "Finished extracting subtitle tracks for ${1}. Now encoding video.";
nice -n 19 ionice -c3 mencoder "${1}" -o "${1}".avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=4000:vrc_maxrate=5000:vrc_buf_size=4096;
echo "Finished encoding video for ${1}. Exit status was: ${?}";
unset subtitletracks
