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
| Komponente | Wert |
|---|---|
| CPU / GPU | Intel Core i5-13500, integrierte Intel UHD 770 (geteilte GPU) |
| Virtuelle Maschine | Linux (Debian 13), 4 vCPU, 8 GB RAM, Kernel 7.3 |
| ffmpeg | jellyfin-ffmpeg 7.1.4 aus dem offiziellen Jellyfin-Repository |
| Mediatreiber | Intel iHD 25.4.6 (Dekodierung VAProfileAV1Profile0 unterstützt) |
| Quellen | 30 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 Dekodierung | Geschwindigkeit | CPU-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).
| Transkodierung | Geschwindigkeit | CPU-Last |
|---|---|---|
| 4K AV1 10 Bit → 1080p H.264, komplett auf der GPU | 10,3x | 29 % eines Kerns |
4K AV1 HDR10 → 1080p H.264 SDR mit Tone Mapping (vpp_qsv) | 4,6x | — |
| 1080p AV1 → 720p H.264 | 9,2x | 19 % eines Kerns |
| 1080p AV1 → 1080p HEVC | 8,5x | 18 % eines Kerns |
| 4K AV1 auf der CPU dekodiert, H.264 auf der GPU kodiert (zum Vergleich) | 3,8x | 271 % |
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 Streams | Langsamster Stream | Echtzeit? |
|---|---|---|
| 1 | 4,6x | ja |
| 4 | 1,37x | ja |
| 5 | 1,10x | ja |
| 6 | 0,92x | knapp darunter |
| 8 | 0,69x | nein |
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.