ffmpeg konstanter ratenfaktor für unterschiedliche webm-qualitäten

1590
C0nw0nk

So kam ich zu folgender Frage: Wie rechne ich mit der 1080p 720p 360p 240p-Qualität richtig? Das ist aber für H264 MP4-Dateien.

Für MP4-Dateien habe ich den konstanten Ratenfaktor -crf für alle Qualitätstypen auf 18 gesetzt.

Aber in webm, was sollte man für die verschiedenen Qualitätstypen einstellen? 360p 480p 720p 1080p

Dies ist meine aktuelle webm-Befehlszeile.

"C:/server/ffmpeg/bin/ffmpeg.exe" -y -i Z:/server/websites/ps/public_www/media/com_hwdmediashare/files/84/1a/33/f941f37ad1ee7645bdd1d9773a53f286.mpg -s 528x360 -vcodec libvpx -g 120 -rc_lookahead 16 -qmax 51 -qmin 11 -vb 2M -b 500k -bufsize 1000k -pass 1 -an -f webm Z:/server/websites/ps/public_www/media/com_hwdmediashare/files/84/1a/33/24bbec26dd3a2dc0809d996ea816bfbe.webm 2>&1  "C:/server/ffmpeg/bin/ffmpeg.exe" -y -i Z:/server/websites/ps/public_www/media/com_hwdmediashare/files/84/1a/33/f941f37ad1ee7645bdd1d9773a53f286.mpg -s 528x360 -vcodec libvpx -g 120 -rc_lookahead 16 -qmax 51 -qmin 11 -vb 2M -maxrate 24M -minrate 100k -b 500k -bufsize 1000k -pass 2 -acodec libopus -ab 90k -f webm Z:/server/websites/ps/public_www/media/com_hwdmediashare/files/84/1a/33/24bbec26dd3a2dc0809d996ea816bfbe.webm 2>&1 

Ich habe kein Crf-Set, aber Videoausgänge unabhängig von der Größe sehen etwas blockig und pixelig aus. Ich denke, ich sollte einen setzen.

0
Hast du das gelesen? https://trac.ffmpeg.org/wiki/Encode/VP8 - Ich bin nur auf meinem Handy, aber es sollte Ihnen einen Ausgangspunkt geben. slhck vor 9 Jahren 0
Ja, ich habe das bereits gesehen, aber aufgrund der verschiedenen Qualitätstypen bin ich nicht sicher, was ich verwenden sollte, wenn ich die 10 verwenden sollte, wie sie in dem Artikel empfohlen werden, oder ob ich niedriger verwenden sollte. C0nw0nk vor 9 Jahren 0
Verwenden Sie, was immer Sie erreichen oder erreichen möchten. Du musst experimentieren. Es hängt alles von den Originalvideos, ihrem Inhalt und dem Anzeigekontext ab. slhck vor 9 Jahren 0
Da sich der CRF-Faktor von MP4 zu Webm unterscheidet, was ist das Äquivalent für "-crf 18", was verwende ich bei allen MP4-Dateien für Webm? C0nw0nk vor 9 Jahren 0
Ich würde ungefähr 5-6 vermuten, aber ich habe nicht viel Erfahrung mit VP8. Es ist schon eine Weile her, seit ich den Artikel im Wiki geschrieben habe. CRF 19 für x264 ist sehr gute Qualität. Kodiere einfach ein paar Videos und schau nach slhck vor 9 Jahren 1
Dank slhck werde ich es als "-crf 6" einstellen. Es sollte hoffentlich den Blocky-Look meiner webm-Videos korrigieren. C0nw0nk vor 9 Jahren 0
Ich habe eine richtige Antwort gepostet. Lassen Sie mich wissen, welchen Wert Sie letztendlich gewählt haben. slhck vor 9 Jahren 1

1 Antwort auf die Frage

2
slhck

Wenn die Ausgabe zu blockig oder pixelig wirkt, liegt dies an einer zu niedrigen Bitrate. Ich sehe, dass Sie 500 kBit / s eingestellt haben, aber das ist viel zu niedrig, um mit 720p oder höher eine vernünftige Qualität zu erreichen.

In der Anleitung zur VP8-Kodierung sind einige Optionen aufgeführt, die Sie beim Verwenden des libvpx-Kodierers haben. Ich stimme mit Ihnen überein, dass die Verwendung eines konstanten Ratenfaktors der richtige Ansatz ist, um die gleiche visuelle Qualität unabhängig von der Videoauflösung zu erreichen.

Sie haben CRF 18 für den x264-Encoder verwendet, der als sehr hochwertig betrachtet wird (möglicherweise nicht visuell verlustfrei, der Qualitätsverlust sollte jedoch nicht wahrnehmbar sein). Für libvpx ist der CRF-Bereich etwas anders. 10 ist ein guter Standard (es wäre 23 für x264), und daher würde ich wahrscheinlich empfehlen, etwas wie CRF 6–7 für libvpx zu verwenden.

Beachten Sie, dass der -qminParameter dem von Ihnen gewählten CRF gleich oder niedriger sein muss. Sonst kann es nicht kodieren.

Denken Sie daran, dass für die resultierende Bitrate die obere Grenze festgelegt ist -b:v. Wenn Ihr CRF zu niedrig ist und Ihre Bitrate auf festgelegt ist, beträgt -b:v 2MIhre endgültige Bitrate daher 2 MBit / s.

Aber es gibt nichts Besseres, als verschiedene Werte auszuprobieren. Es hängt alles davon ab, wie Ihre Eingabe aussieht oder wie Ihre Zielanwendung für die Videos aussehen soll. Wenn Sie nur Web-Streaming durchführen, benötigen Sie kein Video von so hoher Qualität. Wenn Sie eine Offline-Speicherung wünschen, wäre eine niedrigere CRF natürlich besser.

Ich habe folgenden Fehler beim Hinzufügen eines CRF-Werts zu Webms "CQ-Level 6 muss zwischen minimalem und maximalem Quantisierer-Wert" erhalten Zeile ist der Fehler, ich hoffe, die Lösung ist nur "-qmin 6" zu setzen. C0nw0nk vor 9 Jahren 0
Ja, das ist notwendig, wenn Sie eine niedrigere CRF verwenden. Ich werde in Kürze mein Beispiel korrigieren. slhck vor 9 Jahren 1