Ich habe die meisten anderen vorgeschlagenen Antworten auf diese Frage getestet. Die Testdaten Schlussfolgerungen sind unten. Dies sind die vorgeschlagenen Antworten, die ich getestet habe:
(BR) Ändern Sie die Bitrate mit:
ffmpeg -i $infile -b $bitrate $newoutfile
(CR) Variieren Sie den Constant Rate Factor mit:
ffmpeg -i $infile -vcodec libx264 -crf 23 $outfile
(SZ) Ändern Sie die Bildschirmgröße des Videos (z. B. auf die Hälfte seiner Pixelgröße), indem Sie Folgendes verwenden:
ffmpeg -i $infile -vf "scale=iw/2:ih/2" $outfile
(BL) Ändern Sie das H.264-Profil in "Baseline", indem Sie Folgendes verwenden:
ffmpeg -i $infile -profile:v baseline $outfile
(DF) Verwenden Sie die Standard-ffmpeg-Verarbeitung unter Verwendung von:
ffmpeg -i $infile $outfile
DATEN
- "Größe" - Prozent Pixelgröße des konvertierten Videos im Verhältnis zum Original.
- "Bitrate" - Bitraten von Original- und konvertierten Videos.
- "Definition" - Pixelgröße von Videos.
- "convert" - Zeit zum Konvertieren des Videos in Sekunden.
Ich habe die Ziel-Bitrate für (BL) mit der vorgeschlagenen Methode berechnet.
=== Datei A - Wie der Knoten dabei hilft, Angular-Fnbixa7Ts6M.mkv voranzutreiben ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 64152 kb 214% 76% 40% 83% 76%
bitrate 411 kb/s 883 313 165 342 313
definition 1920x1080 1920x1080 1920x1080 960x540 1920x1080 1920x1080
convert -- 648 509 225 427 510
=== Datei B - Verwenden von GraphQL mit Angular _ By - Lee Costello-OGyFxqt5INw.mkv ===
original BR CR SZ BL DF
-------- --- -- -- -- --
size 410301 kb 33% 109% 28% 143% 109%
bitrate 2687 kb/s 880 2920 764 3843 2920
definition 3840x2160 3840x2160 3840x2160 1920x1080 3840x2160 3840x2160
convert -- 2307 3188 1116 2646 3278
SCHLUSSFOLGERUNGEN
Die (SZ) Methode ist definitiv die schnellste Methode. Es war 2X bis 4X schneller. Dies kann bei HD-Videos sehr problematisch sein, da die Konvertierung aller anderen Methoden länger dauerte als die tatsächliche Länge des Videos! Die (CR) -Methode benötigte beispielsweise 53 Minuten, um das 21-minütige Video zu konvertieren.
Die (SZ) -Methode ist definitiv die beste Methode, wenn die Definition des Videos größer ist als die Definition des Bildschirms, auf dem es angezeigt wird. Wenn Ihr Telefon beispielsweise nur ein 1080p-Bild anzeigen kann, ist das Senden eines 3840x2160-Videos eine reine Verschwendung. Es wäre am besten, die Hälfte seiner Größe auf 1080p.
Einige der vorgeschlagenen Antworten haben die Größe einiger Videos sogar ERHÖHT. Beispielsweise hat die (BR) -Methode die Größe des 1080p-Samples mehr als verdoppelt. Die 2160p-Größe hat es jedoch auf ein Drittel gebracht. Für das hochauflösende Sample haben die Methoden (CR), (BL) und (DF) die Größe des Videos erhöht.
Richtige (oder beste) Antwort
Es ist immer am besten, zuerst die Auflösung auf das von Ihrer Zielanzeige unterstützte Maximum zu verringern.
Wenn Sie die Dateigröße weiter reduzieren möchten, hängt dies von den persönlichen Entscheidungen ab. Sie können entweder den Informationsgehalt reduzieren oder die Komprimierung erhöhen.
Sie können die Auflösung weiter verringern, wenn Sie das nicht interessiert.
Wenn das Video keine schnellen Actionszenen enthält, können Sie die Bildrate verringern.
Wenn Sie einen leistungsstarken Prozessor haben und nur Speicherplatz zur Verfügung steht, können Sie die Komprimierungsrate erhöhen.
Die Bitrate ist eine Kombination mehrerer Faktoren. Wenn Sie ffmpeg also nur zum Verringern der Bitrate auffordern, erhalten Sie möglicherweise nicht die gewünschten Ergebnisse.
Eine andere Möglichkeit, den Informationsgehalt zu verringern, besteht darin, die Farbtiefe zu verringern. Wie das geht, wurde noch nicht besprochen.
ffmpeg
Manpage zeigt eine-fs
Option zur Begrenzung der Ausgabegröße. Funktioniert so etwasffmpeg -i in.avi -fs 100M out.avi
?