Ich verwende ffmpeg, um meine Videos zu kodieren und sie ins Web hochzuladen. Ich habe diesen Beitrag über die Verwendung von ffmpeg gesehen, aber nicht ganz verstanden, wie man die Werte berücksichtigt.
Angenommen, ich habe ein Video mit einer Größe von 70 MB und einer Dauer von 4 Minuten. Wie würde ich den Wert für diese Flags berücksichtigen: -b:v
, -maxrate
und -bufsize
für diesen Befehl?
ffmpeg -i input -codec:v libx264 -profile:v main -preset slow -b:v ? -maxrate ? -bufsize ? -vf "scale=720:trunc(ow/a/2)*2" -threads 0 -codec:a libfdk_aac -movflags +faststart output
Oder gibt es einen normalen Wert, wie für die crf
Werte sind 19-24? Ich würde mich sehr über Ihre Hilfe und Anleitung freuen.
Antworten:
Es hängt wirklich von Ihrer Upload-Geschwindigkeit ab.
bufsize
wird bestimmen, wie religiös ffmpeg ist, um Ihre Bitrate konstant zu halten. Wenn Siebufsize
gemäß FFmpeg Wiki: Begrenzen der Ausgabe-Bitrate einen Wert von 64 KB festlegen , wird die aktuelle Bitrate alle 64 Kilobyte berechnet und entsprechend angepasst. Kleinere Größen fürbufsize
können die Qualität beeinträchtigen, da zwischen den Überprüfungen für x264 nicht genügend Platz für plötzliche Änderungen vorhanden ist. Sie werden blockiert.Wenn Sie
maxrate
640 KBit / s und 64 KBit / s haben,bufsize
wird jede Zehntelsekunde x264 überprüft. Dies ist nicht optimal - FFmpeg Wiki: Die Codierung für Streaming-Sites empfiehlt, sie alle 1 bis 2 Sekunden auszuführen. Wenn dies keinen Sinn ergab, betrachten Sie es alsmaxrate
/bufsize
= Häufigkeit der Überprüfungen. Halten Sie diese Frequenz als Faustregel zwischen 1 und 2 Sekunden.Wenn Sie beide
maxrate
und einstellenbufsize
, sollten Sie:maxrate
zu , was auch immer Ihre niedrigsten Upload - Geschwindigkeit wahrscheinlich sein wird (im ffmpeg Wiki Beispiel , das ist 80% der gesamten Upload - Geschwindigkeit, aber die Leistung kann variieren).bufsize
irgendwo zwischen dem gleichen Wert wie Ihremaxrate
(eine Sekunde) und zweimalmaxrate
(2 Sekunden) ein. Wenn dies immer noch nicht niedrig genug ist, senken Sie Ihremaxrate
und setzen Sie siebufsize
entsprechend zurück.Dann musst du ein bisschen
maxrate
herumspielen , aber da du irgendwo anfangen musst, würde ich einfach bei ungefähr 600 km anfangen, was normalerweise für mich befriedigend genug war, bevor ichcrf
für alles verwendet habe.Wenn Sie möchten, können Sie beispielsweise
bufsize
alle drei oder vier Sekunden niedrigere Werte ausprobieren , um zu sehen, wie sich der Wert auf das Aussehen Ihrer Ausgabe ändert. Dann können Sie festlegen, wie sehr Sie sich für Ihr Video darum kümmern sollten.Eigentlich gibt es keinen normalen Wert. Sie
crf
optimieren die Ausgabe auf der Grundlage der ihrer Meinung nach besten Puffergröße, um die eingestellte Rate beizubehalten. Es wird versucht, die Dateigröße so gering wie möglich zu halten und gleichzeitig die Qualität beizubehalten, auf Kosten gelegentlicher Spitzen.quelle
crf
, muss ich nicht angebenbitrate
,buffsize
undmaxrate
? Und wenn ja, was effizienter ist (Nutzungcrf
oderbitrate
,buffsize
undmaxrate
)?bufsize
und erzwingenmaxrate
. Das brauchst du aber nichtbitrate
. Wie Ely sagte, wird es das Streaming verbessern.