Handbrake en tu servidor NAS

2 minutos de lectura

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

 1docker run -d \
 2       --name=handbrake \
 3       -p 5800:5800 \
 4       -p USER_ID = 100
 5       -p GROUP_ID = 101
 6       -v /volume1/docker/handbrake/:/config:rw \
 7       -v /volume1/video:/storage:ro \
 8       -v /volume1/descargas/input:/watch:rw \
 9       -v /volume1/descargas/output:/output:rw \
10       jlesage/handbrake

Docker-Compose

Si prefieres hacerlo con docker-compose

 1version: '3'
 2services:
 3  handbrake:
 4   container_name: tdarr
 5   image: jlesage/handbrake
 6   build: .
 7   ports:
 8     - "5800:5800"
 9   volumes:
10     - "/volume1/docker/handbrake/:/config:rw"
11     - "/volume1/video:/storage:ro"
12     - "/volume1/descargas/input:/watch:rw"
13     - "/volume1/descargas/output:/output:rw"
14   environment:
15     - TZ=Europe/Madrid
16     - USER_ID=1026
17     - 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

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.

 1docker run -d \
 2       --name=handbrake \
 3       -p 5800:5800 \
 4       -p USER_ID = 1026
 5       -p GROUP_ID = 101
 6       -v /volume1/docker/handbrake/:/config:rw \
 7       -v /volume1/video:/storage:ro \
 8       -v /volume1/descargas/input:/watch:rw \
 9       -v /volume1/descargas/output:/output:rw \
10       --device /dev/dri/renderD128:/dev/dri/renderD128 \
11       --device /dev/dri/card0:/dev/dri/card0 \
12       jlesage/handbrake

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

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)

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

1sudo 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:

1sudo chown root:video /dev/dri /*

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