Jellyfin auf Synology NAS mit Intel-QuickSync-Hardware-Transcoding im Container Manager einrichten
Jellyfin als freier Media-Server auf der Synology: Diese Anleitung zeigt das Setup im Container Manager mit Compose-Projekt und Intel-Quick-Sync-Hardware-Transcoding über /dev/dri, inklusive Gruppenrechten, QSV/VAAPI-Aktivierung und Hinweisen zu geeigneten NAS-Modellen.
Geprüft am 09.10.2026 · für Jellyfin 12.2
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Ein eigener Media-Server auf der Synology macht die NAS zur Streaming-Zentrale für Filme, Serien und Musik, ohne Cloud und ohne Abo. Jellyfin ist die freie Alternative zu Plex und Emby und läuft im Container Manager. Der entscheidende Punkt für flüssiges Streaming ist das Hardware-Transcoding: Kann ein Client ein Format nicht direkt abspielen, muss der Server den Stream in Echtzeit umrechnen. Ohne Hardware-Unterstützung erledigt das die CPU, und schwache NAS-CPUs kommen dabei schnell an die Grenze. Mit der integrierten Intel-Grafik (Intel Quick Sync Video) über das Gerät /dev/dri übernimmt die iGPU diese Arbeit und transcodiert mehrere 1080p-Streams parallel, während die CPU kaum belastet wird. Diese Anleitung richtet sich an Admins und ambitionierte Heimanwender, die Jellyfin per Compose-Projekt aufsetzen und das Quick-Sync-Transcoding korrekt durchreichen wollen.
Was ist Jellyfin und warum Hardware-Transcoding?
Jellyfin ist ein quelloffener Media-Server, der Ihre Medienbibliothek per Web-Oberfläche und über Apps für Smart-TVs, Smartphones, Kodi und andere Geräte bereitstellt. Es gibt keine Lizenzkosten, keine Account-Pflicht bei einem Hersteller und keine künstlichen Funktionssperren. Alles läuft auf Ihrer eigenen Hardware.
Transcoding bedeutet, dass Jellyfin einen Videostream in ein Format umwandelt, das der jeweilige Client abspielen kann, etwa weil das Endgerät den Codec nicht unterstützt, die Bandbreite zu gering ist oder Untertitel eingebrannt werden müssen. Diese Umrechnung ist rechenintensiv. Eine Celeron- oder Pentium-CPU einer NAS schafft per Software oft nur einen einzigen 1080p-Stream, und das bei hoher Auslastung. Intel Quick Sync Video (QSV) ist ein eigener Video-Encoder und -Decoder in der integrierten Intel-Grafik. Reicht man das Gerät /dev/dri in den Container durch, nutzt Jellyfin diese Hardware-Einheit und transcodiert mehrere Streams gleichzeitig bei geringer CPU-Last.
Wichtig vorab: Das funktioniert nur auf Synology-Modellen mit einer Intel-CPU mit integrierter Grafik. ARM-basierte Modelle (etwa viele j- und Value-Modelle) und Modelle mit AMD-Ryzen-CPU ohne Grafikeinheit (etwa DS923+ oder DS1522+) besitzen kein Quick Sync und können ausschließlich per Software transcodieren.
Voraussetzungen
- Synology NAS mit Intel-CPU mit iGPU (Celeron J4025/J4125 oder vergleichbar mit Quick Sync), z. B. DS220+, DS224+, DS423+, DS720+ oder DS920+, mit mindestens 2 CPU-Kernen und 4 GB RAM. Die Jellyfin-Dokumentation empfiehlt, dem Container alle CPU-Ressourcen und mindestens 4 GB RAM zuzugestehen. ARM- und AMD-Modelle sind für Hardware-Transcoding nicht geeignet.
- DSM 7.2 oder neuer mit installiertem Paket Container Manager (Nachfolger des alten Docker-Pakets).
- Ein Konto mit Administrator-Rechten und Zugriff auf File Station.
- Freier Host-Port 8096 (HTTP-Web-UI). Optional 8920 (HTTPS) und 7359/udp (automatische Erkennung im LAN).
- Ein vorhandener Medienordner auf der NAS, z. B. ein freigegebener Ordner
/volume1/mediamit Unterordnern für Filme und Serien. Für Konfiguration, Metadaten und Cache sollten einige GB freier Speicher bereitstehen. - Einmalig SSH-Zugang, um die Gruppen-ID des Grafikgeräts auszulesen (Schritt 2). DSM zeigt diese Information in der Oberfläche nicht an.
Schritt 1: Ordnerstruktur in der File Station anlegen
Legen Sie die Datenordner für Konfiguration und Cache an. Bewährt hat sich ein zentraler docker-Ordner auf Volume 1.
- Öffnen Sie die File Station.
- Erstellen Sie, falls noch nicht vorhanden, den freigegebenen Ordner
dockerauf/volume1. - Legen Sie darin den Ordner
jellyfinan und darin zwei Unterordner:configundcache.
Sie erhalten diese Struktur:
/volume1/docker/jellyfin/config
/volume1/docker/jellyfin/cacheDer Medienordner liegt bewusst getrennt davon (z. B. /volume1/media) und wird gleich nur lesend (read-only) eingebunden, damit Jellyfin Ihre Dateien nicht verändern kann.
Verifizieren: In der File Station existieren docker/jellyfin/config und docker/jellyfin/cache.
Schritt 2: Gruppen-ID des render-Geräts ermitteln
Damit der Container über die iGPU transcodieren darf, braucht er Zugriff auf das Gerät /dev/dri/renderD128. Dieses Gerät gehört einer bestimmten Gruppe, deren numerische ID je nach System abweichen kann. Der Gruppenname kann je nach System abweichen, entscheidend ist die Zahl. Sie geben die Gruppen-ID später in der Compose-Datei per group_add mit.
Aktivieren Sie kurzzeitig SSH (Systemsteuerung → Terminal & SNMP), verbinden Sie sich und lassen Sie sich die Geräte mit numerischen IDs anzeigen:
ls -ln /dev/driDie vierte Spalte in der Zeile renderD128 ist die gesuchte Gruppen-ID (GID). Auf vielen DSM-7-Systemen ist das 937, sie kann aber abweichen. Notieren Sie den Wert. SSH können Sie danach wieder abschalten. Nach dem Start lässt sich die Sicht aus dem Container prüfen:
sudo docker exec -it jellyfin ls -ln /dev/driVerifizieren: Die Ausgabe von ls -ln /dev/dri enthält eine Zeile renderD128. Fehlt sie, hat Ihr Modell keine nutzbare iGPU.
Schritt 3: docker-compose.yml vorbereiten
Der Container-Assistent des Container Managers bietet das Durchreichen von Geräten nicht an. Deshalb ist hier ein Compose-Projekt nötig. Erstellen Sie die folgende docker-compose.yml. Passen Sie den Medienpfad und gegebenenfalls die GID an.
services:
jellyfin:
image: jellyfin/jellyfin:12.2
container_name: jellyfin
restart: unless-stopped
network_mode: bridge
ports:
- "8096:8096"
- "8920:8920"
- "7359:7359/udp"
devices:
- /dev/dri:/dev/dri
group_add:
- "937"
volumes:
- /volume1/docker/jellyfin/config:/config
- /volume1/docker/jellyfin/cache:/cache
- /volume1/media:/media:ro
environment:
- TZ=Europe/BerlinHinweise zur Konfiguration:
image: fest auf Version 12.2 geschrieben (Stand der Prüfung). Der Wechsel von 12.1 auf 12.2 ist ein reines Fehlerbehebungs-Update ohne Änderung an Compose oder Einstellungen; im Test lief er mit dieser Konfiguration ohne Anpassung durch. Die aktuellen Tags finden Sie auf Docker Hub unterjellyfin/jellyfin. Mit:latestwürde ein Neuaufbau ungeplant eine neue Hauptversion ziehen.devices: /dev/dri:/dev/drireicht die Intel-Grafik in den Container. Das ist der Kern des Hardware-Transcodings.group_addsetzt die in Schritt 2 ermittelte GID. Stimmt sie nicht, fehlen dem Container die Rechte am Gerät, und das Transcoding scheitert oder fällt auf Software zurück.- Der Medienordner ist mit
:ronur lesend eingebunden. Jellyfin liest Ihre Dateien, kann sie aber nicht ändern oder löschen. TZsetzt die Zeitzone, damit „zuletzt hinzugefügt“ und Zeitstempel stimmen.
Verifizieren: Die Datei enthält Ihre GID unter group_add und den tatsächlichen Pfad Ihres Medienordners.
Schritt 4: Projekt im Container Manager anlegen
- Speichern Sie die
docker-compose.ymlüber die File Station im Ordner/volume1/docker/jellyfinoder halten Sie den Inhalt zum Einfügen bereit. - Öffnen Sie den Container Manager und wechseln Sie in den Bereich Projekt.
- Klicken Sie auf Erstellen.
- Vergeben Sie als Projektnamen
jellyfinund wählen Sie als Pfad den Ordner/volume1/docker/jellyfin. - Verwenden Sie die vorhandene
docker-compose.ymloder fügen Sie den YAML-Inhalt aus Schritt 3 direkt in den Editor ein. - Bestätigen Sie die folgenden Dialoge und starten Sie das Projekt mit Fertig.
Der Container Manager lädt nun das Image jellyfin/jellyfin:12.2 herunter und startet den Container.
Verifizieren: Im Bereich Container erscheint jellyfin nach kurzer Zeit als „Wird ausgeführt“, und im Protokoll des Containers stehen keine Fehler zu /dev/dri.
Schritt 5: Jellyfin im Browser einrichten
Öffnen Sie die Web-Oberfläche unter http://NAS-IP:8096 (ersetzen Sie NAS-IP durch die IP-Adresse Ihrer Synology). Der Einrichtungsassistent führt durch diese Punkte:
- Sprache wählen (Deutsch).
- Erstes Benutzerkonto anlegen: Wählen Sie einen Namen und ein starkes Passwort. Dies ist Ihr Administrator-Konto.
- Medienbibliotheken hinzufügen: Klicken Sie auf „Medienbibliothek hinzufügen“, wählen Sie den Inhaltstyp (z. B. Filme) und als Ordner den Pfad
/mediabzw. den passenden Unterordner. Wichtig ist hier der Pfad innerhalb des Containers, also unterhalb von/media, nicht der Synology-Pfad. - Bevorzugte Metadaten-Sprache und Land einstellen.
- Den Assistenten abschließen und anmelden.
Jellyfin scannt nun die Bibliothek und lädt Cover sowie Metadaten. Je nach Größe dauert das eine Weile.
Verifizieren: Nach der Anmeldung erscheinen auf der Startseite die ersten Filme oder Serien mit Covern.
Schritt 6: Hardware-Transcoding aktivieren
Jetzt aktivieren Sie Quick Sync. Melden Sie sich als Administrator an und öffnen Sie im Dashboard den Bereich Wiedergabe → Transkodierung (englische Oberfläche: Playback → Transcoding).
- Setzen Sie „Hardwarebeschleunigung“ auf Intel QuickSync (QSV). Auf Intel-Grafik vor Broadwell (5. Core-Generation) wählen Sie stattdessen VAAPI, weil QSV unter Linux erst ab Broadwell unterstützt wird.
- Prüfen Sie als QSV-Gerät bzw. VA-API-Gerät den Pfad
/dev/dri/renderD128. - Aktivieren Sie die Hardware-Dekodierung für die Codecs, die Ihre iGPU unterstützt. Die Celeron-CPUs der Gemini-Lake-Generation (J4025, J4125) beherrschen laut Jellyfin-Dokumentation H.264 und HEVC einschließlich 10 Bit, aber kein AV1. Codecs, die Ihre GPU nicht beherrscht, lassen Sie deaktiviert.
- Optional: „Hardwarekodierung aktivieren“ einschalten.
- Speichern.
Ist die GID korrekt gesetzt, arbeitet das Transcoding jetzt in Hardware. Stimmen die Rechte nicht, bricht die Wiedergabe beim ersten Transcode mit einem Fehler ab. Dann gehen Sie zurück zu Schritt 2 und tragen die richtige GID per group_add nach.
Hinweis zur Zukunftsfähigkeit: Die Jellyfin-Dokumentation weist darauf hin, dass ältere Intel-Generationen bis einschließlich Ice Lake, Jasper Lake und Elkhart Lake die QSV-Unterstützung unter Linux verlieren, weil Intel die zugehörige MediaSDK-Laufzeit nicht mehr pflegt. Betrifft das Ihre NAS, stellen Sie auf VAAPI um, sobald QSV Fehler meldet.
Verifizieren: Nach dem Speichern zeigt die Seite keine Fehlermeldung, und beim erneuten Öffnen steht die Hardwarebeschleunigung weiterhin auf Intel QuickSync (QSV).
Schritt 7: Hardware-Transcoding verifizieren
Ob Quick Sync wirklich greift, prüfen Sie am einfachsten unter Last:
- Starten Sie ein Video, das ein Transcoding erzwingt, etwa indem Sie in der Wiedergabe eine niedrigere Qualitätsstufe (geringere Bitrate) als das Original wählen.
- Öffnen Sie im Dashboard die Ansicht der aktiven Geräte und Streams. Beim laufenden Stream zeigt das Info-Symbol die Wiedergabemethode „Transcoding“ und den verwendeten Codec, bei Hardware-Nutzung mit dem Hinweis auf QSV bzw. VAAPI.
- Gegenprobe an der NAS: Bleibt die CPU-Auslastung im Ressourcen-Monitor von DSM trotz laufendem Transcode niedrig, arbeitet die iGPU. Steigt die CPU auf nahezu 100 Prozent, läuft das Transcoding in Software. Dann prüfen Sie die Rechte und die Codec-Einstellung.
Verifizieren: Während eines Transcodes eines 1080p-Films bleibt die CPU-Auslastung im Ressourcen-Monitor deutlich unter 50 Prozent, und das Video läuft ohne Ruckeln.
Updates und Wartung
Updates spielen Sie über den Container Manager ein:
- Lesen Sie die Release Notes auf GitHub. Beim Sprung auf eine neue Hauptversion (etwa von 10.11 auf 12.0) ändert Jellyfin die Datenbank. Ein Zurück ist dann nur über ein Backup möglich, und nach dem Update ist ein vollständiger Bibliotheksscan nötig.
- Sichern Sie den Ordner
config(siehe unten). - Tragen Sie in der
docker-compose.ymldie neue Version ein, stoppen Sie das Projekt im Bereich Projekt und wählen Sie Aktion → Erstellen. Der Container Manager lädt das neue Image und baut den Container neu.
Da die gesamte Konfiguration im eingebundenen Ordner /config liegt, bleiben Benutzer, Bibliotheken und Einstellungen über Updates hinweg erhalten.
Backup
Sichern Sie den Ordner /volume1/docker/jellyfin/config, er enthält die komplette Jellyfin-Konfiguration samt Datenbank. Nehmen Sie diesen Pfad in Hyper Backup auf, dann lassen sich Benutzer und Bibliotheken im Ernstfall wiederherstellen. Für eine konsistente Sicherung stoppen Sie den Container vorher kurz oder planen das Backup in eine Zeit ohne Wiedergabe und Scans. Der cache-Ordner muss nicht gesichert werden, er wird automatisch neu erzeugt. Die eigentlichen Mediendateien sichern Sie ohnehin separat über Ihre bestehende Backup-Strategie.
Troubleshooting
- Transcoding nutzt weiter die CPU: Falsche oder fehlende GID. Mit
ls -ln /dev/dridie GID vonrenderD128ermitteln, in der Compose-Datei untergroup_addeintragen und das Projekt neu erstellen. - Wiedergabe bricht mit Fehler ab: Ein aktivierter Codec wird von der iGPU nicht unterstützt. Deaktivieren Sie in den Transkodierungs-Einstellungen die fraglichen Codecs (häufig AV1 auf älteren Celeron-Modellen).
- Gerät
/dev/drifehlt im Container: Prüfen Sie, ob diedevices-Zeile in der Compose-Datei vorhanden ist und ob Ihr NAS-Modell überhaupt eine Intel-iGPU besitzt. - Port 8096 belegt: Einen anderen Host-Port zuordnen, z. B.
"8097:8096", und die Web-UI dann unter diesem Port aufrufen. - Medienordner leer in Jellyfin: Beim Hinzufügen der Bibliothek den Container-Pfad unterhalb von
/mediawählen, nicht den Synology-Pfad. Prüfen Sie auch den Quellpfad im Volume-Eintrag auf Tippfehler. - Apps im LAN finden den Server nicht automatisch: Port
7359/udpfür die automatische Erkennung freigeben oder in der App die NAS-IP samt Port 8096 manuell eintragen.
Fazit
Mit dem Compose-Projekt im Container Manager läuft Jellyfin auf der Synology, und das Intel-Quick-Sync-Transcoding über /dev/dri ist aktiv. Das Ergebnis ist ein kostenfreier Media-Server, der dank iGPU mehrere parallele Streams transcodiert, ohne die NAS-CPU zu überlasten. Entscheidend bleibt die korrekte Gruppen-ID: Stimmt sie, läuft das Transcoding zuverlässig in Hardware. Beachten Sie, dass die Jellyfin-Dokumentation vorgefertigte NAS-Geräte grundsätzlich als eher leistungsschwach einstuft. Wer ein ARM- oder AMD-Modell besitzt, kann Jellyfin trotzdem betreiben, transcodiert dann aber rein in Software und sollte möglichst Formate nutzen, die die Clients direkt abspielen.
Jellyfin ohne NAS auf einem Linux-Server beschreibt die Anleitung Jellyfin mit Docker. Wünsche Ihrer Nutzer nach neuen Filmen und Serien verwalten Sie mit Jellyseerr auf dem Synology NAS.
Weitere Anleitungen in den Kategorien Synology / NAS und Docker.
Quellen: Jellyfin Docs: Container Installation, Jellyfin Docs: Intel Hardware Acceleration, Jellyfin Docs: Synology, Jellyfin Releases (GitHub)


