Transcode Doctor pour Jellyfin — guide

Installation

Vous avez besoin de Jellyfin Server 12.2 ou plus récent et d’un compte MediaLab Works avec une licence qui couvre le plugin (un abonnement actif, une licence à vie dans sa période de mises à jour, le pack Jellyfin ou l’essai gratuit de 30 jours).

Depuis votre dépôt de plugins (recommandé). Jellyfin installe alors le plugin et ses mises à jour tout seul.

  1. Dans votre compte MediaLab Works, ouvrez Licenses → Jellyfin plugin repository et cliquez sur Create address. Copiez-la : elle est privée (elle contient un jeton), ne la partagez pas ; vous pouvez la régénérer ou la révoquer à tout moment.
  2. Dans Jellyfin, ouvrez Dashboard → Plugins → Repositories, cliquez sur +, donnez-lui un nom (par exemple MediaLab Works), collez l’adresse et enregistrez.
  3. Dans Dashboard → Plugins → Catalog, trouvez Transcode Doctor by MediaLab, cliquez sur Install, puis redémarrez Jellyfin.

Le dépôt ne liste que les plugins que vos licences couvrent, et seulement les versions qu’elles autorisent. Ses liens de téléchargement sont signés et expirent au bout de quelques heures, Jellyfin lit donc toujours une liste à jour.

Depuis le catalogue public. https://medialab.works/jellyfin/manifest.json liste chaque plugin MediaLab Works publié avec sa version compilée publique ; medialab Server l’ajoute tout seul. Vous pouvez l’ajouter de la même façon pour installer un plugin avant d’avoir une clé : le plugin demande alors la licence, ou démarre l’essai, sur sa page License. Avec une licence à vie dont la période de mises à jour est terminée, restez sur votre dépôt privé, qui ne propose que les versions que votre licence autorise.

Manuellement, depuis un fichier zip.

  1. Dans Account → Licenses, téléchargez jf-transcodedoctor_x.y.z.zip (le SHA-256 du fichier est affiché à côté du bouton).
  2. Extrayez-le dans un nouveau dossier Transcode Doctor by MediaLab_x.y.z.0 à l’intérieur du dossier des plugins Jellyfin :
    • Linux (paquet) : /var/lib/jellyfin/plugins/
    • Docker (image officielle) : /config/plugins/ dans le volume de configuration
    • Windows : %ProgramData%\Jellyfin\Server\plugins\
  3. Redémarrez Jellyfin.

Activation de la licence

  1. Ouvrez la page du plugin dans Dashboard → Plugins → Transcode Doctor by MediaLab et cliquez sur License.
  2. Collez votre clé de licence et cliquez sur Activate with key. Le plugin contacte le serveur de licences, lie la clé à ce serveur Jellyfin et affiche la licence comme Active.
  3. Pas encore de clé ? Sur la même page, saisissez votre e-mail et démarrez l’essai gratuit de 30 jours (carte requise, rien à payer aujourd’hui) ou achetez une licence ; le plugin s’active tout seul une fois le paiement effectué.

La licence est vérifiée une fois par jour et à chaque démarrage de Jellyfin. Sans internet, le plugin continue de fonctionner pendant 7 jours après la dernière vérification réussie. Sans licence valide, le plugin cesse son travail et seule sa page License continue de fonctionner (essai, clé, renouvellement) ; rien n’est supprimé et tout reprend dès que la licence redevient valide. Move license (release this server) sur la même page libère la clé pour un autre serveur.

