x265 – HEVC Codec mit FFmpeg im Test

Beim x265 oder „High Efficiency Video Coding“ genannt, handelt es sich um einen sehr effizienten Video Codec, der der unmittelbare Nachfolgern von x264 sein soll. Der Anspruch gegenüber x264 sollte bei einer doppelt so starken Kompression liegen.

Da mich die Langeweile quälte dachte ich mir, dass ich mir das mal anschaue.

Für den Test habe ich mir den Video Trailer von „Caminandes 3“ ausgesucht, einem freien Projekt der Blender Foundation unter CC-BY Lizenz.

Als Ausgangsbasis dient das x264 codierte mp4-Video mit 1080p. Die Datei hat eine Größe von 29 MB.

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Caminandes.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.4.100
  Duration: 00:00:55.30, start: 0.000000, bitrate: 4392 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 4281 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 112 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

Für das Umwandeln des Videos benutze ich FFmpeg auf einem Linux System.

Testaufbau

  • AMD FX(tm)-8150 Eight-Core Processor mit 3.7 Ghz
  • 16 GB Ram
  • FFmpeg Version 3.4.4
  • x265 Version 2.9

Versuch

Ich habe das Video ohne große Sondereinstellungen in den verschiedenen Presets Ultrafast, Medium und Ultraslow codiert. Der Audio Stream wird einfach nur kopiert.

Die Resultate schauen wir uns an einer bestimmten stelle des Videos an. Hier das Original:

Caminandes Original

Bei den folgenden Tests zeige ich immer Original und Resultat nebeneinander an, wobei das Original in der linken Hälfe zu sehen ist und das Resultat in der rechten Hälfte. So treffen sich beide genau in der Mitte des kleinen Pinguins. An dessen Fell sind die Unterschiede überhaupt erst zu sehen.

Preset – ultrafast

Diese Einstellung ist die schnellste und liefert auch die kleinste Datei Größe. Das ganze natürlich auf Kosten der Qualität.

ffmpeg -i Caminandes.mp4 -c:v libx265 -preset ultrafast -acodec copy Caminandes_ultrafast.mkv
video:5151kB audio:756kB subtitle:0kB other streams:0kB global headers:2kB muxing overhead: 0.487358%
x265 [info]: frame I:      6, Avg QP:29.17  kb/s: 7998.62 
x265 [info]: frame P:    335, Avg QP:32.44  kb/s: 1523.00 
x265 [info]: frame B:    984, Avg QP:35.34  kb/s: 460.84  
x265 [info]: consecutive B-frames: 2.1% 2.1% 1.2% 94.7% 

encoded 1325 frames in 29.50s (44.92 fps), 763.52 kb/s, Avg QP:34.58

In knapp 30 Sekunden wird das Video auf ca. 5,9 MB eingedampft etwa 20% der original Größe.

x265 – Preset ultrafast

Preset – medium

Diese Einstellung liefert ein Mittelweg aus Geschwindigkeit und Qualität.

ffmpeg -i Caminandes.mp4 -c:v libx265 -preset medium -acodec copy Caminandes_medium.mkv
video:5974kB audio:756kB subtitle:0kB other streams:0kB global headers:2kB muxing overhead: 0.432097%
x265 [info]: frame I:     14, Avg QP:23.33  kb/s: 7472.45 
x265 [info]: frame P:    416, Avg QP:29.12  kb/s: 1742.88 
x265 [info]: frame B:    895, Avg QP:34.49  kb/s: 384.31  
x265 [info]: Weighted P-Frames: Y:2.9% UV:2.6%
x265 [info]: consecutive B-frames: 23.0% 9.1% 10.7% 51.2% 6.0% 

encoded 1325 frames in 99.83s (13.27 fps), 885.75 kb/s, Avg QP:32.68

In knapp 100 Sekunden wird das Video auf ca. 6,6 MB eingedampft etwa 23% der original Größe.

x265 – Preset medium

Preset – veryslow

Diese Einstellung liefert die beste Qualität auf kosten der Zeit.

ffmpeg -i Caminandes.mp4 -c:v libx265 -preset veryslow -acodec copy Caminandes_veryslow.mkv
video:6317kB audio:756kB subtitle:0kB other streams:0kB global headers:2kB muxing overhead: 0.411071%
x265 [info]: frame I:     13, Avg QP:23.35  kb/s: 7694.19 
x265 [info]: frame P:    381, Avg QP:28.63  kb/s: 1994.14 
x265 [info]: frame B:    931, Avg QP:34.58  kb/s: 409.38  
x265 [info]: Weighted P-Frames: Y:3.1% UV:2.9%
x265 [info]: Weighted B-Frames: Y:1.3% UV:1.1%
x265 [info]: consecutive B-frames: 20.1% 10.7% 8.4% 51.8% 2.5% 2.5% 0.3% 1.3% 2.5% 

encoded 1325 frames in 1389.24s (0.95 fps), 936.55 kb/s, Avg QP:32.76

In knapp 23 Minuten wird das Video auf ca. 6,9 MB eingedampft etwa 24% der original Größe.

x265 – Preset veryslow

Zusammenfassung

Preset    Videogröße    Kompression    Dauer
ultrafast5151 KB
82.15 %29.50 s
medium5974 KB
79.30 %99.83 s
veryslow6317 KB
78.11 %1389.24 s


Wie man an der oberen Tabelle ablesen kann, ist die Kompression erheblich. Natürlich geht die Kompression auch immer mit Qualitätsverlust einher, aber die Resultate haben, zumindest mich, umgehauen.

Der Qualitätsverlust ist an den feine Haaren des Fells zu erkenne. Dort wird es zumindest im Standbild etwas unscharf. Im laufenden Video merkt man davon aber kaum noch etwas.

Ich überlege inzwischen meine kompletten Video Backups in x265 umzuwandeln. Allein die Platzersparnis, zu so einem geringen Qualitätsverlust, macht die Sache sehr interessant. Hierfür arbeite ich aber noch etwas am Feintuning.

Leave a Reply

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.