Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Aceleración por Hardware
El servidor de Jellyfin puede descargar la transcodificación de video en tiempo real utilizando una tarjeta gráfica integrada o discreta (GPU) adecuada para acelerar estas cargas de trabajo de manera muy eficiente sin sobrecargar tu CPU.
Métodos de Aceleración Compatibles
El servidor de Jellyfin utiliza una versión modificada de FFmpeg como su transcodificador, llamada jellyfin-ffmpeg. Esto permite al servidor acceder a los códecs de video de función fija, procesadores de video e interfaces de computación GPGPU proporcionados por el fabricante de la GPU instalada y el sistema operativo.
Los métodos de aceleración por hardware de video (HWA) compatibles y validados son:
-
Intel Quick Sync Video (QSV)
-
NVIDIA NVDEC/NVENC (NVENC)
-
AMD Advanced Media Framework (AMF)
-
Intel/AMD Video Acceleration API (VA-API, solo Linux)
-
Apple Video Toolbox (solo macOS)
-
Rockchip RKMPP (solo Linux)
Aceleración Completa y Parcial
El proceso de transcodificación generalmente tiene múltiples etapas, que se pueden simplificar en:
-
Decodificación de video
-
Desentrelazado de video (opcional)
-
Escalado y conversión de formato de video (opcional)
-
Mapeo de tonos HDR/DV de video (opcional)
-
Incrustación de subtítulos en video (opcional)
-
Codificación de video
-
Transferencia cero (zero-copy) en las etapas anteriores
Algunas de estas etapas no pueden acelerarse por GPU debido a limitaciones de software, hardware o controladores.
La aceleración parcial puede resultar en mayor uso de CPU y menor velocidad de transcodificación.
Jellyfin soporta aceleración completa para:
-
GPUs Intel y Nvidia convencionales en Windows y Linux
-
GPUs AMD Polaris y posteriores en Linux mediante VA-API e interoperabilidad Vulkan
-
GPUs AMD antiguas en Windows
-
VPU Rockchip de RK3588/3588S
-
Intel y Apple Silicon en macOS 12 y superiores
Se recomienda encarecidamente usar jellyfin-ffmpeg con Jellyfin, que incluye el sufijo -Jellyfin en su cadena de versión.
$ /usr/lib/jellyfin-ffmpeg/ffmpeg
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
...
Usar binarios de FFmpeg descargados de otros lugares resultará en aceleración parcial.
Jellyfin-ffmpeg generalmente se incluye en nuestro paquete deb, imágenes oficiales de Docker e instaladores de Windows.
La única excepción es cuando se usa una instalación portable o una distribución no soportada, donde se requiere descargar y configurar manualmente en Jellyfin.
Configurar y Verificar la Aceleración por Hardware
Existen algunas preparaciones necesarias antes de habilitar la aceleración por hardware.
Los pasos de configuración específicos pueden variar según fabricantes de GPU, métodos de instalación y sistemas operativos.
En Linux puedes verificar las GPU disponibles con el comando lspci:
lspci -nn | grep -Ei "3d|display|vga"
O usando lshw:
lshw -C display
Consulta la siguiente tabla para elegir el mejor método de aceleración por hardware para tu equipo:
| GPU Vendor | Windows | macOS | Linux |
|---|---|---|---|
| AMD | AMF (Windows) | VideoToolbox | VAAPI (AMD) |
| Apple | N/A | VideoToolbox | N/A |
| Intel | QSV (Windows) | VideoToolbox | QSV (Linux) |
| Nvidia | NVENC (Windows) | N/A | NVENC (Linux) |
| Rockchip | N/A | N/A | RKMPP |
Aceleración por Hardware Remota
Si tu servidor Jellyfin no admite aceleración por hardware, pero tienes otra máquina que sí lo hace, puedes utilizar rffmpeg para delegar la transcodificación a otro equipo.
Actualmente solo disponible en Linux y requiere conexión SSH entre las máquinas, además de almacenamiento compartido para los medios y el directorio de datos de Jellyfin.
Mapeo de tono acelerado por hardware
Jellyfin admite mapeo de tono acelerado por hardware de HDR10 y HLG a SDR.
El mapeo de tono de Dolby Vision (P5 y P8) a SDR es compatible a partir de Jellyfin 10.8 y requiere jellyfin-ffmpeg 5.0.1-5 o superior.
-
El mapeo de tono HDR10 con Intel VPP es compatible en Intel QSV y VA-API en Linux.
-
VPP es preferido si ambas opciones de mapeo de tono están habilitadas.
-
Rockchip RKMPP sí admite mapeo de tono Dolby Vision en Jellyfin 10.11 y versiones posteriores.
Consejos para la aceleración por hardware
-
Evita videos H.264/AVC de 10 bits
consejoLa decodificación por hardware de video H.264/AVC de 10 bits (perfil High 10) no es compatible con ninguna GPU de Intel, NVIDIA o AMD. Solo es compatible con Apple Silicon y Rockchip. Jellyfin recurrirá a la decodificación por software cuando no haya un decodificador de hardware disponible. Considera actualizar estos videos a H.265/HEVC de 10 bits (perfil Main 10).
-
iGPU/APU: Memoria de doble canal preferida
consejoLas GPU integradas utilizan parte de la memoria del sistema como memoria de video, por lo que usar memoria de doble canal puede duplicar el ancho de banda de la memoria de video. Esto es útil en cargas de trabajo intensivas como el mapeo de tono HDR/DV por hardware.
-
Usa SSD o RamDisk para almacenamiento en caché
consejoEn GPU modernas, el rendimiento máximo de transcodificación de video puede verse limitado por la velocidad de E/S de tus discos duros. En este caso, puedes usar un SSD o RamDisk para almacenar en caché los segmentos temporales de video transcodificados.
-
Ajusta los presets del codificador para intercambiar calidad por velocidad
consejoLos presets del codificador de hardware afectan significativamente la velocidad de codificación. Puedes reducir este preset en el panel de control de Jellyfin para sacrificar calidad de codificación y maximizar la velocidad, o aumentarlo para optimizar la calidad en una GPU sobredimensionada.
Descontinuación del soporte de aceleración por hardware en Raspberry Pi
Jellyfin admitía previamente aceleración por hardware en Raspberry Pi mediante OpenMAX OMX en la versión 10.8, con soporte parcial mediante V4L2 en la 10.9. Sin embargo, este soporte nunca alcanzó el nivel de madurez observado en otros métodos de aceleración. Muchas operaciones recurrían a la CPU, que ya de por sí tiene bajo rendimiento, debido a la falta de aceleración por hardware completa. La situación empeoró con el lanzamiento de la última generación Raspberry Pi 5, que carece completamente de codificadores de hardware, haciendo inviable continuar con el desarrollo en esta plataforma.
Como resultado, lamentablemente debemos descontinuar el soporte de V4L2 para Raspberry Pi. Si bien podría seguir funcionando actualmente, futuras actualizaciones del kernel Linux o FFmpeg podrían romper este soporte, y es poco probable que solucionemos los problemas resultantes. Esta decisión podría revertirse si futuros modelos de Raspberry Pi reintroducen codificadores de hardware.