Jellyfin ne détecte pas votre carte graphique tout seul : la méthode d’accélération et les codecs se choisissent à la main, et un mauvais choix ou une permission manquante renvoie le transcodage vers le processeur sans aucun avertissement. Transcode Doctor teste ce que votre serveur peut vraiment faire, vous dit ce qui manque et applique les paramètres qui fonctionnent.
Ce qu’il fait
- Diagnostic de l’accélération matérielle : vérifie ffmpeg, la carte NVIDIA et les périphériques
/dev/dri(avec les permissions du processus Jellyfin), puis exécute de courts transcodages de test sur le serveur avec chaque méthode — NVIDIA NVENC, Intel QuickSync et VA-API (Intel / AMD). Chaque méthode est testée en décodage H.264, HEVC, HEVC 10 bits, MPEG-2 (TV), VP9 et AV1 et en encodage H.264 et HEVC, avec la vitesse mesurée. Les clips de test sont générés par ffmpeg dans le dossier de cache de Jellyfin ; vos médias ne sont pas touchés. - Problèmes avec la correction exacte : par exemple « Jellyfin ne peut pas accéder à /dev/dri/renderD128 —
sudo usermod -aG render jellyfin, puis redémarrez Jellyfin », une carte NVIDIA dont le pilote ne répond pas, ou ffmpeg absent au chemin configuré. - Recommandation et application en un clic : la méthode qui fonctionne le mieux, les codecs de décodage qui ont réussi, l’encodage matériel et une estimation du nombre de transcodes 1080p qui peuvent tourner en même temps. Apply the settings les écrit dans les paramètres de transcodage de Jellyfin ; rien ne change tant que vous ne cliquez pas dessus.
- Rétablissement en un clic : avant l’application, le plugin enregistre vos paramètres de transcodage précédents ; Restore the previous settings les rétablit exactement.
- Pourquoi il transcode : les lectures transcodées récentes, chacune avec les raisons de Jellyfin expliquées en langage clair et ce qui peut être fait (par exemple des sous-titres PGS incrustés, du HDR sur un écran SDR, la limite de débit de l’application). Jusqu’à 500 lectures sont conservées.
- Alerte de repli sur le CPU : une entrée dans le journal d’activité de Jellyfin quand un transcodage vidéo tourne sur le processeur alors que l’accélération matérielle est configurée.
- En anglais et en roumain.
Ce qu’il change dans Jellyfin
Uniquement quand vous cliquez sur Apply the settings, et uniquement dans Dashboard → Playback → Transcoding : la méthode d’accélération matérielle, les codecs de décodage matériel (ceux qui ont réussi ; VC-1, VP8 et MPEG-4, qui ne peuvent pas être testés, restent tels que vous les avez réglés), le décodage HEVC 10 bits, l’encodage matériel et le périphérique VA-API / QuickSync. L’encodage HEVC est désactivé s’il a échoué au test ; le plugin ne l’active jamais. La restauration rétablit les paramètres d’avant la dernière application.
Prérequis
- Jellyfin Server 12.2 ou plus récent, avec jellyfin-ffmpeg (la version de ffmpeg fournie avec Jellyfin).
- Une carte graphique NVIDIA, Intel ou AMD avec son pilote : pour NVIDIA, le pilote avec
nvidia-smi; pour Intel et AMD, un périphérique de rendu/dev/drique l’utilisateur Jellyfin peut ouvrir (généralement via le grouperender). Dans Docker, le périphérique doit être transmis au conteneur.
Questions fréquentes
Pourquoi Jellyfin transcode-t-il sur le CPU alors que mon serveur a un GPU ? Généralement, la méthode d’accélération ou les codecs sont mal réglés, ou l’utilisateur Jellyfin n’a pas accès au GPU. Transcode Doctor trouve lequel et corrige les paramètres. Voir le guide.
Peut-il casser mon transcodage ? Il n’applique que des paramètres qui ont réussi les tests sur votre serveur, après un clic, et conserve les précédents pour un rétablissement en un clic.
Ce qu’il envoie et où
- Aucun contact externe en dehors du client de licence. Il ne télécharge aucun fichier de test : les clips d’exemple (H.264, HEVC, HEVC 10 bits, MPEG-2, VP9, AV1) sont générés localement avec jellyfin-ffmpeg, dans le dossier de cache du serveur (
transcode-doctor/). Vos fichiers multimédias ne sont pas touchés. - Processus locaux : jellyfin-ffmpeg,
nvidia-smi(seulement si une carte NVIDIA existe), une vérification d’accès sur/dev/dri/renderD*. - Le diagnostic ne s’exécute que quand vous cliquez sur le bouton. La surveillance des sessions (toutes les 15 s, sous licence uniquement) lit les informations de transcodage des lectures actives ; l’alerte « repli sur le CPU » (activée par défaut) n’écrit que dans le journal d’activité local.
- « Apply » (un clic, réservé à l’administrateur) enregistre les paramètres d’accélération matérielle recommandés, après avoir sauvegardé les anciens dans
state/encoding-before.json; « Revert » les rétablit. - Plus le client de licence, le même dans chaque plugin : voir Licences et confidentialité dans nos plugins.
Stocké localement (state/ dans le dossier de données du plugin) : report.json (dernier diagnostic : chemin de ffmpeg, GPU, résultats), history.json (les 500 dernières lectures transcodées : heure, utilisateur, application, appareil, titre, raisons du transcodage, matériel/CPU), clips synthétiques dans le cache.
Jamais envoyé : rien de ce qui précède ne quitte le serveur.
Compatibilité avec les clients
- La lecture et les alertes se font côté serveur : 🟢 fonctionne avec tout client qui déclenche un transcodage.
- Interface : page d’administration uniquement — Jellyfin Web / medialab Server ✅ (vérifié visuellement ; pas de test de bout en bout automatisé).
- Matériel testé : NVIDIA (NVENC) sur une vraie Quadro M2000 ✅. Intel QSV / VA-API : détectés et testés par le plugin, ❔ non testés sur du vrai matériel. AMD AMF, Apple VideoToolbox, Rockchip : non pris en charge.
- Les vérifications sont orientées Linux (/dev/dri, nvidia-smi, groupe
render) ; Windows/macOS : ❔ non testés.
Légende : ✅ vérifié (test de bout en bout ou sur l’appareil) · 🟢 côté serveur, fonctionne avec tout client (par conception, sans test propre à un client) · ➖ non applicable · ❔ non testé.
Licence
Le plugin est open source (GPL-3.0). Les versions compilées prêtes à installer sont publiques, comme le code source. Ce que vous achetez, c’est l’abonnement : la licence d’utilisation du plugin sur un serveur Jellyfin, les mises à jour incluses dans votre formule et le support : chaque mise à jour tant que l’abonnement est actif, via votre dépôt de plugins privé, et de l’aide quand quelque chose ne fonctionne pas. Le plugin vérifie la clé d’abonnement une fois par jour ; sans abonnement valide, il s’arrête jusqu’au renouvellement (rien n’est supprimé). Mensuel, annuel ou à vie (la licence à vie inclut un an de mises à jour), ou inclus dans le pack Jellyfin. Essai gratuit de 30 jours.
Code source. Pour chaque version, le code source complet correspondant est public, à côté de la version compilée, dans l’historique des versions, et aussi dans votre compte (Account → Licenses, Source code) ; chaque archive contient le texte intégral de la GPL-3.0 (LICENSE). Si vous avez besoin du code source d’une version que vous ne pouvez plus télécharger, demandez-le-nous et nous vous l’envoyons. Voir la section 10 de la CLUF.
Transcode Doctor est notre propre code, écrit par MediaLab Works pour Jellyfin ; il ne contient aucun code tiers.
