Ffmpeg-Befehlszeile in C ++ - Codec-Einstellungen übersetzen
Ich habe eine Weile in C ++ in ffmpeg gearbeitet. Der größte Teil der Hilfe zu den Encodereinstellungen wird als Befehlszeilenoptionen erläutert. Zum Beispiel (von der ffmpeg-Site entnommen):
-mbd rd -trellis 2 -cmp 2 -subcmp 2 -g 100 -pass 1/2’
Beachten Sie jedoch, dass der "-g 100" bei einigen Decodern zu Problemen führen kann. Dinge zu versuchen:
’-bf 2’, ’-flags qprd’, ’-flags mv0’, ’- flags skiprd.
Dies ist nicht wirklich nützlich, wenn Sie diese Optionen in C festlegen möchten. Zum Beispiel habe ich es geschafft, zu findenint Gitter; in demAVCodecContext struktur damit ist einer gelöst, aber was ist mit den anderen?
Gibt es eine Möglichkeit zu bestimmen, welche Befehlszeilenparameter welchen AVCodecContext-Mitgliedern entsprechen? Ich habe versucht, sie so einzustellen:
AVCodecContext* c;
av_opt_set_int(c->priv_data, "cmp", 2, 0);
Dies gibt jedoch einen Fehlercode zurück, für den die Option nicht vorhanden ist. Ich habe auch versucht:
av_opt_set(c->priv_data, "cmp", "2", 0);
Ich bekomme immer noch den Fehler, dass die Option nicht existiert.
Gibt es also eine Möglichkeit zu bestimmen, welche AVCodecContext-Mitglieder ich festlegen soll, die den obigen ffmpeg-Befehlszeilenparametern entsprechen?