Génie des rushes (pipeline exécutable)
Positionnement : c'est une compétence qui exécute du travail, pas un document de règles — jugement, commandes, recette, tout en un. La source complète des règles se trouve dans
remotion-assembly/references/broll.md(détails des quatre niveaux de priorité / obligation de liste des rushes par cas / spécifications de référence). En cas de conflit, c'est ce dernier qui prévaut.
Quand l'appeler
- Étape 2 de l'atelier de segmentation : lorsqu'un segment de véritable rush est identifié (images d'expérience produit : frappe / génération / interface / démonstration / opération)
- Collecte de la liste des rushes avant la finalisation du tableau de montage : au moins 1 capture d'écran produit ou 5s d'enregistrement écran par cas, l'IA se procure elle-même sans attendre de fourniture extérieure
- L'utilisateur fournit un enregistrement écran / rush filmé à incruster dans le montage final
Pipeline d'exécution (chaque étape est validée, procédez étape par étape)
① Niveau de priorité : choisir la voie selon quatre niveaux — enregistrement utilisateur > vidéo officielle > capture d'écran web > carte de simulation UI. Les cas disposant d'un site officiel public / d'une chaîne officielle ne doivent pas descendre directement au niveau 4.
② Acquisition
- Vidéo officielle :
yt-dlp --print "%(channel)s | %(title)s | %(duration)ss | %(id)s" "ytsearch8:<nom_produit> official"identifier la chaîne officielle →yt-dlp -f "bv*[height<=1080][vcodec^=avc1]+ba[ext=m4a]/b[vcodec^=avc1]/b" -o "public/broll/<nom>.mp4" <url>([vcodec^=avc1]filtre l'AV1 par défaut, même péché que le HEVC pour l'archivage, voir broll.md 2c) ; en cas de 403, essayer successivement UA /--cookies-from-browser/ proxy. - Capture d'écran web :
node_modules/.remotion/chrome-headless-shell/*/chrome-headless-shell*/chrome-headless-shell --headless --screenshot=<out.png> --window-size=1920,1080 --virtual-time-budget=10000 <url>.
③ Vérification (obligatoire, ne pas sauter) : file <fichier> pour éviter un "PNG qui est en fait du HTML" ; pour une vidéo, ffprobe vérifie le codec, le HEVC doit d'abord être converti en H.264 (évite l'écran noir) ; la capture doit être lue visuellement pour confirmer l'absence de mur de connexion / popup de cookies.
④ Sélection d'extrait : ffmpeg -vf fps=0.5 pour extraire les trames et créer une planche contact, lire image par image, choisir un plan de 3 à 8 secondes synchronisé avec le texte parlé (action → attente → résultat), noter les secondes de début et fin.
⑤ Incrustation : Dans le Takeover : <Sequence from={beat(x)}> + <OffthreadVideo muted src={staticFile('broll/….mp4')} startFrom={F(seconde_début)}> (muted obligatoire) ; le Takeover ne porte pas de PiP (décision utilisateur) ; la capture est montée dans ShotCard/WindowCard. Pour une séquence contenant des médias, ajouter premountFor≈fps pour éviter le premier plan noir, mais cette Séquence ne doit PAS avoir layout="none" (le premount devient inefficace après retrait du conteneur). Si le conteneur extérieur utilise return null pour contrôler la visibilité, null doit être activé au moins premountFor trames avant (testé seg06 : conteneur frame<enterAt-30 return null + intérieur premountFor={30}), sinon le parent null supprime la fenêtre de préchargement, rendant premount inutile.
⑥ Uniformisation de l'étalonnage : ajouter sur la couche rush filter: brightness(0.9-0.92) saturate(0.95) (ajuster légèrement selon la luminosité du montage), les couleurs brutes donnent un aspect "patch collé" (erreur #18) ; pour les segments Takeover, réglage uniforme brightness(.92) saturate(.95) (testé et fixé sur seg06, ne pas micro-ajuster visuellement segment par segment).
⑦ Montage et retouche : pour les moments à souligner, faire un punch-in (recadrer + zoomer sur la zone clé, hauteur de police des phrases clés ≥40px), sélectionner les trames, modifier la vitesse ; pour les citations, adopter la structure en deux temps : d'abord la carte entière 2-3s → puis punch-in sur la phrase clé. La fenêtre Takeover doit épouser la durée naturelle du rush, privilégier la vitesse naturelle — si le rush est plus court que la fenêtre, réduire la fenêtre + fondu avancé, ne pas ralentir pour remplir la fenêtre ; playbackRate<1 uniquement pour les défilements d'interface et seulement si la fenêtre ne peut être réduite (≥0.7). Si le rush contient des surbrillances / sous-titres brûlés et n'a pas d'image propre → méthode du masque dévoilant (masque blanc scaleX 1→0 qui se dévoile, et enregistrer dans SOURCES.md avec la mention « méthode du masque dévoilant », voir broll.md 8.5).
⑧ Validation du rendu du segment : ne rendre que ce segment --frames=a-b, extraire les trames et vérifier : aspect "patch collé" (étalonnage), lisibilité (≥16px), chevauchement (zone de sécurité du tableau blanc), synchronisation avec le texte parlé.
Convention d'enregistrement
Vidéos dans public/broll/ ; captures dans public/assets/ ; les manques sont inscrits dans le tableau de montage pour que l'utilisateur fournisse. Mention des droits d'auteur : le matériel promotionnel officiel est utilisé pour une vidéo de commentaire.
Personnes citées : portrait obligatoire (décision utilisateur du 22/07/2026, règle de fer)
Lorsque le texte parlé mentionne un nom de personne concret, le cercle du portrait de la carte personnage doit, dans la mesure du possible, contenir une vraie photo de cette personne, sans utiliser le monogramme de la première lettre (citation de l'utilisateur : « Quand on mentionne un nom comme ça, il faut, autant que possible, mettre une image, tu peux toi-même chercher sur Internet l'image la plus représentative de cette personne, et la mettre dans le cercle du portrait »). Le monogramme / icône n'est utilisé qu'en dernier recours quand aucune image n'est disponible.
Méthode d'acquisition des images (deux catégories distinctes, ne pas mélanger) :
- Personne publique (Steve Jobs, Elon Musk, etc.) : L'IA se procure l'image elle-même, mais uniquement à partir de sources explicitement autorisées pour un usage commercial — en priorité les entrées Wikimedia Commons sous licence CC BY / CC BY-SA / Public Domain, puis les visuels des communiqués officiels. Interdiction de piocher sur un moteur de recherche (souvent des photos commerciales aux droits incertains, la vidéo de l'utilisateur sera diffusée). Après acquisition, enregistrer obligatoirement dans
public/broll/<nom_film>/SOURCES.md: nom du fichier / URL source / type de licence / crédit photographe. Les CC BY-SA nécessitant une attribution au générique ou dans la description, en informer l'utilisateur lors de la livraison. - Personne non publique (professeur, ami, collègue mentionné dans le texte) : L'IA ne doit PAS chercher d'image sur Internet — impossible de confirmer qu'il s'agit bien de la personne, ni d'obtenir l'autorisation. Suivre le processus « demande de matériel cité » pour que l'utilisateur fournisse ; si l'utilisateur ne fournit pas, conserver la carte nominative dessinée / le monogramme, et expliquer la raison à la livraison.
Cette règle remplace l'ancienne : l'approche antérieure « pas de portrait de Steve Jobs, seulement du texte / puce icône » était une précaution pour les droits d'auteur, désormais remplacée par « utiliser une vraie photo avec autorisation claire », le problème des droits étant résolu en choisissant des sources autorisées plutôt qu'en ne mettant pas d'image.
B-roll collage généré par IA (scènes émotionnelles / métaphoriques sans rush réel, validé le 22/07 - 01)
Lorsque les quatre niveaux de rush réel ne conviennent pas et qu'une image émotionnelle ou métaphorique abstraite est nécessaire (répétition, chirurgie, utilisation du téléphone, fragmentation de l'attention, etc. — segments impossibles à enregistrer ou sans vidéo officielle), suivre ce processus : Codex image_gen génère une image fixe → Grok image_to_video l’anime → incrustation dans le montage. L'exécution utilise le skill gbro-collage-broll à trois étapes (Porte1 métaphore / Porte2 image fixe / Porte3 vidéo), mais le rythme, le support et la composition suivent les règles de cette section (elles remplacent les valeurs par défaut de gbro).
① Support : par défaut, carte dans la zone droite, pas plein écran. Le B-roll est placé dans la carte de preuve de la zone droite de la mise en page en trois colonnes (16:9 avec objectFit:contain, affichage intégral, sans recadrage — décision utilisateur « réduire proportionnellement »). La personne reste présente sur scène, la zone gauche conserve le marqueur latéral + le HUD de la timeline. Le Takeover plein écran n'est utilisé que lorsqu'« aucune information n'a besoin d'être juxtaposée au rush » (règle A-roll : le plein écran est le seul endroit où la personne peut être coupée, voir layout §2). Composant de référence : src/koubo/scenes-0722-01/CollageBroll.tsx (carte + OffthreadVideo, bordure assortie à la couleur du chapitre). Ne pas faire par défaut du plein écran — le 0722-01 a été refusé par l'utilisateur pour avoir fait du plein écran à tort.
② Rythme : une image par phrase, le point de coupe donne le rythme, pas de révélation intra-plan. Dans les phrases denses, chaque image ne vit que 1-3s, interdiction d'utiliser une animation assemble-from-empty (commencer vide et n'être complet qu'à la dernière image = l'information arrive toujours en retard, en conflit avec la courbe de débit verbal, 8 vidéos ont été mises au rebut pour cette raison). Il faut de l'« animation » — la composition de l'image fixe est complète dès la trame 0, Grok ne superpose que du mouvement continu subtil (papier flottant / engrenage tournant / bande lumineuse glissante / brume ondulante), la composition ne doit pas changer d'une trame à l'autre.
③ Règles de composition de l'image fixe (Codex image_gen) :
- Typologie des proportions (une coupe unique ferait échouer) : métaphore pilotée par l'objet (lit d'hôpital / médicament / calendrier / fragments / pile de livres — la personne n'est qu'un élément) : hauteur du personnage 45-60% ; métaphore pilotée par le personnage (en train de travailler / assis / appuyant sur un bouton / regardant dans le vide — le personnage est le sujet) : plan rapproché 65-80%, le plan large échoue directement.
- Ligne rouge absolue : pas de faux texte / caractères alphabétiques ou numériques lisibles / logo / filigrane / UI ; vérifier aussi les quatre bords (Codex omet souvent les faux textes en bordure, la session principale doit découper les quatre bords avec ffmpeg et les agrandir pour une vérification indépendante).
- Image de référence d'identité spécifiée par l'utilisateur (0722-01 utilise
my-face-studio-default.JPG) ; expression selon la narration, pour les passages moroses privilégier la silhouette / la tête baissée / allongé pour éviter la dissonance, ni sourire ni tristesse. - Après chaque génération, déduplication par
md5pour éviter les fichiers en double.
④ Les trois pièges de l'animation Grok (détails dans l'erreur #39) :
- Résolution : grok CLI
image_to_videoavecresolution_namen'a que deux niveaux : 480p / 720p, pas de 1080p (confirmé par test le 24/07/2026, une requête 1080p revient en 720p) ; l'API xAI grok-imagine-video-1.5 prend en charge le 1080p i2v (documentation officielle). Plein écran nécessite 1080p = CLI impossible : utiliser l'API xAI 1.5, ou un vrai rush / un autre générateur (Sora 2 / Veo / Kling / Seedance ; ChatCut MCP intègre Seedance/Kling). L'instruction doit explicitement écrire la résolution pour obtenir le niveau maximum — sans cela, la valeur par défaut est 736×400 (encore plus flou). Le 720p est-il suffisant ? Cela dépend du support : carte / incrustation (zone d'affichage souvent <720px) : 720p est largement suffisant et net ; plein écran 1920×1080 : le 720p agrandi 1,5× sera mou. Le montage final est en 1080p, le B-roll n'a pas besoin de 4K (invisible, sauf recadrage important). - Morph excessif : pour les éléments fragiles (engrenages / anneaux / cases de calendrier), ajouter en fin de prompt une contrainte de verrouillage (conserver la taille unique / nombre de cases et couleur inchangés / anneau continu sans rupture).
- Complétion forcée : « éléments clairsemés + grand arrière-plan vide + personnage silhouette creuse + fragments de visage » déclenchent le remplissage des zones vides / des cavités / la génération d'un visage, modifiant la composition au lieu d'une simple interdiction.
- Appel : en mode headless, utiliser
--always-approve --permission-mode bypassPermissions --max-turns 10; plusieurs agents partageant le même cwd ne doivent pas utilisergrok --continue(cela mélangerait les sessions, écrivant le résultat de A dans le chemin de B) ; avant livraison, déduplication complète par md5.
⑤ Prérequis d'environnement : le projet Codex doit être créé dans un répertoire accessible en écriture (local = ~/Documents/remotion剪辑/), s'il est créé dans ~/hyperframes-projects/ l'image_gen réussira mais l'enregistrement sera refusé ; pour les tâches multiples, envoyer un agent par tâche en parallèle, ne pas laisser un seul agent tout faire en série (il risquerait de déclarer le travail terminé à mi-parcours).