Blog

AV1 in Jellyfin auf Intel UHD 770: Dekodierung und Transkodierung

AV1 mit Jellyfins ffmpeg auf einer Intel UHD 770 gemessen: 4K-10-Bit-Hardwaredekodierung mit 13,5x Echtzeit, HDR10 zu SDR mit 4,6x, 5 parallele 4K-Streams.

AV1 in Jellyfin auf einer Intel UHD 770: Dekodierung und Transkodierung gemessen

AV1-Dateien werden immer häufiger, und viele Jellyfin-Installationen laufen noch auf einer integrierten Intel-GPU. Die Frage ist einfach: Schafft eine Intel UHD 770 AV1 für Jellyfin, und für wie viele Streams? Wir haben es mit jellyfin-ffmpeg gemessen, dem ffmpeg-Build, den Jellyfin selbst mitliefert.

Die Ergebnisse in Kürze

  • Die AV1-Dekodierung läuft auf der GPU: Eine 4K-10-Bit-AV1-Datei wird mit 13,5x Echtzeit dekodiert und belegt dabei rund 13 % eines CPU-Kerns.
  • 4K-AV1-HDR zu 1080p-H.264 mit HDR→SDR-Tone-Mapping: 4,6x Echtzeit für einen Stream.
  • 5 parallele 4K-HDR→1080p-SDR-Transkodierungen bleiben in Echtzeit.
  • Die AV1-Kodierung erfolgt auf der CPU (zum Beispiel mit SVT-AV1), nicht auf dieser GPU. Für Jellyfin spielt das selten eine Rolle: Geräte, die kein AV1 abspielen, erhalten H.264 oder HEVC, und das kodiert die GPU.

Testumgebung

KomponenteWert
CPU / GPUIntel Core i5-13500, integrierte Intel UHD 770 (geteilte GPU)
Virtuelle MaschineLinux (Debian 13), 4 vCPU, 8 GB RAM, Kernel 7.3
ffmpegjellyfin-ffmpeg 7.1.4 aus dem offiziellen Jellyfin-Repository
MediatreiberIntel iHD 25.4.6 (Dekodierung VAProfileAV1Profile0 unterstützt)
Quellen30 s, 24 fps, mit SVT-AV1 kodiert, mit zusätzlichem Filmkorn: 4K 10 Bit als HDR10 markiert (PQ / BT.2020, ca. 39 Mbit/s) und 1080p 8 Bit

Die Clips sind synthetisch, echte Filme können sich also etwas anders verhalten. Jeder Wert ist die speed=-Angabe von ffmpeg: 1x bedeutet Echtzeit, 10x zehnmal schneller als die Wiedergabe.

1. AV1-Dekodierung: GPU gegen CPU

4K 10 Bit AV1, nur DekodierungGeschwindigkeitCPU-Last
Hardwaredekodierung (VA-API)13,5x (324 fps)13 % eines Kerns
Softwaredekodierung (dav1d, 4 vCPU)4,0x (97 fps)227 %

Die Hardwaredekodierung ist mehr als dreimal so schnell und lässt die CPU fast im Leerlauf. Genau das braucht man, wenn sich Jellyfin, eine Datenbank und weitere Dienste dieselbe Maschine teilen.

/usr/lib/jellyfin-ffmpeg/ffmpeg -vaapi_device /dev/dri/renderD128 \
  -hwaccel vaapi -hwaccel_output_format vaapi -i film-av1.mkv -f null -

2. AV1 für Geräte transkodieren, die es nicht abspielen

Das ist der typische Jellyfin-Fall: Ein Fernseher, ein älteres Smartphone oder ein Browser kann kein AV1 abspielen, also wandelt Jellyfin es on the fly um. Wir haben dieselbe Quick-Sync-Pipeline wie Jellyfin verwendet (Dekodierung per VA-API, Skalierung und Kodierung per QSV).

TranskodierungGeschwindigkeitCPU-Last
4K AV1 10 Bit → 1080p H.264, komplett auf der GPU10,3x29 % eines Kerns
4K AV1 HDR10 → 1080p H.264 SDR mit Tone Mapping (vpp_qsv)4,6x—
1080p AV1 → 720p H.2649,2x19 % eines Kerns
1080p AV1 → 1080p HEVC8,5x18 % eines Kerns
4K AV1 auf der CPU dekodiert, H.264 auf der GPU kodiert (zum Vergleich)3,8x271 %

Am teuersten ist das Tone Mapping (HDR10 in SDR umwandeln für einen Bildschirm ohne HDR): Es halbiert die Geschwindigkeit ungefähr. Wir haben die Farbangaben der Ausgabe (BT.709) geprüft, um sicherzugehen, dass es tatsächlich angewendet wurde.

/usr/lib/jellyfin-ffmpeg/ffmpeg \
  -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device qsv=qs@va -filter_hw_device qs \
  -hwaccel vaapi -hwaccel_output_format vaapi -i film-av1-hdr10.mkv \
  -vf 'hwmap=derive_device=qsv,format=qsv,vpp_qsv=w=1920:h=1080:format=nv12:tonemap=1' \
  -c:v h264_qsv -preset veryfast -b:v 8M -c:a copy ausgabe.mkv

3. Wie viele Streams gleichzeitig?

Mehrere Transkodierungen 4K AV1 HDR10 → 1080p H.264 SDR (mit Tone Mapping) laufen gleichzeitig; die Tabelle zeigt jeweils den langsamsten Stream:

Parallele StreamsLangsamster StreamEchtzeit?
14,6xja
41,37xja
51,10xja
60,92xknapp darunter
80,69xnein

Fünf 4K-HDR-Filme gleichzeitig, jeder in 1080p SDR umgewandelt: Das ist eine komfortable Grenze für einen Haushalt oder eine kleine Gruppe. Ohne Tone Mapping (SDR- oder 1080p-Quellen) schafft die GPU deutlich mehr.

4. Und die AV1-Kodierung?

Soll Jellyfin AV1 erzeugen (zum Beispiel, um beim Streaming an ein AV1-fähiges Gerät Bandbreite zu sparen), erfolgt die Kodierung auf der CPU mit SVT-AV1. So wurden übrigens auch unsere Testdateien erstellt. In der Praxis braucht Jellyfin das selten: Es spielt AV1 auf kompatiblen Geräten direkt ab (Direct Play) und schickt den anderen H.264 oder HEVC, beides auf der GPU kodiert.

Was das für einen Jellyfin-Server bedeutet

  • AV1-Bibliotheken sind auf einer Intel UHD 770 kein Problem: Die Dekodierung ist hardwarebeschleunigt, die CPU bleibt frei.
  • Rechnen Sie mit etwa 5 parallelen 4K-HDR→SDR-Transkodierungen, bei 1080p mit deutlich mehr.
  • Aktivieren Sie Tone Mapping nur bei Bedarf (Bildschirme ohne HDR): Es ist der teuerste Schritt.

Siehe auch: Hardware-Transkodierung mit Jellyfin und Plex, ffmpeg-Befehle für Quick Sync, die funktionieren und unser Lasttest der geteilten GPU.

Ausprobieren

Alle unsere iGPU-Angebote enthalten eine Intel UHD 770 mit einsatzbereitem VA-API und Quick Sync: Jellyfin ist in wenigen Minuten installiert und findet die GPU unter /dev/dri/renderD128. Zu den Angeboten, ab 14,99 € pro Monat.