Gibt es eine Möglichkeit, eine Qualitätseinstellung für h.264 festzulegen, die nicht softwareabhängig ist?
Ich versuche, einem Kollegen dabei zu helfen, eine Spezifikation für externe Auftragnehmer zu erstellen, wenn sie uns Videos zur Verwendung auf unserer Website als h.264-komprimierte mp4-Dateien liefern. Wir können eine Bitrate angeben, aber das funktioniert nicht so gut, wenn wir eine Komprimierung mit variabler Bitrate / konstanter Qualität (CRF) wollen.
Wenn ich wüsste, dass sie libx264 verwenden würden, um die Komprimierung durchzuführen, könnte ich ihnen einen Bereich für die -crf
Einstellung geben, aber sie werden alle Arten von Software verwenden, um die Komprimierung durchzuführen. Wie kann ich also Qualität angeben, außer indem ich etwas Vages wie "visuell verlustfrei" oder "gute Qualität" sage?
Jeder anständige Encoder kann eine Zielbitrate erreichen (mit 2pass), aber die Bits trotzdem intelligent ausgeben, um eine ähnliche Qualität in der gesamten Datei zu erreichen. x264 2pass ermittelt, welche CRF die gewünschte Bitrate ergibt (pass1) und verwendet sie dann (pass2). (Quelle: Dark Shikari. Siehe die Links, die ich für meine Antwort auf diese Frage zum VBR-Streaming ausgegraben habe ).
Sie erhalten CBR nur mit x264 if vbv-maxrate
= bitrate
, und selbst dann kann es innerhalb der Puffergröße VBR sein. (h.264 wird niemals streng CBR wie mp3 oder so sein, es sei denn, Ihre I-Frames sehen SCHRECKLICH aus: P)
Sie meinten jedoch wahrscheinlich Variable-über-Clips und nicht die übliche Bedeutung innerhalb einer Datei, da CFR als Qualitätsziel eindeutig viel besser ist, als blind eine Zielbitrate für viele verschiedene Quellen festzulegen.
(Gibt es dafür ein Wort? Flexible Bitrate? Anders als Zielqualität im Gegensatz zu Zielbitrate. CRF zielt auf eine Heuristik für Qualität ab, nicht unbedingt auf ein Qualitätsziel.)
Wie auch immer, in diesem Fall habe ich keine Ahnung, was andere Encoder unterstützen. Lossless h.264 ist wahrscheinlich das beste Format zum Versenden von Dateien. Es ist deutlich kleiner als huffyuv oder utvideo und kann bis zu 10 Bit unterstützen. (Eigentlich denke ich, dass FFmpeg höhere Bittiefen decodieren kann, aber x264 kann nur Dateien bis zu 10 Bit produzieren.) Oder ich denke, Sie könnten sie dazu bringen, Ihnen leicht verlustbehaftete Pro-Res-Dateien zu senden, wenn dies für Ihre Arbeitsabläufe viel einfacher ist.
LordNeckBeard wirft die Frage auf, ob Sie diese Dateien direkt an Kunden liefern. Wenn das der Fall ist, sollten Sie wahrscheinlich verlangen, dass sie mit x264 mit mindestens preset=slower codieren, sodass Sie ihnen einfach einen crf-Wert geben können, wenn Sie bereits x264 benötigen. Der Kompromiss zwischen Rate und Verzerrung ist wichtig für endgültige Dateien, die Sie viele Male streamen werden.
-vf codecview
.codecview
zur Visualisierung von Bewegungsvektoren und showinfo
druckt keine durchschnittlichen QP pro Bild. Ich habe die gesamte Liste der Videofilter von ffmpeg durchgesehen, und keiner von ihnen druckt QP-Werte :/
Jim Mack
Logan
stib
stib
Logan
ffmpeg -f lavfi -i testsrc=s=hd720:d=5,format=yuv420p -c:v libx264 -level 3 output.mp4
)Logan
x264
wählen.Peter Kordes
Peter Kordes