Daemon Python qui surveille une bibliothèque vidéo et réencode automatiquement les fichiers disproportionnellement volumineux par rapport à leur durée. Utilise FFmpeg avec NVENC et un mode qualité constante (-cq).
watch_dirs: répertoires surveilléscheck_interval_minutes: fréquencereference_max_size_gb/reference_duration_hours: budget de taille proportionnel à la durée (ex. 1 Go pour 2h)oversize_factor: seuil de dépassement pour déclencher le réencodage (ex. 1.3 = 30% au-dessus du budget)codec_video/preset_video/cq: encodage NVENC avec qualité constante (-cq). Le bitrate devient variable selon la complexité de la scène.preset_fallback/fallback_video: fallback CPU (libx265) avec preset séparé (medium).delete_original: false par défaut (garde l'original)codec_video:hevc_nvenc(GPU),h264_nvenc(GPU),libx265(CPU, taille minimale),libx264(CPU, rapide)preset_video:ultrafast,fast,medium,slow,veryslow(oup1..p7pour NVENC)preset_fallback: preset pour le codec de repli (ex.fastpourlibx264)cq: qualité constante (-cq) pour NVENC uniquement (ex.28) ; remplace-b:vsurhevc_nvenc/h264_nvenc- Cache (
state.json) : conservecodec_version(codec,preset,cq) pour permettre le retraitement si le profil change.
python3 autoresize_daemon.pycp autoresize.service ~/.config/systemd/user/
# ou /etc/systemd/system/ pour système
systemctl --user daemon-reload
systemctl --user enable --now autoresize.service
systemctl --user status autoresize.service
journalctl --user -u autoresize.service -fLe service démarre automatiquement au reboot si enable est fait.
Après avoir testé manuellement les vidéos réencodées (.reencoded.mkv), lancer :
python3 autoresize_daemon.py --cleanCela supprime les originaux trop gros et renomme les .reencoded.mkv en noms originaux. Ensuite, passer delete_original: true dans config.yaml pour automatiser le nettoyage directement lors du réencodage.
- Séparer
preset_video(NVENCp1..p7) etpreset_fallback(CPUfast/medium) : fait. - Ajouter
cqpour NVENC (-cq) au lieu de-b:v: fait (cq: 28dans config). - Explication
-cq: mode qualité constante (inverse du % qualité) ; plus le chiffre est bas, meilleure est la qualité et plus le fichier est gros (-cq 28≈ correct,-cq 22≈ très bon,-cq 18≈ excellent). NVENC respecte mieux-cqque-b:v. - Validation du fichier produit après encodage (
ffprobesur output) avant suppression de l'original. - Cache
state.json: ajouter version du codec (hevc_nvenc/p5/cq 28) pour permettre le retraitement si le profil change. - Remplacer le fallback
libx264parlibx265pour rester cohérent avec la stratégie HEVC. - Sécurité : remplacer suppression immédiate par un renommage atomique (
.original.mkv) + suppression différée (--clean). - Kodi : adapter le nettoyage (
moviesvstvshows) selon leswatch_dirs. - Limiter à un seul
ffmpegà la fois (pgrepdéjà en place) — conserver pour éviter la saturation GPU sur 1650 SUPER.