Jellyfin Hardwarebeschleunigung prüfen: Transkodiert die GPU oder die CPU?

Praxis-Anleitung für Self-Hoster: Mit Transcode Doctor NVENC, QuickSync und VA-API mit Jellyfins eigenem ffmpeg testen, funktionierende Einstellungen übernehmen und den genauen Grund für jedes Transcoding lesen.

Jellyfin erkennt deine Grafikkarte nicht von selbst. Du wählst die Beschleunigungsmethode und die Codecs manuell unter Dashboard → Playback → Transcoding, und eine falsche Wahl oder eine fehlende Berechtigung schickt das Transcoding still und leise zurück auf den Prozessor. Keine Fehlermeldung, kein Hinweis — nur eine heiße CPU und Lüfter, die du bis in den Flur hörst.

Transcode Doctor ist ein Jellyfin-Plugin, das dir das Raten erspart. Es testet mit Jellyfins eigenem ffmpeg, was dein Server wirklich kann, benennt das Umgebungsproblem mit der genauen Lösung, übernimmt die funktionierenden Einstellungen mit einem Klick und erklärt in einfachen Worten, warum jede Wiedergabe transcodiert wird. Dieses Tutorial führt dich einmal durch den ganzen Ablauf auf einem selbst gehosteten Server.

Direct Play vs. Transcoding, in einem Absatz

Kann der Client die Datei so abspielen, wie sie ist, streamt Jellyfin sie unverändert (Direct Play) und die CPU merkt kaum etwas. Wenn nicht — Container, Videocodec, Audiocodec, Untertitel, HDR oder ein Bitratenlimit stehen im Weg — transcodiert Jellyfin, und diese Arbeit landet entweder auf der GPU oder auf der CPU. Eine richtig eingerichtete Hardwarebeschleunigung sorgt dafür, dass dieser zweite Fall günstig bleibt.

Voraussetzungen

  • Jellyfin Server 12.2 oder neuer, mit jellyfin-ffmpeg (der ffmpeg-Build, der mit Jellyfin ausgeliefert wird).
  • Eine NVIDIA-, Intel- oder AMD-Grafikkarte mit Treiber, die für Jellyfin erreichbar ist: bei NVIDIA ein Treiber mit nvidia-smi; bei Intel und AMD ein /dev/dri-Render-Gerät, das der Jellyfin-Benutzer öffnen kann, meist über die Gruppe render. In Docker muss das Gerät in den Container durchgereicht werden.
  • Ein MediaLab-Works-Konto mit einer Lizenz, die das Plugin abdeckt (Abo, Lifetime innerhalb des Update-Zeitraums, das Jellyfin-Bundle oder die kostenlose 30-Tage-Testversion).

Schritt 1 — Plugin installieren und aktivieren

Installiere aus deinem privaten Plugin-Repository (Dashboard → Plugins → Repositories, dann der Katalog), aus dem öffentlichen Katalog oder manuell aus dem Zip. Die Benutzeranleitung enthält die genauen Pfade für Paket-, Docker- und Windows-Installationen. Öffne nach einem Jellyfin-Neustart die Plugin-Seite und klicke auf License, füge dann deinen Schlüssel ein und klicke auf Activate with key — oder starte die kostenlose 30-Tage-Testversion auf derselben Seite.

Schritt 2 — Hardwarebeschleunigung diagnostizieren

Öffne Transcode Doctor im Dashboard-Menü und klicke auf Run the tests. Das Plugin:

  • prüft ffmpeg, die NVIDIA-Karte und die /dev/dri-Geräte mit den Berechtigungen des Jellyfin-Prozesses;
  • erzeugt mit ffmpeg im Cache-Ordner von Jellyfin (transcode-doctor/) einige kurze Testclips — deine Medien werden nicht angefasst;
  • probiert jede Methode — NVIDIA NVENC, Intel QuickSync und VA-API (Intel/AMD) — beim Decodieren von H.264, HEVC, HEVC 10-bit, MPEG-2, VP9 und AV1 und beim Encodieren von H.264 und HEVC aus, mit gemessener Geschwindigkeit.

Jeder Test dauert höchstens eine Minute. Die Tabelle zeigt, was funktioniert und wie schnell — diese gemessene Geschwindigkeit ist die Zahl, auf die es ankommt, nicht der Marketingname auf der Verpackung.

Schritt 3 — Problem lesen und die genaue Lösung anwenden

Wenn etwas die Beschleunigung blockiert, sagt die Seite, was und wie du es behebst. Der häufigste Fall ist Jellyfin ohne Zugriff auf /dev/dri/renderD128. Das Plugin zeigt den Befehl, der den Jellyfin-Benutzer zur Gruppe render hinzufügt:

sudo usermod -aG render jellyfin

Starte Jellyfin neu und führe die Tests erneut aus. Weitere Fälle, die das Plugin meldet, sind eine NVIDIA-Karte, deren Treiber nicht reagiert, und ein ffmpeg, das am konfigurierten Pfad fehlt. In Docker muss das GPU-Gerät in den Container durchgereicht werden, bevor irgendetwas davon funktionieren kann.

Schritt 4 — Empfehlung übernehmen (und wissen, wie du sie rückgängig machst)

Sind die Tests fertig, zeigt die Seite die Methode, die die meisten Tests bestanden hat, die Decodier-Codecs, die Hardware-Encodierung und grob, wie viele 1080p-Transcodings gleichzeitig laufen können — neben deinen aktuellen Einstellungen.

