I have found myself using ffmpeg more and more since the Flash encoder from Adobe CS just doesn’t seem to be optimized to run as fast as it should on Mac OS X even though you do get the On2 encoder – which I feel is slightly better quality. We take a lot of video at the school and the current Whipple Hill media gallery is running in Flash, so getting HD video to .flv is optimal. Also, getting it set to a point where people can just click and start playing the video in a decent speed without having to wait for download speed to catch-up to play speed is key.
FFMPEG is a great tool for this. There are GUI tools that utilize the backend ffmpeg toolset, but I find it easier to just run it in terminal with flags to get where I need to go. Certain video and websites will differ on what will be the best settings per environment, but on Whippe Hill’s Podium Media Gallery, I have been testing quite a bit and is seem to get good results with these flags
ffmpeg -i movie.mov -b 400kb -qscale 20 movie.flv
ffmpeg -i movie.mov -b 400kb -qscale 10 -r 15 movie.flv
On the first above example, I am just having ffmpeg take my video to flv with a max data rate of 400kb per second and a quality scale of 20 which is good in the file size vs. quality issue. On the second example, I beefed-up the quality scale (lower the qscale number the better) but offset the filesize gain you generate in asking for higher quality by chopping the framerate from the default in NTSC of 30 down to 15. This seems like a big cut but if you are filming something without a lot of movement, a frame rate of 15-20 instead of the ~30 is not really noticeable. But, your experience may vary.
The qscale setting on ffmpeg is pretty key and you can go low on it to generate higher quality flv video, but the file size balloons which does not make the rapid play when clicked kick-in nicely. So, you are left with high quality video that people will need to wait for. Chopping the framerate does cut into the size you might gain with the qscale increase, but not equally and qscale affects the output file size much more than cutting the frames. In my two examples, the second output would be higher video quality, but less video updates than the first (higher qscale, less frames) but the file size would be higher than the first output.
Hope this helps, it takes time to play with these sorts of tools to get the desired outputs you want. The settings are there, but usually a mix of a few settings and tweaks will have to be done to pinpoint a desirable result.