Einstellungen für ffmpeg Für beste VP9-Qualität für Web Publishing

3149
TranslucentCloud

Ich habe ein Video im Apple ProRes 422-Format, das ich für die Veröffentlichung im Web mit dem VP9 von Google kodieren möchte. Die Quelle ist:

Stream #0:0(und): Video: prores (apcn / 0x6E637061), yuv422p10le(bt709), 1920x1080, 114644 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 24k tbn, 24k tbc (default) 

Mein Ziel ist es, es mit der bestmöglichen (vernünftigen) Qualität, die vom Original fast nicht zu unterscheiden ist, auf VP9 zu kodieren. Die Größe der Ergebnisdatei ist nicht von Belang. Jetzt verwende ich Folgendes, aber das Video in Chrome sieht schlecht aus:

ffmpeg -i Source.mov -c:v libvpx-vp9 -b:v 4M -pix_fmt yuv420p -speed 4 -frame-parallel 0 -threads 2 -c:a libopus -b:a 320K Result.webm 

Ich habe versucht die -b:v 4MEinstellung zu erhöhen, die Größe steigt, aber die Qualität nicht. Ich habe dieses Handbuch auch ausprobiert, aber es ist wahrscheinlich veraltet und ich kann kein befriedigendes Ergebnis erzielen. Übrigens habe ich zuletzt ffmpegaus Quelle zusammengestellt.

Welche ffmpegEinstellungen sollte ich verwenden?

2
Aber hast du die neuste libvpx? LordNeckbeard vor 8 Jahren 0
`libvpx-dev` stammt aus dem _Debian Testing_ Repository, das jetzt die Version 1.5.0-2 hat. TranslucentCloud vor 8 Jahren 0

2 Antworten auf die Frage

2
Ely

Sie machen eine 1-Pass-Kodierung in Geschwindigkeit 4, bei der es sich um schnelle Parameter handelt, die jedoch weit von der optimalen Qualität entfernt sind.

Die Anleitung scheint gut zu sein. Haben Sie ihre Einstellungen für die 2-Pass-Einstellung oder die konstante / eingeschränkte Qualität versucht? Behalten Sie natürlich nicht die 1000-Bit-Bitrate bei.

Ja, gestern gab der Führer den zweiten Versuch und hatte Erfolg. Details sind in meiner Antwort. TranslucentCloud vor 8 Jahren 0
2
TranslucentCloud

Okay, nach einigen Experimenten fand ich, dass der in der Frage erwähnte Leitfaden ziemlich nützlich ist. Ich hatte Erfolg mit den Anweisungen aus dem Abschnitt Constant Quality Recommended Settings, und die Feinabstimmung war die -crfEinstellung.

Nach etlichen Tests endete die -crf 23Einstellung, bei der die Ergebnisdatei im webmVergleich zum Original von sehr guter Qualität ist.

Die genauen ffmpegBefehle sind:

  1. Erster Pass:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 1 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 4 -tile-columns 6 -frame-parallel 1 -an -y -f webm /dev/null 
  2. Zweiter Durchgang:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 2 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 320k -f webm Out.webm 

Aus irgendeinem Grund verwendet ein erster Durchlauf trotz der -threads 2Option nicht alle CPU-Kerne (in meinem Fall 2), ein zweiter jedoch alle.

Im CRF-Modus können Sie ohne großen Qualitätsverlust zwei Durchgänge überspringen. Gyan vor 8 Jahren 0