A lot has changed since this posting in 2012. I am adding this answer for people like me who find this from the search engines. I had good luck with the following:
ffmpeg -y -i source.mp4 -r 25 -s 160x90 -c:v libx264 -b:v 3M -strict -2 -movflags faststart destination.mp4
Here’s a short explanation on what every parameter does:
-y: overwrite output files without asking-i source.mp4: input file name-r 25: output frame rate (in frames per second)-s 160x90: output frame size (in pixel) – inserts the scale video filter-c:v libx264: output video encoder-c:vis short for-codec:vand-vcodec
-b:v 3M: video bitrate (in bit/s) passed to libx264 encoder-strict -2: governs standards compliance;-2allows experimental features – required to enable native FFmpeg AAC audio encoder in builds older than version 2015-12-05, see here, AAC is now the default audio encoder.-movflags faststart: move the index to the beginning of the output file (mov and mp4 format specific parameter)
For more details see the official documentation.