Handbrake en tu servidor NAS

2021-06-14

Índice

  1. Docker
  2. Docker-Compose
  3. QSV

En anteriores artículos hemos visto varios programas para poder transcodificar vídeos en nuestro servidor NAS, pero si los anteriores programas no te convencen o no son de tu agrado, tenemos otra solución, handdrake, el famoso software de transcodificación de vídeo multiplataforma y open source.

Haciendo uso de docker podemos instarlo en nuestro servidor (Synology, Raspberry, minipc, etc)

Docker

Podemos hacer la instalación utilizando la imagen de jlesage/handbrake

docker run -d \
       --name=handbrake \
       -p 5800:5800 \
       -p USER_ID = 100
       -p GROUP_ID = 101
       -v /volume1/docker/handbrake/:/config:rw \
       -v /volume1/video:/storage:ro \
       -v /volume1/descargas/input:/watch:rw \
       -v /volume1/descargas/output:/output:rw \
       jlesage/handbrake

Docker-Compose

Si prefieres hacerlo con docker-compose

version: '3'
services:
  handbrake:
   container_name: tdarr
   image: jlesage/handbrake
   build: .
   ports:
     - "5800:5800"
   volumes:
     - "/volume1/docker/handbrake/:/config:rw"
     - "/volume1/video:/storage:ro"
     - "/volume1/descargas/input:/watch:rw"
     - "/volume1/descargas/output:/output:rw"
   environment:
     - TZ=Europe/Madrid
     - USER_ID=1026
     - GROUP_ID=100

Ahora solo necesitas abrir tu navegador web favorito en el puerto 5800 o en el que hayas configurado para poder empezar a trabajar con handdrake

Esta es una configuración bastante sencilla pero en el repositorio de jlesage/handbrake puedes ver todas las opciones disponibles

img

Tambión está disponible un modo totalmente automatizado: colocas los archivos en una carpeta de vigilancia y handdrake los procesa automáticamente.

QSV

Si dispones de un procesador Intel puedes utilizar Intel Quick Sync Video ya que handdrake pueda utilizar QSV, el dispositivo /dev/dri debe estar expuesto al contenedor. Esto se hace agregando el parámetro --device/dev/dri al comando docker run.

docker run -d \
       --name=handbrake \
       -p 5800:5800 \
       -p USER_ID = 1026
       -p GROUP_ID = 101
       -v /volume1/docker/handbrake/:/config:rw \
       -v /volume1/video:/storage:ro \
       -v /volume1/descargas/input:/watch:rw \
       -v /volume1/descargas/output:/output:rw \
       --device /dev/dri/renderD128:/dev/dri/renderD128 \
       --device /dev/dri/card0:/dev/dri/card0 \
       jlesage/handbrake

Cuando QSV está habilitado correctamente, handdrake ofrece el siguiente codificador de vídeo:

img

Si este codificador no aparece en la lista, puede que necesites alguna configuración adicional, como ejecutar el contenedor con permisos root (USER_ID = 0)

img

Tambión podemos dar en el host permisos de lectura/escritura para todos en el dispositivo /dev/dri:

sudo chmod a + wr /dev/dri/*

O cambiar en el host el grupo que posee el dispositivo /dev/dri. Por ejemplo, para cambiar el grupo a video:

sudo chown root:video /dev/dri /*

Espero que te haya gustado, pasa un gran día.


Ingrese la dirección de su instancia