2013-04-02 9 views
8

Ich versuche, meine Filme in WebM zu kodieren:Warum erstellt FFMPEG immer große WebM-Dateien?

ffmpeg -i input.MOV -codec:v libvpx -quality good -cpu-used 0 -b:v 10k 
-qmin 10 -qmax 42 -maxrate 10k -bufsize 20k -threads 8 -vf scale=-1:1080 
-codec:a libvorbis -b:a 192k 
output.webm 

Ich möchte kodieren auf ein paar unterschiedlichen Bitraten (Video und Audio kombiniert):

  • 2192 kbps
  • 1692 kbps
  • 1000 kbps

Das Problem ist, dass unabhängig davon, welche Bitraten Ich gebe ein, ich bekomme immer eine Datei mit einer Bitrate höher als 1900 kbps. (1914 kbps mit dem Codebeispiel oben.)

Was mache ich falsch?

Antwort

12

libvpx ist ein wenig kompliziert in Bezug auf Rate Control und Qualitätseinstellungen. Bitte beachten Sie die vpx Encoding Guide und die VP8 Encode Parameter Guide für weitere Informationen. Ich brauchte eine Stunde, um den Quellcode zu durchforsten, um ihn zu verstehen.

Wenn Sie konstante Bitrate einstellen wollen, werden Sie b:v, maxrate und minrate auf die gleichen Werte gesetzt haben, zum Beispiel wie so (beachten Sie, dass ich hier die Audio-Optionen der Kürze halber weggelassen):

ffmpeg -i input.mov -c:v libvpx -b:v 1900K -maxrate 1900K -minrate 1900K output.webm 

Wenn Sie stattdessen die variable Qualität verwenden und nur die obere Grenze für die Bitrate angeben möchten, müssen Sie beide b:v und crf festlegen. Wenn Sie crf weglassen, wird die angegebene Bitrate nur als Durchschnitt genommen. Nur mit crf ändert der Encoder die Bedeutung von b:v auf die maximal zulässige Rate.

ffmpeg -i input.mov -c:v libvpx -b:v 1900K -crf 10 output.webm 

Ein Wert von 10 für die CRF ist ein guter Ausgangspunkt, aber libvpx kann die Qualität pro Rahmen innerhalb der Grenzen der qmin ≤ q ≤ qmax ändern, die Sie auch, wenn Sie angeben können. Die untere Grenze von 10 für qmin scheint mir etwas hoch zu sein, aber im Grunde müssen Sie sowieso ein wenig experimentieren, denn wenn die maximale Bitrate zu niedrig ist, werden Sie sie ständig sättigen.

+0

Vielen Dank für Ihre Zeit! :) Wie du in deinem ersten Beispiel gesagt hast, hat es die Qualität weggelassen. Es funktioniert jetzt wie ein Zauber. –

Verwandte Themen