Apply the settings schreibt die Empfehlung in Dashboard → Playback → Transcoding: die Beschleunigungsmethode, die bestandenen Hardware-Decodier-Codecs, HEVC-10-bit-Decodierung, Hardware-Encodierung und das VA-API-/QuickSync-Gerät. Nichts ändert sich, bis du klickst. VC-1-, VP8- und MPEG-4-Decodierung lassen sich nicht testen und bleiben deshalb so, wie du sie eingestellt hast; HEVC-Encodierung wird abgeschaltet, wenn sie fehlgeschlagen ist, und vom Plugin niemals eingeschaltet.

Vor dem Übernehmen speichert das Plugin deine bisherigen Transcoding-Einstellungen. Restore the previous settings stellt sie exakt wieder her — genau das willst du, wenn ein Treiber-Update oder ein Jellyfin-Upgrade das Bild verändert. Du kannst die Einstellungen in Jellyfin jederzeit auch von Hand bearbeiten.

Schritt 5 — Herausfinden, warum jede Wiedergabe transcodiert

Das ist der Teil, der später die meiste Zeit spart. Why it transcodes listet die letzten transcodierten Wiedergaben auf — wann, wer, was — mit Jellyfins Gründen in einfachen Worten und was man dagegen tun kann, plus ob die GPU oder die CPU die Arbeit gemacht hat. Bis zu 500 Wiedergaben werden gespeichert.

Typische Gründe, die du sehen wirst:

  • Eingebrannte PGS-Untertitel. Bildbasierte Untertitel müssen in die Videoframes gezeichnet werden, also wird der Stream neu encodiert. Eine textbasierte Untertitelspur vermeidet das.
  • HDR auf einem SDR-Bildschirm. Tone Mapping ist per Definition ein Transcoding, außer der Client übernimmt HDR selbst.
  • Audiocodec. Der Client akzeptiert vielleicht das Video, aber nicht die Audiospur, was trotzdem ein Transcoding des Streams erzwingt.
  • Das Bitratenlimit der App. Ein Client, der unter der Bitrate der Datei eingestellt ist, fordert einen Stream in geringerer Qualität an.

„CPU (GPU not used)“ bei einer Wiedergabe, obwohl Beschleunigung eingerichtet ist, bedeutet, dass die Karte für genau diese nicht genutzt wurde — ein Blick auf die Kombination aus Methode und Codec lohnt sich.

Schritt 6 — Das Aktivitätsprotokoll auf CPU-Fallback achten lassen

Läuft ein Video-Transcoding auf der CPU, obwohl Hardwarebeschleunigung eingerichtet ist, schreibt das Plugin einen Eintrag ins Aktivitätsprotokoll von Jellyfin. Die Warnung ist standardmäßig an und schreibt nur lokal. Sie ist die günstigste Frühwarnung, die du nach einem Treiber- oder Jellyfin-Upgrade haben kannst.

Tipps und Fehlerbehebung

  • Führe die Tests nach jeder Änderung an Treiber, Jellyfin oder Hardware erneut aus. Eine Methode, die letzten Monat bestanden hat, kann nach einem Update fehlschlagen.
  • Diagnose meldet ffmpeg not found: Installiere jellyfin-ffmpeg, setze seinen Pfad im Dashboard und führe die Tests erneut aus.
  • Docker: Das Render-Gerät muss in den Container gemappt sein; Berechtigungskorrekturen auf dem Host bringen nichts, wenn das Gerät Jellyfin nie erreicht.
  • Plattformhinweise: Die Prüfungen sind auf Linux ausgerichtet (/dev/dri, nvidia-smi, die Gruppe render). NVIDIA NVENC ist auf einer echten Quadro M2000 verifiziert; Intel QSV und VA-API werden vom Plugin erkannt und getestet, aber vom Entwickler nicht auf echter Hardware geprüft. AMD AMF, Apple VideoToolbox und Rockchip werden nicht unterstützt.
  • Datenschutz: Das Plugin lädt keine Testdateien herunter — die Clips werden lokal erzeugt — und nichts, was es speichert, verlässt den Server. Die Diagnose läuft nur, wenn du auf den Button klickst; siehe Licensing and privacy in our plugins.
  • Updates: Bleib bei deinem privaten Plugin-Repository, damit Jellyfin nur Versionen anbietet, die deine Lizenz erlaubt, und nutze Roll back to x.y.z auf der License-Seite, wenn ein Update Probleme macht. Die Release Notes stehen im Changelog.

Fazit

Hardwarebeschleunigung in Jellyfin ist kein Häkchen, durch das du dich durchraten kannst: Methode, Codecs und Berechtigungen müssen zusammenpassen, und wenn sie es nicht tun, ist das einzige Symptom eine beschäftigte CPU. Transcode Doctor macht daraus eine gemessene Antwort — teste mit Jellyfins eigenem ffmpeg, behebe das eine, was tatsächlich kaputt ist, übernimm mit einem Klick, was bestanden hat, mit einem Ein-Klick-Weg zurück, und lies den Grund hinter jedem Transcoding. Wenn du nicht weiterkommst, sind die Wissensdatenbank und die FAQ ein guter nächster Schritt, oder kontaktiere uns mit dem Diagnosebericht.

Dieser Beitrag wurde mit KI-Unterstützung auf Grundlage unserer Produktdokumentation oder der aufgeführten Quellen verfasst und vor der Veröffentlichung automatisch geprüft.

Als Nächstes lesen

Du betreibst Emby, Jellyfin oder Nextcloud?

Unsere Plugins und Apps bringen Live-TV, Untertitel, Registrierung und Sicherheit auf deinen eigenen Server, mit kostenlosem Testzeitraum.