web-dev-qa-db-de.com

Konvertieren von Videos von 1080p in 720p mit geringstem Qualitätsverlust mithilfe von ffmpeg

Ich staple mit meinem hochwertigen Film: 1080p mit 60fps. Das Problem ist Verzögerungen beim Spielen.

Ich habe versucht, es mit ffmpeg auf 720p zu konvertieren:

ffmpeg -i MyMovie.mkv -r 60 -s hd720 MyMovie_720p.mkv

Ich habe jedoch einen signifikanten Qualitätsverlust, da die Bitrate von 32,3 Mbit/s auf 2,8 Mbit/s gesunken ist. Wie kann ich die richtige Bitrate für den Videostream festlegen und alle anderen kopierten Streams unberührt lassen?

Eingabedatei mediainfo:

ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : [email protected]
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 2h 58mn
Bit rate                                 : 32.3 Mbps
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 59.940 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.260
Stream size                              : 40.2 GiB (92%)
Writing library                          : x264 core 116 r2019 9cc407d
Encoding settings                        : cabac=1 / ref=4 / deblock=1:-2:-1 / analyse=0x3:0x113 / me=umh / subme=10 / psy=1 / psy_rd=0.80:0.20 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-3 / threads=6 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=0 / crf=14.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=50000 / vbv_bufsize=62500 / crf_max=0.0 / nal_hrd=none / ip_ratio=1.40 / pb_ratio=1.30 / aq=1:0.60
Language                                 : English
Default                                  : Yes
Forced                                   : No
Matrix coefficients 

                 : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
38
atomAltera

Hier ist ein Beispiel, das Ihnen Videos in höchster Qualität liefern soll (ich spreche nicht über die resultierende Dateigröße). Beachten Sie, dass dieses Video möglicherweise nicht auf allen Geräten oder Playern wiedergegeben werden kann:

ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 0 -preset veryslow -c:a copy MyMovie_720p.mkv

Um eine "visuell verlustfreie" Qualität zu erhalten, können Sie Folgendes verwenden:

ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow -c:a copy MyMovie_720p.mkv

Nun wollen wir sehen, was wir hier haben:

Mit dem Filter Skalieren des Videos können Sie die Größe des Videos ändern. Sie müssen nur eine Größe (in diesem Beispiel die Höhe) festlegen und -1 für die andere Dimension verwenden. Ffmpeg berechnet den korrekten Wert automatisch neu, wobei das Seitenverhältnis beibehalten wird.

Qualitätskontrolle mit der Option -crf:

Der Bereich der Quantisiererskala liegt zwischen 0 und 51: Dabei ist 0 verlustfrei, 23 ist die Standardeinstellung und 51 ist die schlechteste Einstellung. Ein niedrigerer Wert ist eine höhere Qualität und ein subjektiv vernünftiger Bereich liegt zwischen 18 und 28. Betrachten Sie 18 als visuell verlustfrei oder nahezu verlustfrei: Es sollte genauso oder nahezu genauso aussehen wie die Eingabe, ist aber technisch nicht verlustfrei.

Der Bereich ist exponentiell, sodass das Erhöhen des CRF-Werts +6 ungefähr die Hälfte der Bitrate und -6 ungefähr die doppelte Bitrate beträgt. Im Allgemeinen wird der höchste CRF-Wert gewählt, der noch eine akzeptable Qualität bietet. Wenn die Ausgabe gut aussieht, versuchen Sie es mit einem höheren Wert. Wenn die Ausgabe schlecht aussieht, wählen Sie einen niedrigeren Wert.

Weitere Informationen finden Sie in der x264 - Codierungsanleitung .

Mit den Optionen -preset steuern Sie den Kompromiss zwischen Videokodierungsgeschwindigkeit und Komprimierungseffizienz. Das sind ultraschnell, superschnell, sehr schnell, schnell, mittel, langsam, langsam, sehr langsam . Die Standardeinstellung ist mittel . Die Option veryslow bietet die beste Komprimierungseffizienz (was zu einer geringeren Dateigröße bei gleicher Qualität führt), ist jedoch - wie der Name schon sagt - sehr langsam.

Das Audio wird Stream kopiert direkt von der Eingabedatei in die Ausgabedatei ohne Änderungen.

80

Für den Fall, dass Sie in einer anderen Größe skalieren möchten, gelten einige Einschränkungen für die FFMPEG-Skalierungsdimensionen. Es werden nicht alle Höhen akzeptiert. Hier finden Sie eine kleine Liste der besten Empfehlungen für Abmessungen.

Videocodecs erzielen eine bessere Leistung, wenn die Breite und Höhe in Pixel ein Vielfaches von 16 beträgt. Während Sie in Ihren Codierungseinstellungen eine beliebige Breite und Höhe verwenden können, können nicht optimale Abmessungen zu einer schlechten Bildqualität und einer verringerten Bildrate führen. Für die beste Bildqualität und Wiedergabe sollten Sie für Ihr Video Breiten- und Höhenmaße verwenden, die ein Vielfaches von 16 sind. Ihre nächstbeste Wahl ist ein Vielfaches von 8 und danach ein Vielfaches von 4.

Recommended width and height for videos with 16:9 aspect ratios:

Best Choice:     2nd Best:        3rd Best:
Multiples of 16  Multiples of 8   Multiples of 4
1920 x 1080      1792 x 1008      1856 x 1044
1280 x 720       1152 x 648       1216 x 684
1024 x 576        896 x 504       1088 x 612
 768 x 432        640 x 360        960 x 540
 512 x 288        384 x 216        832 x 468
 256 x 144        128 x 72         704 x 396
                                   576 x 324
                                   448 x 252
                                   320 x 180
                                   192 x 108
0
Ewald Bos