Que fait Code-Video-Infinite ?
L'image n'est pas « générée », elle est « écrite ». » Ici, pas de modèle de génération d'image ou de vidéo : une vidéo est soit une page web, soit un projet Remotion. On lui donne un temps t, elle dessine cette image ; un navigateur headless ou Remotion rend image par image, ffmpeg assemble l'audio et la vidéo. Le son peut aussi être synthétisé par code. Ainsi, chaque vidéo peut être cherchée arbitrairement, re-rendue, et une modification ne fera pas déviter la version précédente.
Ce skill est la fusion de cinq moteurs : une entrée, un pipeline, trois contrôles qualité, chaque moteur conserve sa documentation complète et ses ressources.
0 · Avant de commencer, exécutez ces deux commandes (30 secondes, ne les sautez pas)
node scripts/doctor.mjs # Environnement : Node / ffmpeg / ffprobe / Python / Chrome / les cinq moteurs sont-ils complets ?
node scripts/find.mjs --stats # Catalogue : 880 ressources comptées par source et collection
Si doctor affiche FAIL, corrigez d'abord votre environnement avant de créer. Si Chrome manque, installez Chrome ou npx playwright install chromium ; sous Windows, si npm est bloqué par une stratégie d'exécution, utilisez npm.cmd.
1 · D'abord, choisissez le moteur, ensuite le style
Le moteur est déterminé par le besoin de l'utilisateur, pas par la richesse du catalogue. Une vidéo utilise un seul moteur principal par défaut ; un second moteur ne sert qu'à emprunter des ressources.
| À quoi ressemble le besoin | Moteur | Sa force | Ce qu'il faut payer pour l'utiliser |
|---|---|---|---|
| Vidéo produit / lancement / compétence de 15 à 30 secondes, avec rythme, travelling cinématique, qui ne ressemble pas à « PowerPoint » | onetake | Composition HTML unique, flou de mouvement réel avec obturateur, effets sonores synthétisés, oracle de rythme et de transition | Python + Chrome ; rendu 4K60 lent (prévenez d'abord) |
| Vidéo produit, ambiance cinématique, capture de page web réelle, narration multi-caméras, reprise dans Jianying, publication sur les réseaux sociaux | shotcraft | 124 cartes de plans + modèle Ink Press + capture de page réelle + sélection audio Freesound + atelier | Node + Remotion (installation npm) ; Remotion a une licence indépendante |
| Formes, matériaux, objets 3D spécifiques, personnages et animaux, dessin/papier découpé, scènes directement exécutables | claude-motion | 47 études de cas + 20 composants sources + 30 modèles d'objets + 14 points de départ de scènes, code source fidèle plutôt qu'étiquettes de style | Node ≥ 22 + Playwright Chromium + ffmpeg ; volume de ressources important |
| Style motion design (plat / line art / isométrique / rendu 3D / image par image / collage / liquide / morphing / Bauhaus / Synthwave / verre / lettrage / sticker / pixel / HUD cyber) | mg-motion | 15 techniques de signature vérifiables + pack d'outils de 103 échantillons musicaux + 10 contrôles machine + deux rounds d'évaluation | Chrome (MG_CHROME) + ffmpeg + polices auto-approvisionnées |
| Récupérer le code source réel d'un mouvement, d'une transition ou d'un effet de texte pour l'utiliser dans un autre projet | wise-motion | 462 entrées d'effets, aperçus, accès au code source réel et scripts d'exportation | Fournit uniquement les ressources, ne conçoit pas l'ensemble de la vidéo |
Les détails de routage, les combinaisons refusées et les limites explicites de chaque moteur se trouvent dans references/engine-selection.md.
Recherchez toutes les ressources avec la même commande (à travers les cinq moteurs) :
node scripts/find.mjs "HUD radar"
node scripts/find.mjs "café dessin main" --limit 5
node scripts/find.mjs fade --source wise-motion
node scripts/find.mjs "titre entrée" --collection shot-card --json
2 · Pipeline en six étapes (ordre fixe, on peut supprimer des étapes mais pas sauter les contrôles)
| Étape | Quoi faire | Documentation approfondie |
|---|---|---|
| 0 Besoin | Clarifier les spécifications de livraison (durée / format / fps / voix off ou sous-titres / langue), sources des ressources, public cible et plateforme de publication ; demander tout en une fois, pas question par question | references/pipeline.md §0 |
| 1 Référence | S'il y a une vidéo de référence, l'analyser en pratique : énergigramme, points de coupe, proportion de silence, t80 et flou de mouvement (onetake analyze_ref.py) ; sans référence, écrire la prochaine série d'objectifs numériques vérifiables | references/motion-grammar.md |
| 2 Concept | Trois idées centrales différentes, l'utilisateur en choisit une ; sélectionner en même temps le look/style par son nom, sans utiliser de paramètre par défaut en silence | onetake §2 / mg-motion §2 |
| 3 Rythme et transition | Concevoir le storyboard avec le rythme et la transition comme deux jambes : pas de plans de durée égale, pas de remplacement d'un beat par le suivant | references/motion-grammar.md |
| 4 Ressources et plans | Capture de page réelle / reconstitution d'interface utilisateur depuis une capture d'écran / modèles d'objets / cartes de plans / entrées d'effets ; prendre d'abord le plus petit extrait exécutable | ENGINE.md de chaque moteur |
| 5 Implémentation | Chaque image est une fonction pure du temps ; les mouvements sont choisis dans la bibliothèque, les courbes sont définies selon t80 ; sortir d'abord une image fixe, puis la vidéo entière | ENGINE.md de chaque moteur |
| 6 Rendu et livraison | Brouillon 1080p30 → validation → version finale 4K60 ; passer les trois contrôles qualité ; rapporter selon le contrat de livraison | references/delivery.md |
3 · Règles absolues (fusion des cinq moteurs, dédoublonnées, chacune est une leçon apprise)
- Chaque image ne dépend que de t. Interdiction de
Date.now(), de rAF accumulant un état, d'animations CSS déclenchées par un état ; utiliser un générateur pseudo-aléatoire avec une graine fixe. - Ne pas confondre l'histoire du modèle avec celle de l'utilisateur. Choix du concept parmi trois ; si une nouvelle vidéo reprend le beat d'un modèle, elle sera lue comme un modèle.
- Ne pas transporter le look de la vidéo précédente dans la suivante. Le look/style doit être choisi par son nom, pas par défaut silencieux.
- Ne pas couper à intervalles égaux comme un métronome. Des plans de durée égale, même réussis individuellement, sont lus comme un diaporama.
- Ne pas remplacer un beat, il faut le prolonger. À chaque frontière de section, quelque chose doit survivre et se déplacer/redimensionner visiblement dans la section suivante ; les scènes mutuellement exclusives (changement de page avec
display:none), même avec un rythme parfait, restent un PowerPoint. Exception pour les coupes franches d'impact et les cartes de fin. - L'espace vide est la condition d'un impact. Dans une vidéo de référence, environ 1/3 du temps est statique ; ne jamais s'arrêter = pas de climax.
- Petit élément, grand arrière-plan. Dans ce type de vidéo, 70 % du cadre est souvent blanc / de couleur de fond ; un écran plein est une exception, pas la norme.
- La cause doit être visible. La main qui dessine le chemin d'enregistrement, la balle qui tombe, le point qui se divise — si la page bouge toute seule, elle est lue comme un économiseur d'écran.
- Un mouvement rapide doit avoir un obturateur. Au-delà d'environ 80 px/image, sans flou de mouvement, cela créera un scintillement et des images rémanentes ; utiliser l'obturateur du moteur de rendu, pas le flou CSS.
- La caméra doit suivre le sujet principal. Une caméra fixe sera évaluée comme « il manque un travelling dynamique » ; déclarez
inFrame, laissez la caméra accuser un retard, s'incliner, puis se stabiliser. - Brouillon en 1080p30. Ne pas rendre en 4K60 tant que le montage n'est pas accepté.
- Pas de particules, de confettis ou de débris décoratifs. Cela se lit comme un modèle ; pour faire de l'effet, laissez les lettres tomber toutes seules.
- Le son : une seule pièce, un seul matériau. Un événement par piste sonore = une version audio du diaporama.
- Ne pas falsifier : une vidéo qui n'a pas été rendue n'est pas une reproduction, une vidéo sans son n'est pas une vidéo sonore, une approbation technique ne signifie pas une qualité esthétique.
4 · Trois contrôles qualité, indispensables
| Contrôle | Qui juge | Quoi juger | Que faire si échoué |
|---|---|---|---|
| Contrôle machine | node scripts/qc.mjs gate <video> | Durée / format / fps / présence de piste audio / LUFS / vrai pic / images noires / proportion d'images statiques | Modifier la vidéo et re-rendre, pas modifier la norme |
| Contrôle d'images clés | Vous-même read_image | 6 à 10 images clés peuvent-elles servir d'affiche ? Composition / profondeur / espace vide / typographie | Re-composer le cadre |
| Contrôle d'évaluation | Sous-agent indépendant avec contexte propre | Score sur 7 dimensions + liste de modifications avec numéros d'image ; après modification, une nouvelle évaluation | Modifier par ordre d'impact |
Le contrôle machine ne mesure que ce qu'une machine peut mesurer ; l'esthétique est entièrement confiée à une évaluation indépendante, l'auto-vérification du créateur est sujette à un biais de confirmation.
Les contrôles propres à chaque moteur (mg-qc.mjs, verify_promo.py, final-review.md, jury.md) avec leur utilisation et leurs critères se trouvent dans references/quality-gates.md.
5 · Son
- Objectif : une seule pièce, un seul matériau, nombre d'événements inférieur au nombre de beats ; la musique ne doit utiliser par défaut que des morceaux autorisés pour un usage commercial, et être comptabilisée.
- Valeurs cibles courantes :
−14 LUFS(réseaux sociaux / web),−16 LUFS(long métrage / podcast), vrai pic≤ −1 dBTP(le codage AAC remonte encore) ; pour plus de marge, viser−3.5. - Outils prêts à l'emploi des trois moteurs : onetake
sfx_palette.py/score.py(synthèse + mixage enregistré), mg-motionaudio.py+ 103 échantillons, shotcraftsound-design.md+sfx-source.py(Freesound, CC0 par défaut). - Détails et limites de licence dans
references/sound.md.
6 · Contrat de livraison
Chaque vidéo doit comporter ces sept éléments (un élément manquant = pas fini) : concept en deux phrases / beat sheet avec timecodes / correspondance une par une des techniques de signature / quels styles utilisés et comment ils sont transmis / feuille de route technique / chiffres mesurés (durée format fps LUFS vrai pic images noires proportion d'images statiques) / top-3 honnête des points faibles.
Livrables supplémentaires par moteur : onetake multi-langue de même source (?lang= sans bifurcation), claude-motion ADAPTATION.md (conservation / réécriture / licence / problèmes non résolus), shotcraft atelier d'effets et projet Jianying, mg-motion répertoire de versions v1/ v2/. Voir references/delivery.md.
7 · Arborescence
Code-Video-Infinite.skill/
├── SKILL.md # Ce fichier : routage + règles + contrôles + livraison
├── README.md # Pour les humains : quels sont les cinq moteurs, comment installer, table des licences
├── LICENSES.md # Licence par moteur et déclarations tierces
├── references/ # Connaissances partagées après fusion (nouveau contenu ici, uniquement jugements inter-moteurs)
│ ├── engine-selection.md # Matrice de décision et limites
│ ├── pipeline.md # Chaque étape du pipeline en six étapes
│ ├── motion-grammar.md # Vocabulaire unifié du rythme/courbes/transition/travelling
│ ├── sound.md # Son et limites de licence
│ ├── quality-gates.md # Critères des trois contrôles qualité
│ ├── delivery.md # Contrat de livraison
│ ├── assets-and-licenses.md# Où sont les ressources, peuvent-elles être redistribuées
│ └── provenance.md # Cinq sources, versions, ce que la fusion a fait
├── catalog/
│ ├── INDEX.md # Liste des 880 ressources (générée)
│ ├── index.json # Version lisible par machine des mêmes données
│ └── assets-index.json # Liste des 537 ressources lourdes
├── scripts/
│ ├── doctor.mjs # Auto-vérification de l'environnement
│ ├── find.mjs # Recherche inter-moteurs
│ ├── qc.mjs # Contrôle machine unifié (measure / gate / delegate)
│ ├── build-catalog.mjs # Reconstruction de l'index
│ └── check-links.mjs # Vérification des liens entre documents
└── engines/ # Les cinq moteurs conservés intacts (avec leur documentation / ressources / licences)
├── onetake/ ENGINE.md + lib/motion.js + scripts/ + looks/ + cases/
├── shotcraft/ ENGINE.md + references/shots(124) + template/ + demos/ + assets/
├── claude-motion/ ENGINE.md + references/*.json + assets/{cases,extensions,models,scenes}
├── mg-motion/ ENGINE.md + mg-styles-15/{harness,assets} + references/ + scripts/
└── wise-motion/ ENGINE.md + catalog/registry.json + references/effects(462) + scripts/
8 · Quand lire quel fichier
| Quand | Lire |
|---|---|
| Vous ne savez pas quel moteur utiliser | references/engine-selection.md |
| Vous voulez commencer, besoin des actions et commandes concrètes par étape | references/pipeline.md |
| Le rythme ne va pas, ça ressemble à PowerPoint, les mouvements sont trop mous ou trop durs | references/motion-grammar.md |
| Voix off / effets sonores / musique / volume sonore | references/sound.md |
| La vidéo est terminée, vous avez peur de ne pas passer les contrôles | references/quality-gates.md |
| Vous devez livrer la vidéo, faire un rapport, ou modifier encore | references/delivery.md |
| Vous utilisez une ressource d'un moteur, pas sûr de pouvoir l'utiliser en commerce | references/assets-and-licenses.md |
| Vous voulez mettre à jour un moteur ou vous renseigner sur ses origines | references/provenance.md |
| Documentation approfondie d'un moteur (seule autorité) | engines/<engine>/ENGINE.md et ses references/ |
9 · Licences et limites des ressources (en résumé)
Les licences des cinq moteurs sont différentes, le dépôt fusionné ne modifie pas leurs licences respectives : onetake est sous PolyForm Noncommercial (gratuit pour usage non commercial), wise-motion sous Apache-2.0, claude-motion et le moteur amont mg-styles-15 sont sous MIT (les actifs tiers conservent leurs licences respectives), shotcraft a sa propre licence et Remotion a une licence indépendante supplémentaire (l'utilisation commerciale en entreprise nécessite une vérification personnelle). Les autorisations pour les polices, les modèles, les effets sonores et les BGM sont détaillées une par une dans references/assets-and-licenses.md et dans les LICENSE / ATTRIBUTION / NOTICE de chaque moteur. Les noms de marque sont toujours fictifs, n'utilisez pas de vraies marques déposées.