How more stupid these developers can be? FFmpeg has a lot of hype, and yet it’s the most inflexible encoder I have ever seen. There is no “letterbox” option and it doesn’t auto-calculate the height to keep the aspect ratio. You see, I wanted to write a Nautilus script where you simply right click on any video file and it would automatically create the right mp4+aac video file for cellphones. On each case I need the video size to be 320×240, but if the video is widescreen it should automatically create the letterboxing effect and keep the right aspect ratio. But with ffmpeg this is simply not possible. Except the fact that the existing padtop/padbottom options are not useful in my case (because I need the application to decide these values each time automatically), these pads are added to the existing predefined height instead of just pushing down the video (so if you add pads of 32pixels each, you are ending up with a video of 320×304 even if you have defined the size to be 320×240). To use ffmpeg to encode a video for cellphones you have to change its command line EACH time to accommodate the kind of video source file you got! Therefore, I can’t really create a proper generic script for encoding using ffmpeg.
To make things even worse, Ubuntu has compiled their ffmpeg without AAC support, so there is no way to encode compatible videos for your cellphones if are using Ubuntu. I had to recompile ffmpeg to use faac/faad and even fix a compilation error before I stumble on the rest of the problems. Email me if you require the fixed .deb ffmpeg file that has AAC support, I can send it to you.
And don’t get me started about MEncoder. The thing does not even create valid MP4 and AAC files.