Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung UGREEN NAS 03.11.2026 · 9 min Lesezeit

UGREEN NAS: Hardware-Transcoding mit Intel Quick Sync

Teil 81 der UGREEN-Serie: Die Intel-Grafik der UGREEN NAS prüfen, die Formate mit vainfo ermitteln, /dev/dri an Plex oder Jellyfin weiterreichen und den Gewinn mit ffmpeg messen.

Geprüft am 03.11.2026 · für UGOS Pro 1.21.0.0190

Mit KI erstellt – redaktionelle Prüfung ausstehend

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

Titelbild Teil 81: Hardware-Transcoding mit Intel Quick Sync auf der UGREEN NAS

Wer Filme von der NAS auf Handy, Fernseher oder Laptop streamt, stößt früher oder später auf Transcoding: Das Video muss umgerechnet werden, weil das Endgerät das Format nicht kann oder die Leitung zu langsam ist. Ohne Hilfe erledigt das der Prozessor, und er ist dabei schnell ausgelastet. Die Intel-Prozessoren der UGREEN NAS bringen mit Quick Sync eine eigene Einheit für Video mit. Diese Anleitung zeigt, wie Sie prüfen, ob die Grafik verfügbar ist, welche Formate sie beherrscht, wie Sie sie an einen Container wie Plex oder Jellyfin weiterreichen und wie viel schneller sie arbeitet.

Die Messwerte stammen von einer UGREEN DXP4800 Pro mit Intel Core i3-1315U und UGOS Pro 1.21.0.0190. Für den Vergleich haben wir mit ffmpeg in einem Wegwerfcontainer ein künstliches Testbild kodiert.

Voraussetzungen

  • Eine UGREEN NAS mit Intel-Prozessor, etwa der DXP4800 Pro oder DXP4800 Plus
  • Die App Docker, siehe Teil 63
  • SSH-Zugang, siehe Teil 52
  • Für Plex: Hardware-Transcoding setzt Plex Pass voraus (monatlich, jährlich oder einmalig), Jellyfin ist dafür kostenlos
  • Etwa 20 Minuten

Schritt 1: Die Grafik auf der NAS finden

Melden Sie sich per SSH an und sehen Sie nach, ob die Geräte der Grafik vorhanden sind:

ls -l /dev/dri
crw-rw----  1 root video  226,   0 Nov  3 06:58 card0
crw-rw----  1 root render 226, 128 Nov  3 06:58 renderD128

Fehlt der Ordner, hat der Prozessor keine eingebaute Grafik, oder sie ist abgeschaltet. card0 steht für die Grafik mit Bildausgabe, renderD128 der Zugang für Rechenaufgaben wie Video. Für Transcoding zählt renderD128. Es gehört der Gruppe render, bei uns mit der Gruppen-ID 105, card0 der Gruppe video mit 44. Die IDs zeigt:

getent group render video

Verifizieren: /dev/dri enthält renderD128.

Schritt 2: Die Formate prüfen

Welche Formate die Grafik dekodieren und kodieren kann, zeigt vainfo:

sudo vainfo --display drm --device /dev/dri/renderD128

Die ersten Zeilen nennen den Treiber, bei uns Intel iHD driver 25.3.4. Darunter folgt die Liste der Profile. Nur Treiber und Kodier-Profile zeigt:

sudo vainfo --display drm --device /dev/dri/renderD128 2>/dev/null | grep -E "Driver|EncSlice"

VLD bedeutet Dekodieren, EncSlice und EncSliceLP bedeuten Kodieren. Zusammengefasst kann die Grafik des i3-1315U bei uns:

  • H.264: dekodieren und kodieren
  • HEVC, auch 10 Bit: dekodieren und kodieren
  • VP9: dekodieren und kodieren, das Kodieren nur im Low-Power-Modus (EncSliceLP)
  • AV1: nur dekodieren
  • MPEG-2: dekodieren und kodieren, VC-1 nur dekodieren

Für Medienserver heißt das: Filme in H.264, HEVC und AV1 kann die Grafik lesen, ausgeben kann sie H.264 und HEVC, die beiden Formate, die fast jedes Endgerät abspielt.

Verifizieren: vainfo zeigt den Treiber und Profile mit EncSlice für H.264 und HEVC.

Schritt 3: Die Grafik an den Container weiterreichen

Im Compose-Projekt des Medienservers ergänzen Sie den Abschnitt devices. Ein Auszug aus unserem Plex-Projekt, die Werte für PUID und PGID haben wir eingesetzt:

services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    devices:
      - /dev/dri:/dev/dri
    environment:
      - PUID=1001
      - PGID=100

Damit sieht der Container dieselben Geräte wie die NAS. Das Konto im Container braucht zusätzlich Rechte auf die Gruppe von renderD128. Die Images von linuxserver.io erkennen das beim Start und nehmen ihr Konto selbst in die passende Gruppe auf. Bei uns sieht das im Container so aus:

sudo docker exec plex id abc
uid=1001(abc) gid=100(users) groups=100(users),44(video),105(groupcivu)

