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
| Elemento | Valor |
|---|---|
| CPU / GPU | Intel Core i5-13500, Intel UHD 770 integrada (GPU compartida) |
| Máquina virtual | Linux (Debian 13), 4 vCPU, 8 GB de RAM, kernel 7.3 |
| ffmpeg | jellyfin-ffmpeg 7.1.4, del repositorio oficial de Jellyfin |
| Controlador multimedia | Intel iHD 25.4.6 (decodificación VAProfileAV1Profile0 compatible) |
| Fuentes | 30 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ón | Velocidad | CPU 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ón | Velocidad | CPU usada |
|---|---|---|
| AV1 4K 10 bits → H.264 1080p, todo en la GPU | 10,3x | 29 % de un núcleo |
AV1 4K HDR10 → H.264 1080p SDR con tone mapping (vpp_qsv) | 4,6x | — |
| AV1 1080p → H.264 720p | 9,2x | 19 % de un núcleo |
| AV1 1080p → HEVC 1080p | 8,5x | 18 % de un núcleo |
| AV1 4K decodificado en la CPU, H.264 codificado en la GPU (para comparar) | 3,8x | 271 % |
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áneos | Flujo más lento | ¿Tiempo real? |
|---|---|---|
| 1 | 4,6x | sí |
| 4 | 1,37x | sí |
| 5 | 1,10x | sí |
| 6 | 0,92x | justo por debajo |
| 8 | 0,69x | no |
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.