Docker: Jellyfin y Aceleración por hardware VAAPI

2 minutos de lectura

Ya escribí un articulo donde explicaba como tener aceleración por hardware para la transcodificación de vídeo usando FFMPpeg en un contenedor docker de Jellyfin, en ese articulo expliqué como utilizar Intel Quicksync para ello.

El rendimiento no fue el esperado, es verdad que utilizaba la transcodificacion y que la reproducción de vídeo era algo mas fluida pero como digo, no me terminaba de convencer, así que después de bucear por Reddit, recomendaban utilizar VAAPI para la transcodificacion.

Introducción

Si ya creaste el contenedor siguiendo las instrucciones del anterior articulo puedes saltar al punto de la configuración, si no, o es la primera vez que lees esta serie de artículos, deberás comprobar que dispositivos de vídeo tienes disponibles:

1sudo lshw -c video

Y para la creación del contenedor has de pasarle los parámetros:

1--device /dev/dri/renderD128:/dev/dri/renderD128 \
2--device /dev/dri/card0:/dev/dri/card0 \

Creación del contenedor

Cuando tengas claro que dispositivos de vídeo tienes disponibles en tu sistema, podemos crear el contenedor, en vez de utilizar la imagen oficial, utilizaré la de Linuxserver:

 1docker create \
 2  --name=jellyfin-ls \
 3  -e PUID=1000 \
 4  -e PGID=1000 \
 5  -e TZ=Europe/Madrid \
 6  -p 8096:8096 \
 7  -v /srv/jellyfin-ls/config/:/config \
 8  -v /srv/jellyfin-ls/cache:/cache \
 9  --device /dev/dri/renderD128:/dev/dri/renderD128 \
10  --device /dev/dri/card0:/dev/dri/card0 \
11  --restart always \
12  linuxserver/jellyfin:amd64-latest

Habilitando la aceleración

Para terminar debemos de configurar la aceleración por hardware, con un usuario con privilegios de administrador, entramos en el Panel de Control -> Reproducción -> Video Acceleration API (VAAPI) y selecciona tu dispositivo VAAPI

Verificando el funcionamiento

Para comprobar que utilizamos las librerías correctas podemos examinar el log del programa, que podemos encontrar en Avanzaco -> Registros y buscar un log con la entrada ffmpeg-transcode-xxxx

Y buscamos la cadena de texto Stream mapping

En la captura de pantalla vemos que cuando se realiza la transcodificación esta utilizado VAAPI

Espero que te haya gustado, pasa un buen día… :penguin: