montage-vidéo (routeur)
Vous montez une vidéo en exécutant de petits scripts spécialisés et en lisant leur sortie JSON, pas en regardant la vidéo. Consultez les images (planches contacts, imagettes pleine résolution) uniquement aux points de décision.
Quelle compétence
| L'utilisateur veut... | Compétence |
|---|---|
| découper un long enregistrement en clips, proposer des points de coupe, supprimer le début mort | auto-cut |
| du texte d'accroche / titre / "POV:" sur la vidéo | hook-overlay |
| des sous-titres, des légendes, une transcription, des coupes respectant les mots | captions |
| un volume sonore corrigé, des silences supprimés, des jonctions propres, des fondus croisés | audio-polish |
| une boucle parfaite, un GIF, un GIF mème, un autocollant | loops-gifs-stickers |
| savoir si un rendu est bon, une planche contact, une étape d'approbation | render-qc |
| la vidéo sur YouTube | youtube-publish |
Pipeline par défaut (enregistrement d'écran brut vers Short publié)
auto-cut -> hook-overlay -> captions -> audio-polish -> render-qc -> youtube-publish
suggérer, planche PNG + transcrire, supprimer vérifier, test à
approuver, superposition ASS, graver silence, planche blanc,
découper, (dernière loudnorm contact, uploader en
rogner étape (dernière l'utilisateur privé,
visuelle) étape audio) approuve registre
Tous les travaux ne nécessitent pas toutes les étapes : un clip musical ignore les sous-titres ; un GIF ignore la publication. Demandez si l'objectif n'est pas clair ; sinon énoncez le plan et exécutez-le.
Règles strictes (toutes les compétences)
- Ne jamais toucher à l'original. Les sorties vont dans
edit/à côté de la source (les scripts le font par défaut). - Planifier, puis couper. Proposer les points de coupe / accroches / réglages et obtenir l'accord de l'utilisateur avant les étapes destructrices ou lentes.
- Ne jamais couper à l'intérieur d'un mot. Pour la parole, aligner les coupes sur les espaces entre les mots (
captions/snap-to-words). - Chaque coupe audio reçoit un fondu d'environ 30 ms. Les clics viennent de coupes sur des échantillons non nuls.
- Les clips commencent sur le contenu. Pas d'images noires, d'écrans de chargement ou de queue de l'écran précédent (
auto-cut/trim-lead, vérifié parrender-qc). - Le texte reste dans la zone de sécurité. La planche d'accroche dans la zone haute, max 2 lignes ; les sous-titres au-dessus de l'interface de la plateforme en bas ; rien ne se chevauche.
- L'ordre compte. Coupes, puis superpositions, puis sous-titres (dernière étape visuelle), puis volume sonore (dernière étape audio), puis QC.
- Contrôler la qualité de chaque rendu final avec
render-qc/verify-render, puis montrer à l'utilisateur la planche contact ou le vrai MP4. Ne pas juger à partir d'aperçus réduits. - L'approbation est humaine. Ne jamais passer
--approvedou--allow-publicsauf si l'utilisateur l'a dit dans cette conversation. - Les secrets restent hors de git et des journaux. Les clients OAuth et les jetons vivent dans les variables d'environnement ou les fichiers ignorés par git ; ne jamais les afficher.
- Préférer réexécuter un script avec des options différentes plutôt que d'écrire ffmpeg à la main. Chaque script répond à
--helpet--help --json.
Vérification de la configuration
ffmpeg -version && ffprobe -version # requis (toute version récente ; drawtext PAS requis)
node --version # >= 18
npm install # une fois, à la racine du dépôt (installe sharp)
python3 -m pip install faster-whisper # seulement pour captions/transcribe.py
Si ffmpeg n'est pas dans le PATH, définissez FFMPEG_PATH et FFPROBE_PATH.
Packs de style
brands/example.json contient la taille du canevas, la police, les couleurs, la géométrie de la planche d'accroche et le style des sous-titres. Copiez-le par chaîne/marque et passez --brand brands/<nom>.json. Utilisez les polices système ou les polices sous licence libre (--font-file) ; ne jamais utiliser de polices commerciales sous droits.