Ich versuche, meine Filme in WebM zu kodieren:
%Vor%Ich möchte mit ein paar verschiedenen Bitraten kodieren (Video und Audio kombiniert):
Das Problem ist, dass ich unabhängig davon, welche Bitraten ich gebe, immer eine Datei mit einer höheren Bitrate als 1900 kbps bekomme. (1914 kbps mit dem Codebeispiel oben.)
Was mache ich falsch?
libvpx
ist etwas kompliziert in Bezug auf die Ratenkontrolle und die Qualitätseinstellungen. Bitte beachten Sie den vpx Encoding Guide und den VP8 Encode-Parameterhandbuch für weitere Informationen. Ich brauchte eine Stunde, um den Quellcode zu durchforsten, um ihn zu verstehen.
Wenn Sie eine konstante Bitrate einstellen möchten, müssen Sie b:v
, maxrate
und minrate
auf die gleichen Werte setzen, zum Beispiel so (beachten Sie, dass ich hier die Audio-Optionen aus Platzgründen weggelassen habe):
Wenn Sie stattdessen die variable Qualität verwenden und nur die obere Grenze für die Bitrate angeben möchten, müssen Sie sowohl b:v
als auch crf
festlegen. Wenn Sie crf
weglassen, wird die angegebene Bitrate nur als Durchschnittswert verwendet. Nur mit crf
ändert der Encoder die Bedeutung von b:v
auf die maximal zulässige Rate.
Ein Wert von 10 für das CRF ist ein guter Ausgangspunkt, aber libvpx
kann die Qualität pro Frame innerhalb der Grenzen von qmin ≤ q ≤ qmax
ändern, die Sie ebenfalls angeben können, wenn Sie möchten. Die untere Grenze von 10 für qmin
scheint mir etwas hoch zu sein, aber im Prinzip müssen Sie trotzdem etwas ausprobieren, denn wenn die maximale Bitrate zu niedrig ist, sättigen Sie sie ständig.