Jellyfin no detecta tu tarjeta gráfica por sí solo: el método de aceleración y los códecs se eligen a mano, y una elección equivocada o un permiso que falta devuelven la transcodificación al procesador sin ningún aviso. Transcode Doctor prueba lo que tu servidor puede hacer de verdad, te dice qué falta y aplica los ajustes que funcionan.
Qué hace
- Diagnóstico de la aceleración por hardware: comprueba ffmpeg, la tarjeta NVIDIA y los dispositivos
/dev/dri(con los permisos del proceso de Jellyfin) y luego ejecuta breves transcodificaciones de prueba en el servidor con cada método: NVIDIA NVENC, Intel QuickSync y VA-API (Intel / AMD). Cada método se prueba en la decodificación de H.264, HEVC, HEVC 10 bits, MPEG-2 (TV), VP9 y AV1 y en la codificación de H.264 y HEVC, con la velocidad medida. ffmpeg genera los clips de prueba en la carpeta de caché de Jellyfin; tus archivos multimedia no se tocan. - Problemas con la solución exacta: por ejemplo «Jellyfin no puede acceder a /dev/dri/renderD128 —
sudo usermod -aG render jellyfiny después reinicia Jellyfin», una tarjeta NVIDIA cuyo controlador no responde o ffmpeg ausente en la ruta configurada. - Recomendación y aplicación con un clic: el método que mejor funciona, los códecs de decodificación que superaron la prueba, la codificación por hardware y una estimación de cuántas transcodificaciones 1080p pueden ejecutarse a la vez. Apply the settings las escribe en los ajustes de transcodificación de Jellyfin; no cambia nada hasta que haces clic.
- Restauración con un clic: antes de aplicar, el plugin guarda tus ajustes de transcodificación anteriores; Restore the previous settings los devuelve exactamente.
- Por qué transcodifica: las reproducciones transcodificadas recientes, cada una con los motivos de Jellyfin explicados en palabras sencillas y lo que se puede hacer (por ejemplo, subtítulos PGS incrustados, HDR en una pantalla SDR, el límite de tasa de bits de la app). Se guardan hasta 500 reproducciones.
- Alerta de recurso al procesador: una entrada en el registro de actividad de Jellyfin cuando una transcodificación de vídeo se ejecuta en el procesador aunque la aceleración por hardware esté configurada.
- En inglés y en rumano.
Qué cambia en Jellyfin
Solo cuando haces clic en Apply the settings, y solo en Dashboard → Playback → Transcoding: el método de aceleración por hardware, los códecs de decodificación por hardware (los que superaron la prueba; VC-1, VP8 y MPEG-4, que no se pueden probar, se quedan como los configuraste), la decodificación HEVC de 10 bits, la codificación por hardware y el dispositivo VA-API / QuickSync. La codificación HEVC se desactiva si no superó la prueba; el plugin nunca la activa. La restauración devuelve los ajustes de antes de la última aplicación.
Requisitos
- Jellyfin Server 12.2 o posterior, con jellyfin-ffmpeg (la compilación de ffmpeg que viene con Jellyfin).
- Una tarjeta gráfica NVIDIA, Intel o AMD con su controlador: para NVIDIA, el controlador con
nvidia-smi; para Intel y AMD, un dispositivo de renderizado/dev/drique el usuario de Jellyfin pueda abrir (normalmente a través del gruporender). En Docker, el dispositivo debe pasarse al contenedor.
Preguntas frecuentes
¿Por qué Jellyfin transcodifica en el procesador aunque mi servidor tenga GPU? Normalmente el método de aceleración o los códecs están mal configurados, o el usuario de Jellyfin no tiene acceso a la GPU. Transcode Doctor encuentra cuál es el caso y corrige los ajustes. Consulta la guía.
¿Puede estropear mi transcodificación? Solo aplica ajustes que superaron las pruebas en tu servidor, después de que hagas clic, y guarda los anteriores para restaurarlos con un clic.
Qué envía y adónde
- Ningún contacto externo aparte del cliente de licencias. No descarga archivos de prueba: los clips de muestra (H.264, HEVC, HEVC 10 bits, MPEG-2, VP9, AV1) se generan localmente con jellyfin-ffmpeg, en la carpeta de caché del servidor (
transcode-doctor/). Tus archivos multimedia no se tocan. - Procesos locales: jellyfin-ffmpeg,
nvidia-smi(solo si hay una tarjeta NVIDIA), una comprobación de acceso a/dev/dri/renderD*. - El diagnóstico se ejecuta solo cuando haces clic en el botón. La vigilancia de sesiones (cada 15 s, solo con licencia) lee la información de transcodificación de las reproducciones activas; la alerta de «recurso al procesador» (activada por defecto) solo escribe en el registro de actividad local.
- «Apply» (un clic, iniciado solo por el administrador) guarda los ajustes de aceleración por hardware recomendados, después de guardar los antiguos en
state/encoding-before.json; «Revert» los restaura. - Además, el cliente de licencias, el mismo en todos los plugins: consulta Licencias y privacidad en nuestros plugins.
Guardado localmente (state/ en la carpeta de datos del plugin): report.json (último diagnóstico: ruta de ffmpeg, GPU, resultados), history.json (las últimas 500 reproducciones transcodificadas: hora, usuario, app, dispositivo, título, motivos de la transcodificación, hardware/procesador), clips sintéticos en la caché.
Nunca se envía: nada de lo anterior sale del servidor.
Compatibilidad con clientes
- La vigilancia y las alertas funcionan en el servidor: 🟢 con cualquier cliente que provoque una transcodificación.
- Interfaz: solo la página de administración — Jellyfin Web / medialab Server ✅ (comprobado visualmente; sin prueba automática de extremo a extremo).
- Hardware probado: NVIDIA (NVENC) en una Quadro M2000 real ✅. Intel QSV / VA-API: detectados y probados por el plugin, ❔ no probado en hardware real. AMD AMF, Apple VideoToolbox, Rockchip: no compatibles.
- Las comprobaciones están orientadas a Linux (/dev/dri, nvidia-smi, grupo
render); Windows/macOS: ❔ no probado.
Leyenda: ✅ verificado (prueba de extremo a extremo o en el dispositivo) · 🟢 en el servidor, funciona con cualquier cliente (por diseño, sin prueba específica para cada cliente) · ➖ no aplicable · ❔ no probado.
Licencia
El plugin es de código abierto (GPL-3.0). Las compilaciones listas para instalar son públicas, igual que el código fuente. Lo que compras es la suscripción: la licencia para usar el plugin en un servidor Jellyfin, las actualizaciones que incluye tu plan y el soporte: todas las actualizaciones mientras la suscripción esté activa, a través de tu repositorio privado de plugins, y ayuda cuando algo no funciona. El plugin comprueba la clave de suscripción una vez al día; sin una suscripción válida se detiene hasta que renuevas (no se borra nada). Mensual, anual o de por vida (la de por vida incluye un año de actualizaciones), o incluido en el paquete para Jellyfin. 30 días de prueba gratis.
Código fuente. Para cada versión, el código fuente correspondiente completo es público, junto a la compilación, en el registro de cambios, y también en tu cuenta (Cuenta → Licencias, Código fuente); cada archivo incluye el texto completo de la GPL-3.0 (LICENSE). Si necesitas el código fuente de una versión que ya no puedes descargar, pídenoslo y te lo enviamos. Consulta la sección 10 del EULA.
Transcode Doctor es código propio, escrito por MediaLab Works para Jellyfin; no contiene código de terceros.
