Symptôme
HandBrake ne traite pas automatiquement les fichiers placés dans le dossier /watch, avec le message suivant dans les logs :
[autovideoconverter] Skipping video '/watch/fichier.mkv' (hash): has been processed by another instance.
Le fichier n’apparaît pas dans l’interface GUI et la conversion ne se lance pas.
Cause
HandBrake conserve un historique des fichiers déjà traités dans des fichiers de tracking situés dans /config/. Il considère que le fichier a déjà été converti et refuse de le retraiter, même si :
- Le fichier de sortie n’existe plus
- Le conteneur a été redémarré
- Le serveur a été redémarré
Solution rapide
# Supprimer les fichiers de tracking
docker exec HandBrake rm -f /config/successful_conversions
docker exec HandBrake rm -f /config/ignored_conversion
docker exec HandBrake rm -f /config/failed_conversions
# Redémarrer le conteneur
docker restart HandBrake
# Surveiller les logs pour vérifier le démarrage de la conversion
docker logs -f HandBrake
Diagnostic
1. Vérifier les logs du conteneur
docker logs HandBrake --tail 100
Recherchez les lignes contenant [autovideoconverter].
2. Vérifier si le fichier est visible depuis le conteneur
docker exec HandBrake ls -la /watch
3. Vérifier l’historique des conversions
docker exec HandBrake cat /config/successful_conversions
docker exec HandBrake cat /config/ignored_conversion
Si votre fichier apparaît dans l’un de ces fichiers avec son hash MD5, c’est la confirmation du problème.
Autres causes possibles
Fichiers .lock orphelins
Si vous voyez des dossiers .nomdefichier.mkv.lock dans /watch, supprimez-les :
rm -rf /mnt/freebox/nvme/Téléchargements/.*.lock
docker restart HandBrake
Ces fichiers de verrouillage apparaissent quand :
- Le conteneur crash pendant une conversion
- Le serveur est redémarré pendant un encodage
- Il y a une interruption réseau avec le montage distant
Permissions incorrectes
Vérifiez que le conteneur (USER_ID: 1000) a accès aux fichiers :
ls -la /mnt/freebox/nvme/Téléchargements/
Solution alternative : Renommer le fichier
Si vous ne voulez pas supprimer tout l’historique, renommez simplement le fichier :
mv /mnt/freebox/nvme/Téléchargements/film.mkv /mnt/freebox/nvme/Téléchargements/film-2.mkv
docker restart HandBrake
Le nouveau nom génèrera un hash MD5 différent et sera traité comme un nouveau fichier.
Prévention
Option 1 : Conserver les fichiers sources
Modifiez votre docker-compose.yml pour garder les fichiers originaux après conversion :
environment:
AUTOMATED_CONVERSION_KEEP_SOURCE: 1 # Au lieu de 0
Cela vous permet de vérifier la conversion avant de supprimer manuellement le fichier source.
Option 2 : Nettoyage automatique périodique
Créez un script de nettoyage hebdomadaire :
#!/bin/bash
# cleanup-handbrake.sh
docker exec HandBrake rm -f /config/successful_conversions
docker exec HandBrake rm -f /config/ignored_conversion
docker exec HandBrake rm -f /config/failed_conversions
echo "Historique HandBrake nettoyé"
Ajoutez-le dans votre crontab :
0 3 * * 0 /chemin/vers/cleanup-handbrake.sh
Bonus : Activer l’accélération matérielle (Intel Quick Sync)
Si vous avez un processeur Intel compatible (comme le i9-12900H), activez l’accélération GPU pour des conversions beaucoup plus rapides :
services:
handbrake:
# ... votre config existante ...
devices:
- /dev/dri:/dev/dri
Puis redémarrez la stack :
docker-compose down
docker-compose up -d
Références
- Image Docker : jlesage/handbrake
- Documentation :
/config/hooks/contient des exemples de scripts de personnalisation
Dernière mise à jour : Février 2026