I think I ought to tell about the idea that fellow FFmpeg participant Robert Swain (I still wait for him to complete AMR-NB decoder) tries to champion. I mean encoding profiles.
The idea is quite simple – allow users use convenient presets instead of command line black magic, so simple commands like
ffmpeg -i input.vob -preset dvdrip -preset hq_mp3 output.avi
ffmpeg -i input.avi -preset flash_youtube output.flv
ffmpeg -i input.vob -preset ipod_vid output.mp4
can be used without bothering about bitrate/flags/gop size/whatever.
I also think this will be useful. It will be easier to change options meaning without making additional complications (we still get questions from users that do not know recent ffmpeg expects bitrate to be specified in bits, not in kilobits as before). Just don’t make frontend for it named ffclippy, okay?
One idea is that we have presets affecting quality only and presets for constraints on bit stream features. For example, fast/normal/high for speed/quality tradeoff. I know the scale doesn’t use the same units but users like things to be positive… 🙂 Also, targets for DVD, iPod, PSP, AppleTV, Blu Ray and people can write their own somehow for whatever standalone, portable or whatever players they have.
It would be good to have VBV set appropriately for selected levels and bit stream features constrained appropriately for profiles with respect to profiles and levels in codec specifications. In this respect some of the target presets would use profiles and levels to apply some bit stream feature and bit rate constraints.
It has been suggested that this be implemented using AVOption. I intend to detail how to do it sometime. I made one attempt at it and it was almost complete when the AVOption approach was suggested as a better approach. I haven’t looked at it again since though.
I stand ready to add new specs to FATE to aggressively test each new profile.