[Slim Video #3] Estimation en 30s, TUI Curses et 14 Go libérés : Le grand bilan

Dans les deux premiers épisodes, nous avons vu comment éviter les pièges de compression (Épisode 1) et comment contourner la lenteur des disques durs USB grâce au mode SSD Staging (Épisode 2).

Il restait une question fondamentale d'expérience utilisateur : comment savoir à l'avance si un film vaut la peine d'être converti sans attendre la fin d'un batch de 10 heures ?


🧠 L'estimation prédictive en 30 secondes

Dans beaucoup d'outils de transcodage, vous lancez un traitement à l'aveugle. Si le fichier source était déjà très compressé, vous perdez du temps CPU pour gagner à peine 2%.

Dans slim_video/estimator.py, nous avons implémenté un système d'échantillonnage prédictif :

  1. Extraction d'un échantillon médian : Slim Video extrait une portion de 30 secondes au milieu de la vidéo (évitant le générique de début souvent statique ou noir).
  2. Encodage en mémoire/temporaire : L'échantillon est réencodé avec le profil VideoToolbox cible.
  3. Extrapolation du ratio de bitrate : En comparant le débit de l'échantillon source et du résultat HEVC, on extrapole la taille finale avec une précision supérieure à 95%.
  4. Filtrage par seuil de rentabilité : Si le gain estimé est inférieur à un seuil paramétrable (ex: 15%), le fichier est ignoré pour concentrer les ressources là où le gain est massif.
 ── Slim Video — Rapport Prédictif ──────────────────────────────────────────
 Fichier                    Codec Source   Taille Orig.   Estimé H.265   Gain
 ────────────────────────────────────────────────────────────────────────────
 Rox et Rouky.mkv           H.264 (AVC)    2.70 Go        1.28 Go        -52.6% ✅
 Soul.mkv                   H.264 (AVC)    1.63 Go        1.61 Go        -0.9%  ⏭️ Ignoré
 ────────────────────────────────────────────────────────────────────────────

💻 Une interface TUI Curses fluide & intuitive

Pour piloter l'arborescence de son serveur sans se battre avec des chemins de fichiers interminables, Slim Video intègre un explorateur terminal complet dans slim_video/tree_selector.py :

  • Navigation Vim : Touches j/k pour descendre/monter, h/l pour plier/déplier les répertoires.
  • Sélection récursive : Espace pour cocher/décocher un dossier entier et tous ses sous-fichiers d'un coup.
  • Barres de progression Rich : Suivi temps réel du fichier en cours et barre globale de batch avec estimation précise du temps restant (ETA).
  • Notifications macOS natives : Envoi d'une notification push sur le bureau Mac dès que le batch est terminé avec le récapitulatif des gigas libérés.

📊 La preuve par l'image : 31 films Disney & 14.45 Go libérés

Voici une capture d'écran réelle issue d'une session de production exécutée sur un dossier de 31 films Disney HD sur mon serveur :

Rapport Terminal Slim Video — Batch Transcodage 31 fichiers Disney

Analyse des résultats chiffrés :

  • Volume initial : 47.09 Go (31 fichiers vidéo H.264).
  • Volume final HEVC : 32.64 Go.
  • Espace disque net libéré : 14.45 Go (-30.7%).
  • Taux de succès : 31/31 réussis (0 échec).
  • Vitesse de traitement : des cadences allant de 6.4x à 11.9x temps réel (soit jusqu'à 300+ fps en 1080p).

Sur des classiques d'animation comme Rox et Rouky (-52.6%, passant de 2.70 Go à 1.28 Go) ou les courts-métrages (Lorenzo à -50.1%), la réduction de stockage est colossale sans aucune différence visuelle sur une télévision 4K.


💡 Rétrospective : Ce que le Vibe Coding m'a appris

Construire un outil complet comme slim-video en alternant prompt IA et sessions de dev a été une expérience ultra enrichissante :

graph TD
    A[Vibe Coding avec l'IA] -->|Forces| B[Scaffolding CLI rapide, Pydantic, Tests unitaires 81%]
    A -->|Faiblesses| C[Ignorance de la physique hardware, I/O disque, process zombies]
    C -->|Rôle du Dev| D[SSD Staging, signal handling Unix, règles métier vidéo]
    B & D --> E[Outil de production robuste & pérenne]
  1. L'IA excelle pour scaffolder : Typer, Rich, la structure des modèles Pydantic v2 et une suite de 95 tests unitaires sous Pytest se mettent en place à une vitesse impressionnante.
  2. Le dev reste indispensable pour la physique du hardware : La gestion des disques USB, les subtilités de VideoToolbox, les pièges des codecs anciens et la gestion propre des signaux Unix nécessitent une vraie vision d'ingénieur.
  3. Le meilleur side-project est celui qui résout ton propre problème : Mon serveur Plex a retrouvé des centaines de gigas d'espace libre, et je n'ai toujours pas acheté de nouveau disque dur !

🔗 Liens & Ressources de la Série