Die Gruppe 105 heißt im Container anders, entscheidend ist die Zahl. Bei anderen Images, etwa dem offiziellen Image jellyfin/jellyfin, ergänzen Sie die Gruppe selbst mit group_add und der Zahl aus Schritt 1:

    group_add:
      - "105"

group_add steht auf derselben Ebene wie devices. Speichern Sie die Datei und stellen Sie das Projekt in der App Docker neu bereit, damit der Container mit den Geräten neu erstellt wird. Wie PUID und PGID funktionieren, zeigt Teil 65.

Verifizieren: Im Container zeigt ls -ln /dev/dri renderD128, und id nennt die Gruppen-ID von renderD128.

Schritt 4: Messen, was die Grafik bringt

Ob die Hardware wirklich arbeitet, zeigt ein kurzer Test mit ffmpeg in einem Wegwerfcontainer. Er kodiert ein künstliches Testbild in Full HD 30 Sekunden lang, Ihre Medien bleiben unberührt:

sudo docker run --rm --device /dev/dri:/dev/dri lscr.io/linuxserver/ffmpeg:latest -hide_banner \
  -vaapi_device /dev/dri/renderD128 -f lavfi -i testsrc2=size=1920x1080:rate=30 -t 30 \
  -vf "format=nv12,hwupload" -c:v hevc_vaapi -b:v 6M -f null -

Zum Vergleich dasselbe nur mit dem Prozessor:

sudo docker run --rm lscr.io/linuxserver/ffmpeg:latest -hide_banner \
  -f lavfi -i testsrc2=size=1920x1080:rate=30 -t 30 -c:v libx265 -preset fast -b:v 6M -f null -

Bei uns lautete die letzte Zeile:

Grafik:      frame=  900 fps=133 … speed=4.41x
Prozessor:   frame=  900 fps= 47 … speed=1.55x

Die Grafik war also knapp dreimal so schnell. Wichtiger noch für die NAS: Während der Grafik-Kodierung war der Prozessor laut top zu rund drei Vierteln frei, bei der reinen Prozessor-Kodierung nur noch zu 15 Prozent. Mit Quick Sync bleiben also genug Reserven für Freigaben, Container und Sicherungen. Das Image ist 794 MB groß, entfernen Sie es nach dem Test mit sudo docker image rm lscr.io/linuxserver/ffmpeg:latest.

Mit denselben Befehlen und anderen Werten haben wir weitere Fälle gemessen, jeweils mit dem künstlichen Testbild:

  • H.264, Full HD, Grafik (h264_vaapi): 289 Bilder pro Sekunde, 9,6-fache Echtzeit
  • H.264, Full HD, Prozessor (libx264 fast): 112 Bilder pro Sekunde, 3,7-fache Echtzeit
  • HEVC, Full HD, Grafik: 133 Bilder pro Sekunde, 4,4-fache Echtzeit
  • HEVC, Full HD, Prozessor (libx265 fast): 47 Bilder pro Sekunde, 1,55-fache Echtzeit
  • HEVC, 4K, Grafik: 54 Bilder pro Sekunde, 1,8-fache Echtzeit

Zwei Hinweise zur Einordnung. Das Testbild erzeugt ffmpeg mit dem Prozessor. Ein Teil der gemessenen Prozessorlast stammt also vom Testbild und nicht von der Kodierung. Und ein echter Medienserver dekodiert zusätzlich den Film, was die Grafik ebenfalls übernimmt. Die Werte zeigen deshalb die Größenordnung, nicht die genaue Zahl gleichzeitiger Streams. Deutlich wird aber: H.264 schafft die Grafik fast zehnmal so schnell wie in Echtzeit, und selbst HEVC in 4K liegt über Echtzeit.

Warum lohnt die Grafik bei HEVC besonders? Der Prozessor schafft H.264 noch mit 3,7-facher Echtzeit, HEVC nur noch mit 1,55-facher. H.264 ist ein älteres, einfacheres Verfahren. HEVC spart Platz, ist aber deutlich rechenaufwendiger. Hier bleibt dem Prozessor kaum Reserve, und die Grafik nimmt ihm die Arbeit ab.

Verifizieren: Der Lauf mit hevc_vaapi endet ohne Fehler und mit einer speed deutlich über 1x.

Schritt 5: Im Medienserver einschalten

In Plex öffnen Sie die Einstellungen des Servers, wählen Transcoder und klicken auf Erweitert anzeigen. Schalten Sie dort die Hardware-Beschleunigung und die hardwarebeschleunigte Videokodierung ein. Beides setzt Plex Pass voraus. In Jellyfin öffnen Sie Dashboard, Wiedergabe, Transkodierung. Wählen Sie unter Hardwarebeschleunigung Intel QuickSync (QSV) oder VAAPI, als Gerät /dev/dri/renderD128, und setzen Sie die Häkchen beim Hardware-Dekodieren für H.264, HEVC, HEVC 10 Bit, VP9 und AV1. HEVC als Ausgabe schalten Sie ein, wenn Ihre Endgeräte es abspielen.

