Docker: Jellyfin y Aceleración por hardware VAAPI

2020-08-03

Índice

  1. Creación del contenedor
  2. Habilitando la aceleración
  3. Verificando el funcionamiento

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

img

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

img

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

img

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

img

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


Ingrese la dirección de su instancia