Compressing Camera videos with mencoder
Cameras like the canon SD550 generate motion jpeg files that are way
bigger than they need to be.
This is where you can use mencoder to recompress video to a more efficient
format. It gets interesting at this point because you get to pick between
a more efficient, better looking Divx format (due to 2 pass encoding)
that will not play on windows by default, or a windows format that plays by
default for most people, but doesn't look as good for a given bitrate.
With current mencoders, vcodec=mpeg4 generates files with an AVI
signature of FMP4, which can't apparently be read on windows, even with
the Divx plugin.
The after the fact fix is to binary replace s/FMP4/DX50/ inside
the files (2 instances to change), and the files then do play with media
player if you have divx installed.
The better fix is to add -ffourcc DX50 on the mencoder command
line. Why this isn't a default, I have no idea.
So, to compressed video from camera video clips, you can use one of the
following commands:
DIVX 5
This offers the better quality/smaller files, but requires the Divx plugin
that microsoft will not add to mediaplayer as an auto-retrievable and
loadable codec...
br=1600
#r="-vop mirror,rotate=x" [x=0..3]
for i in 1 2
do
mencoder -channels 1 -srate 11025 -oac mp3lame -lameopts mode=3:abr:br=16 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=$br:vpass=$i -ffourcc DX50 \
$r -o "$1".new "$1"
done
/bin/rm divx2pass.log &>/dev/null
msmepg4v2
This will generate lesser quality/bigger files, but they work out of the box
on windows
br=1600
#r="-vop mirror,rotate=x" [x=0..3]
mencoder -channels 1 -srate 11025 -oac mp3lame -lameopts mode=3:abr:br=16 \
-ovc lavc -lavcopts vcodec=msmpeg4v2:vhq:vbitrate=$br $r -o "$1".new "$1"
Results
Original:
37600170 video_mjpeg_orig.avi
Divx 5 (i.e. mpeg4 for ffmpeg)
4968830 video_divx_dx50_1000.avi
7836424 video_divx_dx50_1600.avi
Msmpeg4v2 (works out of the box on windows)
5057246 video_mp42_1000.avi
7943084 video_mp42_1600.avi
While size is about the same, in my opinion, the 1000kbps divx5 video looks
at least as good as the 1600kbps msmpeg4v2, while the 1600kbps divx5 video
looks quite good
You can download the files and compare them for yourself by going here (if they aren't visible in your browser window already)
For now, it seems to mean that one can choose between good quality or windows
compatibility. If someone know how to make this better on windows, let me know