Zum Prüfen brauchen Sie einen Stream, der umgewandelt wird. Stellen Sie dazu im Player die Qualität herunter, etwa auf 720p mit 2 Mbit/s.

Ob ein laufender Stream die Hardware nutzt, zeigt in Plex das Dashboard mit Transcode (hw). In Jellyfin finden Sie unter Dashboard, Protokolle die Datei FFmpeg.Transcode, dort steht bei Hardware ein Encoder wie hevc_qsv, h264_qsv oder hevc_vaapi. Auf der NAS sehen Sie die Last im Task Manager von UGOS unter Betriebsstatus im Reiter GPU.

Task Manager der UGREEN NAS im Reiter GPU mit der aktuellen Auslastung der Intel-Grafik
Task Manager, Reiter GPU: 1 Reiter GPU, 2 aktuelle Auslastung der Grafik.

Ohne laufenden Stream steht die Auslastung wie in unserem Bild bei 0 Prozent. Während einer Umwandlung per Hardware steigt sie an.

Verifizieren: Beim Abspielen eines Films, der umgewandelt werden muss, steigt die Auslastung im Reiter GPU, Plex zeigt (hw), in Jellyfin nennt das Protokoll einen Encoder mit qsv oder vaapi.

Schritt 6: Den Ordner für Zwischendateien festlegen

Beim Umwandeln schreibt der Medienserver Zwischendateien. Legen Sie diesen Ordner auf ein schnelles Volume und nicht auf die Festplatten mit den Filmen, sonst wecken Streams die Platten auf und bremsen sie. Bei uns ist das ein eigener Ordner transcode im Projektordner auf den SSDs:

    volumes:
      - ./transcode:/transcode

In Plex tragen Sie /transcode unter Transcoder, Erweitert anzeigen, als temporäres Verzeichnis des Transcoders ein, in Jellyfin unter Transkodierung als Pfad für die Transkodierung. Der Ordner wächst während eines Streams und leert sich danach wieder. Planen Sie je gleichzeitigem Stream einige Gigabyte Platz ein.

Verifizieren: Während eines umgewandelten Streams entstehen Dateien im Ordner transcode, danach verschwinden sie wieder.

Typische Fehler

  • /dev/dri fehlt im Container: Der Abschnitt devices fehlt oder der Container wurde nach der Änderung nicht neu erstellt. Projekt neu bereitstellen.
  • Permission denied auf renderD128: Das Konto im Container gehört nicht zur Gruppe von renderD128. group_add mit der Gruppen-ID ergänzen.
  • Plex nutzt die Hardware nicht: Plex Pass fehlt oder die Einstellung ist aus.
  • Kein AV1 als Ausgabe: Die Grafik kann AV1 nur lesen, nicht erzeugen. Filme in AV1 dekodiert sie trotzdem selbst und gibt sie als H.264 oder HEVC aus.
  • Ruckeln trotz Hardware: Kann der Player Untertitel nicht selbst darstellen, etwa Bild-Untertitel wie PGS oder gestaltete ASS-Untertitel, brennt der Server sie ins Bild ein. Das kostet je nach Medienserver zusätzlich Prozessorleistung. Untertitel als SRT nutzen oder abschalten.

Häufige Fragen

Braucht die NAS dafür einen Grafiktreiber?

Nein. UGOS bringt den Kerneltreiber für die Intel-Grafik und den VA-Treiber iHD mit, das zeigt vainfo. Der Container nutzt seine eigenen Bibliotheken und braucht von der NAS nur /dev/dri.

Kann eine VM die Grafik nutzen?

Nur per Hardware-Passthrough, siehe Teil 87. Dann steht sie Containern nicht mehr zur Verfügung.

Wie viele Streams schafft die Grafik?

Das hängt von Auflösung und Format ab. Unser Test lief mit 4,4-facher Echtzeit für Full HD in HEVC und 9,6-facher in H.264. Rechnerisch reicht das für mehrere gleichzeitige Streams in Full HD, die genaue Zahl hängt vom Ausgangsmaterial ab.

Was ist der Unterschied zwischen Quick Sync und VAAPI?

Quick Sync ist der Name der Video-Einheit in Intel-Prozessoren. VAAPI ist die Schnittstelle unter Linux, über die Programme wie ffmpeg, Plex und Jellyfin diese Einheit ansprechen. In Jellyfin stehen beide zur Auswahl. Die Jellyfin-Doku empfiehlt für Intel-Grafik QSV, das intern ebenfalls auf VAAPI aufsetzt.

Fazit

Die Intel-Grafik der UGREEN NAS beherrscht H.264 und HEVC in beide Richtungen und liest AV1. Mit /dev/dri im Container und der richtigen Gruppe übernimmt sie das Umwandeln von Videos, bei HEVC knapp dreimal so schnell wie der Prozessor, der dabei zu rund drei Vierteln frei bleibt. Ein kurzer Test mit ffmpeg zeigt, ob alles stimmt, und ein eigener Ordner für Zwischendateien auf den SSDs hält die Festplatten ruhig.

Weiterführende Anleitungen und Quellen

UGREENUGREEN NASTranscodingQuick SyncPlexJellyfin