Ir al contenido principal
Traducción Beta No Oficial

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

nota

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)
...
precaución

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 VendorWindowsmacOSLinux
AMDAMF (Windows)VideoToolboxVAAPI (AMD)
AppleN/AVideoToolboxN/A
IntelQSV (Windows)VideoToolboxQSV (Linux)
NvidiaNVENC (Windows)N/ANVENC (Linux)
RockchipN/AN/ARKMPP

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.

nota

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.

nota
  • 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

    consejo

    La 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

    consejo

    Las 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é

    consejo

    En 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

    consejo

    Los 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.