Transcode Doctor für Jellyfin — Anleitung
Installation
Du brauchst Jellyfin Server 12.2 oder neuer und ein MediaLab-Works-Konto mit einer Lizenz, die das Plugin abdeckt (ein aktives Abonnement, eine Lifetime-Lizenz innerhalb ihres Update-Zeitraums, das Jellyfin-Paket oder den kostenlosen 30-tägigen Test).
Über dein Plugin-Repository (empfohlen). Jellyfin installiert und aktualisiert das Plugin dann von selbst.
- Öffne in deinem MediaLab-Works-Konto Licenses → Jellyfin plugin repository und klicke auf Create address. Kopiere sie: Sie ist privat (sie enthält einen Token), also teile sie nicht; du kannst sie jederzeit neu erzeugen oder widerrufen.
- Öffne in Jellyfin Dashboard → Plugins → Repositories, klicke auf +, gib einen Namen ein (zum Beispiel MediaLab Works), füge die Adresse ein und speichere.
- Suche in Dashboard → Plugins → Catalog nach Transcode Doctor by MediaLab, klicke auf Install und starte Jellyfin neu.
Das Repository listet nur die Plugins auf, die deine Lizenzen abdecken, und nur die Versionen, die sie erlauben. Seine Download-Links sind signiert und laufen nach wenigen Stunden ab, deshalb liest Jellyfin immer eine aktuelle Liste.
Über den öffentlichen Katalog. https://medialab.works/jellyfin/manifest.json listet jedes veröffentlichte MediaLab-Works-Plugin mit seinem öffentlichen Build; medialab Server fügt ihn von selbst hinzu. Du kannst ihn auf dieselbe Weise hinzufügen, um ein Plugin zu installieren, bevor du einen Schlüssel hast: Das Plugin fragt dann auf seiner Lizenz-Seite nach der Lizenz oder startet den Test. Bei einer Lifetime-Lizenz, deren Update-Zeitraum abgelaufen ist, bleib bei deinem privaten Repository, das nur die Versionen anbietet, die deine Lizenz erlaubt.
Manuell aus einer Zip-Datei.
- Lade in Account → Licenses
jf-transcodedoctor_x.y.z.zipherunter (der SHA-256 der Datei wird neben dem Button angezeigt). - Entpacke sie in einen neuen Ordner
Transcode Doctor by MediaLab_x.y.z.0im Jellyfin-Plugins-Ordner:- Linux (Paket):
/var/lib/jellyfin/plugins/ - Docker (offizielles Image):
/config/plugins/im Konfigurations-Volume - Windows:
%ProgramData%\Jellyfin\Server\plugins\
- Linux (Paket):
- Starte Jellyfin neu.
Lizenzaktivierung
- Öffne die Plugin-Seite unter Dashboard → Plugins → Transcode Doctor by MediaLab und klicke auf License.
- Füge deinen Lizenzschlüssel ein und klicke auf Activate with key. Das Plugin kontaktiert den Lizenzserver, bindet den Schlüssel an diesen Jellyfin-Server und zeigt die Lizenz als Active an.
- Noch kein Schlüssel? Gib auf derselben Seite deine E-Mail-Adresse ein und starte den 30-tägigen kostenlosen Test (Karte erforderlich, heute nichts zu zahlen) oder kauf eine Lizenz; das Plugin aktiviert sich, sobald die Zahlung fertig ist.
Die Lizenz wird einmal am Tag und bei jedem Start von Jellyfin geprüft. Ohne Internet funktioniert das Plugin noch 7 Tage nach der letzten erfolgreichen Prüfung weiter. Ohne gültige Lizenz stoppt das Plugin seine Arbeit, und nur seine License-Seite funktioniert weiter (Test, Schlüssel, Verlängerung); es wird nichts gelöscht, und alles läuft weiter, sobald die Lizenz wieder gültig ist. Move license (release this server) auf derselben Seite gibt den Schlüssel für einen anderen Server frei.
Updates und Rollback
- Aus dem Repository: Jellyfin zeigt neue Versionen unter Dashboard → Plugins an und kann das Plugin automatisch aktualisieren; starte Jellyfin neu, um die neue Version zu laden.
- Über die License-Seite des Plugins: Mit gültiger Lizenz installiert Install update die neueste Version, die deine Lizenz erlaubt, und Roll back to x.y.z geht zur vorherigen Version zurück (zum Beispiel, wenn nach einem Update etwas nicht mehr funktioniert hat). Starte Jellyfin danach jeweils neu. Beide Pakete werden gegen die vom Lizenzserver veröffentlichte Prüfsumme geprüft.
- Eine Lifetime-Lizenz erhält die Versionen, die während ihres Update-Zeitraums erschienen sind; danach arbeitet das Plugin mit der letzten Version weiter, die es nutzen darf.
- Nach Roll back to x.y.z ist Jellyfins automatisches Update für dieses Plugin ausgeschaltet, bis zum nächsten Install update auf der License-Seite, sodass die geplante Aufgabe Update Plugins (beim Start und täglich) die neuere Version nicht zurückbringt.
- Lifetime-Lizenz und automatische Updates. Der öffentliche Jellyfin-Katalog (
https://medialab.works/jellyfin/manifest.json) bietet immer die neueste Version an. Wenn der Update-Zeitraum einer Lifetime-Lizenz abgelaufen ist, sind danach veröffentlichte Versionen nicht lizenziert: Installiert Jellyfins automatische Plugin-Updates eine davon, stoppt das Plugin mit „version not licensed“, bis du auf seiner License-Seite mit Roll back to x.y.z zurückgehst oder einen Update-Pass kaufst. Um das zu vermeiden, lass Jellyfin dieses Plugin nicht automatisch aktualisieren: Füge dein privates Plugin-Repository hinzu, das nur die Versionen anbietet, die deine Lizenz erlaubt, anstelle des öffentlichen Katalogs, oder entferne die Auslöser der geplanten Aufgabe Update Plugins unter Dashboard → Scheduled Tasks (das stoppt automatische Updates für jedes Plugin).
Quellcode
Der GPL-3.0-Quellcode jeder Version befindet sich in Account → Licenses (Source code) neben dem Download, als .tar.gz-Archiv aus dem exakten Commit dieser Version.
Konfiguration
Öffne Transcode Doctor im Jellyfin-Dashboard-Menü.
- Diagnose der Hardwarebeschleunigung: Klicke auf Run the tests. Das Plugin prüft ffmpeg, die NVIDIA-Karte und die
/dev/dri-Geräte, erzeugt mit ffmpeg ein paar kurze Testclips im Cache-Ordner von Jellyfin und probiert dann jede Methode (NVIDIA NVENC, Intel QuickSync, VA-API) beim Decodieren von H.264, HEVC, HEVC 10-bit, MPEG-2, VP9 und AV1 und beim Encodieren von H.264 und HEVC. Jeder Test dauert höchstens eine Minute; die Tabelle zeigt, was funktioniert und wie schnell. - Problems: Wenn etwas die Beschleunigung blockiert, sagt die Seite, was und wie du es behebst. Am häufigsten ist Jellyfin ohne Zugriff auf
/dev/dri/renderD128: Führe den angezeigten Befehl aus (er fügt den Jellyfin-Benutzer der Grupperenderhinzu), starte Jellyfin neu und führe die Tests erneut aus. Unter Docker reiche das GPU-Gerät in den Container durch. - Recommendation: die Methode, die die meisten Tests bestanden hat, die Decodier-Codecs, Hardware-Encoding und ungefähr, wie viele 1080p-Transcodes gleichzeitig laufen können, neben deinen aktuellen Einstellungen.
- Apply the settings schreibt die Empfehlung in Dashboard → Playback → Transcoding: die Beschleunigungsmethode, die Codecs für Hardware-Decodierung, HEVC-10-bit-Decodierung, Hardware-Encoding und das VA-API- / QuickSync-Gerät. VC-1-, VP8- und MPEG-4-Decodierung, die sich nicht testen lassen, bleiben so, wie du sie eingestellt hast; HEVC-Encoding wird ausgeschaltet, wenn es fehlgeschlagen ist, und vom Plugin nie eingeschaltet.
- Restore the previous settings stellt die Transcoding-Einstellungen wieder her, die kurz vor der letzten Übernahme gespeichert wurden. Du kannst sie in Jellyfin auch jederzeit von Hand ändern.
Der tägliche Gebrauch
- Why it transcodes listet die letzten transcodierten Wiedergaben auf: wann, wer, was, die Gründe in verständlichen Worten mit dem, was man tun kann, und ob die GPU oder die CPU die Arbeit gemacht hat. „CPU (GPU not used)“ bei einer Wiedergabe, während Beschleunigung konfiguriert ist, bedeutet, dass die Karte nicht genutzt wurde.
- Wenn ein Video-Transcode auf der CPU läuft, obwohl Beschleunigung konfiguriert ist, schreibt das Plugin einen Eintrag in Jellyfins Aktivitätsprotokoll.
- Führe die Tests nach einer Änderung von Treiber, Jellyfin oder Hardware erneut aus.
Fehlerbehebung
- The diagnosis failed: ffmpeg not found: Installiere jellyfin-ffmpeg und setze seinen Pfad in Dashboard → Playback → Transcoding.
- Jeder VA-API- / QuickSync-Test schlägt fehl: Prüfe die Problems-Liste; meist fehlt der Jellyfin-Benutzer in der Gruppe
renderoder das Gerät wurde nicht in den Docker-Container durchgereicht. - Jeder NVENC-Test schlägt fehl: Der NVIDIA-Treiber fehlt oder
nvidia-smiantwortet nicht. - Keine Hardware-Methode hat die Tests bestanden: Das Transcoding bleibt auf der CPU; es wird nichts übernommen.