Mises à jour et retour en arrière

  • Depuis le dépôt : Jellyfin affiche les nouvelles versions dans Dashboard → Plugins et peut mettre à jour le plugin automatiquement ; redémarrez Jellyfin pour charger la nouvelle version.
  • Depuis la page License du plugin : avec une licence valide, Install update installe la version la plus récente que votre licence autorise et Roll back to x.y.z revient à la version précédente (par exemple si quelque chose a cessé de fonctionner après une mise à jour). Redémarrez Jellyfin après l’une ou l’autre. Les deux paquets sont vérifiés par rapport à l’empreinte publiée par le serveur de licences.
  • Une licence à vie reçoit les versions publiées pendant sa période de mises à jour ; après celle-ci, le plugin continue de fonctionner avec la dernière version qu’il peut utiliser.
  • Après Roll back to x.y.z, la mise à jour automatique de Jellyfin pour ce plugin est désactivée jusqu’au prochain Install update sur la page License, la tâche planifiée Update Plugins (au démarrage et chaque jour) ne ramène donc pas la version plus récente.
  • Licence à vie et mises à jour automatiques. Le catalogue public Jellyfin (https://medialab.works/jellyfin/manifest.json) propose toujours la version la plus récente. Quand la période de mises à jour d’une licence à vie est terminée, les versions publiées après celle-ci ne sont pas licenciées : si les mises à jour automatiques des plugins de Jellyfin en installent une, le plugin s’arrête avec « version not licensed » jusqu’à ce que vous reveniez avec Roll back to x.y.z sur sa page License ou achetiez un pass de mises à jour. Pour l’éviter, ne laissez pas Jellyfin mettre à jour ce plugin automatiquement : ajoutez votre dépôt de plugins privé, qui ne propose que les versions que votre licence autorise, à la place du catalogue public, ou retirez les déclencheurs de la tâche planifiée Update Plugins dans Dashboard → Scheduled Tasks (cela arrête les mises à jour automatiques pour chaque plugin).

Code source

Le code source GPL-3.0 de chaque version se trouve dans Account → Licenses (Source code), à côté du téléchargement, sous forme d’archive .tar.gz créée depuis le commit exact de cette version.

Configuration

Ouvrez Transcode Doctor dans le menu du tableau de bord Jellyfin.

  1. Diagnostic de l’accélération matérielle : cliquez sur Run the tests. Le plugin vérifie ffmpeg, la carte NVIDIA et les périphériques /dev/dri, crée quelques clips de test courts avec ffmpeg dans le dossier de cache de Jellyfin, puis essaie chaque méthode (NVIDIA NVENC, Intel QuickSync, VA-API) en décodage H.264, HEVC, HEVC 10 bits, MPEG-2, VP9 et AV1 et en encodage H.264 et HEVC. Chaque test dure au plus une minute ; le tableau montre ce qui fonctionne et à quelle vitesse.
  2. Problèmes : si quelque chose bloque l’accélération, la page indique quoi et comment le corriger. Le cas le plus courant est Jellyfin sans accès à /dev/dri/renderD128 : exécutez la commande affichée (elle ajoute l’utilisateur Jellyfin au groupe render), redémarrez Jellyfin et relancez les tests. Dans Docker, transmettez le périphérique GPU au conteneur.
  3. Recommendation : la méthode qui a réussi le plus de tests, les codecs de décodage, l’encodage matériel et environ combien de transcodes 1080p peuvent tourner en même temps, à côté de vos paramètres actuels.
  4. Apply the settings écrit la recommandation dans Dashboard → Playback → Transcoding : la méthode d’accélération, les codecs de décodage matériel, le décodage HEVC 10 bits, l’encodage matériel et le périphérique VA-API / QuickSync. Le décodage VC-1, VP8 et MPEG-4, qui ne peut pas être testé, reste tel que vous l’avez réglé ; l’encodage HEVC est désactivé s’il a échoué et n’est jamais activé par le plugin.
  5. Restore the previous settings rétablit les paramètres de transcodage enregistrés juste avant la dernière application. Vous pouvez aussi toujours les modifier à la main dans Jellyfin.

Utilisation quotidienne

  • Why it transcodes liste les lectures transcodées récentes : quand, qui, quoi, les raisons en langage clair avec ce qui peut être fait, et si le GPU ou le CPU a fait le travail. « CPU (GPU not used) » pour une lecture alors que l’accélération est configurée signifie que la carte n’a pas été utilisée.
  • Quand un transcodage vidéo tourne sur le CPU alors que l’accélération est configurée, le plugin écrit une entrée dans le journal d’activité de Jellyfin.
  • Relancez les tests après un changement de pilote, de Jellyfin ou de matériel.

Dépannage

  • Le diagnostic a échoué : ffmpeg introuvable : installez jellyfin-ffmpeg et indiquez son chemin dans Dashboard → Playback → Transcoding.
  • Chaque test VA-API / QuickSync échoue : consultez la liste des problèmes ; l’utilisateur Jellyfin manque généralement dans le groupe render ou le périphérique n’est pas transmis au conteneur Docker.
  • Chaque test NVENC échoue : le pilote NVIDIA manque ou nvidia-smi ne répond pas.
  • Aucune méthode matérielle n’a réussi les tests : le transcodage reste sur le CPU ; rien n’est appliqué.

La version compilée est publique ; l’utilisation du plugin nécessite une licence ou l’essai gratuit de 30 jours.