Docker: Jellyfin y Aceleración por hardware VAAPI
2020-08-03
Índice
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.
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:
sudo lshw -c video
Y para la creación del contenedor has de pasarle los parámetros:
--device /dev/dri/renderD128:/dev/dri/renderD128 \
--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:
docker create \
--name=jellyfin-ls \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/Madrid \
-p 8096:8096 \
-v /srv/jellyfin-ls/config/:/config \
-v /srv/jellyfin-ls/cache:/cache \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
--device /dev/dri/card0:/dev/dri/card0 \
--restart always \
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… 🐧