HandBrake est un outil populaire et puissant pour la conversion et la compression vidéo. Dans cet article, nous allons voir comment installer HandBrake en utilisant Docker Compose. Cette méthode est particulièrement avantageuse car elle simplifie la gestion des dépendances et l’isolation du service.
Prérequis
Avant de commencer, assurez-vous d’avoir Docker et Docker Compose installés sur votre système. Vous pouvez vérifier les installations en utilisant les commandes suivantes :
docker --version
docker-compose --version
Si vous n’avez pas encore installé Docker et Docker Compose, suivez les instructions disponibles sur le site officiel de Docker.
Configuration de Docker Compose
Nous allons utiliser le fichier docker-compose.yml
suivant pour configurer et lancer HandBrake. Ce fichier spécifie les paramètres nécessaires pour créer et exécuter le conteneur HandBrake.
version: "3.9"
services:
handbrake:
image: jlesage/handbrake:latest
container_name: HandBrake
hostname: handbrake
mem_limit: 4g
cpu_shares: 768
security_opt:
- no-new-privileges:true
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:5800
ports:
- 5800:5800
volumes:
- /volume1/docker/handbrake/config:/config:rw
- /volume1/docker/handbrake/storage:/storage:ro
- /volume1/docker/handbrake/watch:/watch:rw
- /volume1/docker/handbrake/output:/output:rw
environment:
USER_ID: 1026
GROUP_ID: 100
TZ: Europe/Paris
DARK_MODE: 1
VNC_LISTENING_PORT: -1
AUTOMATED_CONVERSION: 1
AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS: 5
AUTOMATED_CONVERSION_NO_GUI_PROGRESS: 0
LANG: fr_FR.UTF-8
HANDBRAKE_GUI: 1
AUTOMATED_CONVERSION_KEEP_SOURCE: 0
restart: on-failure:5
Étapes d’Installation
- Créer le fichier
docker-compose.yml
: Créez un répertoire pour votre configuration Docker et naviguez vers celui-ci.sh
mkdir -p ~/docker/handbrake
cd ~/docker/handbrake
Ensuite, créez et éditez le fichier docker-compose.yml
:
nano docker-compose.yml
Collez le contenu YAML ci-dessus dans ce fichier et enregistrez-le.
Configurer les répertoires de volume : Assurez-vous que les répertoires mentionnés dans les volumes existent sur votre système. Vous pouvez les créer avec les commandes suivantes :
mkdir -p /volume1/docker/handbrake/config
mkdir -p /volume1/docker/handbrake/storage
mkdir -p /volume1/docker/handbrake/watch
mkdir -p /volume1/docker/handbrake/output
Lancer le conteneur HandBrake : Depuis le répertoire contenant votre fichier docker-compose.yml
, exécutez la commande suivante pour démarrer HandBrake :
docker-compose up -d
Cette commande télécharge l’image Docker de HandBrake, crée et démarre le conteneur en arrière-plan.
Accéder à l’interface Web de HandBrake : Une fois le conteneur en cours d’exécution, ouvrez votre navigateur web et accédez à l’URL suivante :
http://localhost:5800
Vous devriez voir l’interface de HandBrake s’afficher.
Paramètres de Configuration
Le fichier docker-compose.yml
ci-dessus comprend plusieurs paramètres de configuration importants :
- Limite de mémoire et partages CPU :
mem_limit: 4g
: Limite la mémoire à 4 Go.cpu_shares: 768
: Assigne une part CPU relative de 768.
- Volumes :
/config
: Répertoire de configuration de HandBrake./storage
: Répertoire en lecture seule pour les fichiers source./watch
: Répertoire surveillé pour les nouvelles vidéos à convertir./output
: Répertoire de sortie pour les vidéos converties.
- Variables d’environnement :
USER_ID
etGROUP_ID
: Définissent l’utilisateur et le groupe pour les permissions des fichiers.TZ
: Configure le fuseau horaire.DARK_MODE
: Active le mode sombre.AUTOMATED_CONVERSION
: Active la conversion automatique des vidéos.LANG
: Définit la langue de l’interface en français.
Conclusion
En suivant ces étapes, vous devriez maintenant avoir HandBrake fonctionnant dans un conteneur Docker, prêt à convertir vos vidéos de manière efficace et sécurisée. Cette configuration vous offre une grande flexibilité et une gestion simplifiée, idéale pour des tâches de conversion vidéo automatisées. N’hésitez pas à ajuster les paramètres selon vos besoins spécifiques.
Bonne conversion vidéo !
Edit
J’ai récemment fait l’acquisition d’un mini PC Bmax B8 equipé d’un processeur i912900H avec 24 go de ram, spécifiquement pour le traitement vidéo avec Handbrake.
Je joint ci-dessous mon fichier Yaml (Docker-compose) pour en faire profiter la communauté.
services:
handbrake:
image: jlesage/handbrake:latest
container_name: HandBrake
hostname: handbrake
mem_limit: 20g
mem_reservation: 12g
cpus: « 19 »
cpu_shares: 1024
security_opt:
– no-new-privileges:true
healthcheck:
test: wget –no-verbose –tries=1 –spider http://localhost:5800
ports:
– 5800:5800
volumes:
– /home/ewfzapp/videos:/watch:rw
– /media/video:/output:rw
– /home/ewfzapp/docker/handbrake/config:/config:rw
– /home/ewfzapp/docker/storage:/storage:rw
environment:
USER_ID: 1000
GROUP_ID: 1000
TZ: Europe/Paris
DARK_MODE: 1
VNC_LISTENING_PORT: -1
AUTOMATED_CONVERSION: 1
AUTOMATED_CONVERSION_PRESET: « Fast 1080p30 »
AUTOMATED_CONVERSION_FORMAT: « mp4 »
AUTOMATED_CONVERSION_SOURCE_STABLE_TIME: 0
AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS: 5
AUTOMATED_CONVERSION_NO_GUI_PROGRESS: 0
AUTOMATED_CONVERSION_KEEP_SOURCE: 0
AUTOMATED_CONVERSION_OUTPUT_DIR: « /output »
AUTOMATED_CONVERSION_OUTPUT_SUBDIR: « SAME_AS_SRC »
AUTOMATED_CONVERSION_OVERWRITE_OUTPUT: 1
AUTOMATED_CONVERSION_RETRY_FAILED: 1
DISPLAY_WIDTH: 1280
DISPLAY_HEIGHT: 768
LANG: fr_FR.UTF-8
HANDBRAKE_GUI: 1
HANDBRAKE_DEBUG: 1
AUTOMATED_CONVERSION_CHECK_INTERVAL: 5
restart: always