Here's the command line I used to convert a 704x544 AVI. You'll probaby need to adjust some of the size settings for you're own application.
ffmpeg -i "Rick Astley - Never gonna give you up RICKROLL.avi" -vcodec libx264 -b 1500k -s 480x368 -acodec libfaac -ab 128k -ar 48000 -f mp4 -deinterlace -y rick-out.mp4
UPDATED 7/24/2011: updated 128kb to 128k per Daniel's feedback in the comments.
Here's the FFMPEG command line reference:
Note for the IPhone the following limits:
H.264 video, up to 1.5 Mbps, 640 by 480 pixels, 30 frames per second, Low-Complexity version of the H.264 Baseline Profile with AAC-LC audio up to 160 Kbps, 48kHz, stereo audio in .m4v, .mp4, and .mov file formats;
If you're getting this error "error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height", you probably didn't compile FFMPEG correctly. Try downloading it from the website above.
H264 is currently my video format of choice since it works on the following:
- HTML5 in Safari (4+) and Chrome