Blog

AV1 en Jellyfin con Intel UHD 770: decodificación y transcodificación

AV1 medido con el ffmpeg de Jellyfin en una Intel UHD 770: decodificación 4K de 10 bits por hardware a 13,5x, HDR10 a SDR a 4,6x y 5 flujos 4K simultáneos.

AV1 en Jellyfin con una Intel UHD 770: velocidad de decodificación y transcodificación medida

Los archivos AV1 son cada vez más comunes, y muchos servidores Jellyfin siguen funcionando con una GPU integrada de Intel. La pregunta es sencilla: ¿puede una Intel UHD 770 con el AV1 en Jellyfin, y con cuántos flujos? Lo hemos medido con jellyfin-ffmpeg, la versión de ffmpeg que distribuye el propio Jellyfin.

Resultados en resumen

  • La decodificación AV1 se hace en la GPU: un archivo AV1 4K de 10 bits se decodifica a 13,5x el tiempo real usando alrededor del 13 % de un núcleo de CPU.
  • AV1 4K HDR a H.264 1080p con conversión HDR→SDR (tone mapping): 4,6x el tiempo real para un flujo.
  • 5 transcodificaciones 4K HDR→1080p SDR simultáneas se mantienen en tiempo real.
  • La codificación AV1 se hace en la CPU (por ejemplo con SVT-AV1), no en esta GPU. Para Jellyfin rara vez importa: los dispositivos que no reproducen AV1 reciben H.264 o HEVC, que codifica la GPU.

Condiciones de la prueba

ElementoValor
CPU / GPUIntel Core i5-13500, Intel UHD 770 integrada (GPU compartida)
Máquina virtualLinux (Debian 13), 4 vCPU, 8 GB de RAM, kernel 7.3
ffmpegjellyfin-ffmpeg 7.1.4, del repositorio oficial de Jellyfin
Controlador multimediaIntel iHD 25.4.6 (decodificación VAProfileAV1Profile0 compatible)
Fuentes30 s, 24 fps, codificadas con SVT-AV1 y grano de película añadido: 4K 10 bits marcada como HDR10 (PQ / BT.2020, unos 39 Mbit/s) y 1080p 8 bits

Los vídeos son sintéticos, así que una película real puede comportarse de forma algo distinta. Cada cifra es el valor speed= de ffmpeg: 1x significa tiempo real, 10x diez veces más rápido que la reproducción.

1. Decodificación AV1: GPU frente a CPU

AV1 4K 10 bits, solo decodificaciónVelocidadCPU usada
Decodificación por hardware (VA-API)13,5x (324 fps)13 % de un núcleo
Decodificación por software (dav1d, 4 vCPU)4,0x (97 fps)227 %

La decodificación por hardware es más de tres veces más rápida y deja la CPU casi libre, justo lo que se busca cuando Jellyfin, una base de datos y otros servicios comparten la misma máquina.

/usr/lib/jellyfin-ffmpeg/ffmpeg -vaapi_device /dev/dri/renderD128 \
  -hwaccel vaapi -hwaccel_output_format vaapi -i pelicula-av1.mkv -f null -

2. Transcodificar AV1 para los dispositivos que no lo reproducen

Es el caso habitual en Jellyfin: un televisor, un móvil antiguo o un navegador no reproduce AV1, así que Jellyfin lo convierte sobre la marcha. Hemos usado la misma cadena Quick Sync que Jellyfin (decodificación VA-API, escalado y codificación QSV).

TranscodificaciónVelocidadCPU usada
AV1 4K 10 bits → H.264 1080p, todo en la GPU10,3x29 % de un núcleo
AV1 4K HDR10 → H.264 1080p SDR con tone mapping (vpp_qsv)4,6x—
AV1 1080p → H.264 720p9,2x19 % de un núcleo
AV1 1080p → HEVC 1080p8,5x18 % de un núcleo
AV1 4K decodificado en la CPU, H.264 codificado en la GPU (para comparar)3,8x271 %

El tone mapping (convertir HDR10 a SDR para una pantalla sin HDR) es el paso más costoso: reduce la velocidad aproximadamente a la mitad. Comprobamos las etiquetas de color de la salida (BT.709) para asegurarnos de que se aplicaba de verdad.

/usr/lib/jellyfin-ffmpeg/ffmpeg \
  -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device qsv=qs@va -filter_hw_device qs \
  -hwaccel vaapi -hwaccel_output_format vaapi -i pelicula-av1-hdr10.mkv \
  -vf 'hwmap=derive_device=qsv,format=qsv,vpp_qsv=w=1920:h=1080:format=nv12:tonemap=1' \
  -c:v h264_qsv -preset veryfast -b:v 8M -c:a copy salida.mkv

3. ¿Cuántos flujos a la vez?

Varias transcodificaciones AV1 4K HDR10 → H.264 1080p SDR (con tone mapping) ejecutándose a la vez; la tabla muestra el flujo más lento:

Flujos simultáneosFlujo más lento¿Tiempo real?
14,6xsí
41,37xsí
51,10xsí
60,92xjusto por debajo
80,69xno

Cinco películas 4K HDR a la vez, cada una convertida a 1080p SDR: un límite holgado para un hogar o un grupo pequeño. Sin tone mapping (fuentes SDR o 1080p), la GPU aguanta muchos más.

4. ¿Y la codificación en AV1?

Si quieres que Jellyfin genere AV1 (por ejemplo, para ahorrar ancho de banda hacia un dispositivo compatible con AV1), la codificación se hace en la CPU con SVT-AV1, que es también como se crearon nuestros archivos de prueba. En la práctica Jellyfin rara vez lo necesita: reproduce el AV1 directamente en los dispositivos compatibles y envía H.264 o HEVC a los demás, ambos codificados en la GPU.

Qué significa para un servidor Jellyfin

  • Una biblioteca en AV1 no es ningún problema en una Intel UHD 770: la decodificación es por hardware y la CPU queda libre.
  • Cuenta con unas 5 transcodificaciones 4K HDR→SDR simultáneas, muchas más en 1080p.
  • Activa el tone mapping solo cuando haga falta (pantallas sin HDR): es el paso más costoso.

Ver también: transcodificación por hardware con Jellyfin y Plex, los comandos ffmpeg Quick Sync que funcionan y nuestra prueba de carga de la GPU compartida.

Pruébalo

Todos nuestros planes iGPU incluyen una Intel UHD 770 con VA-API y Quick Sync listos para usar: Jellyfin se instala en unos minutos y encuentra la GPU en /dev/dri/renderD128. Ver los planes, desde 14,99 € al mes.