I've been doing some work in ffmpeg for a while in C++. Most of the help regarding encoder settings is explained as command line options. For example (taken from the ffmpeg site):
-mbd rd -trellis 2 -cmp 2 -subcmp 2 -g 100 -pass 1/2’
but beware the ’-g 100’ might cause problems with some decoders. Things to try:
’-bf 2’, ’-flags qprd’, ’-flags mv0’, ’- flags skiprd.
This is not really usefull when you want to set these options in C. For example I managed to find int trellis; in the AVCodecContext struct so that is one solved, but what about the others?
Is there a way to determine what command line parameters correspond to what AVCodecContext members ? I tried setting them like this:
AVCodecContext* c;
av_opt_set_int(c->priv_data, "cmp", 2, 0);
But this returns an error code that the option does not exist. I've also tried:
av_opt_set(c->priv_data, "cmp", "2", 0);
I still get the error that the option does not exist.
So, is there a way to determine what AVCodecContext members I should set that are equivalent to the ffmpeg command line parameters above ?