I wanted to play video on my Siemens M75. After some research, I found that the format is 3gp. Video files can be converted to this format using the Linux utility "ffmpeg".
Some notes on preparing ffmpeg:
* the utility should be downloaded from CVS,
* --enable-amr_nb should be given to the configure script,
* additional code should be downloaded to support --enable-amr_nb (Makefile prints details).
I spent much time choosing options for the best quality. Unfortunately, I haven't succeeded: sometimes video isn't smooth. The best options for me are:
* size: 176x144,
* bit rate: 30kbps,
* frame rate: 12fps.
The page "Watching movies on your phone" suggest improvements, and I followed them. It seems preprocessing by mencoder and mplayer gives better results.
The improved method is hard to use for a set of files, so I decided to write a wrapper script. To my disappointment, I forget how to write bash scripts. As solution, I decided to write a Makefile:
%.track.avi: %.avi mencoder '$< ' -nosound \\ -ovc lavc -lavcopts vcodec=h263 \\ -vop expand=176:144,scale=176:-2 -o '$@' -ofps 12 %.track.wav: %.avi mplayer -vo null \\ -ao pcm -af resample=8000,volume=+16db:sc '$<' mv audiodump.wav '$@' %.3gp: %.track.avi %.track.wav ~/opt/ffmpeg/bin/ffmpeg -i '$(word 1,$+)' -i '$(word 2,$+)' \\ -vcodec h263 -b 30 -r 12 \\ -acodec amr_nb -ac 1 -ab 12 \\ -map 0.0 -map 1.0 '$@'
Usage is simple:
$ make -f ~/bin/Makefile-3gp.mk `ls *avi | sed 's/avi$/3gp/'`