Vidéo éducative animée chinoise (Pipeline complet Remotion)
Exécutez les dix étapes dans l'ordre. Le produit de chaque étape est l'entrée de la suivante. Il est interdit de sauter une étape puis de revenir en arrière.
Dix règles d'or
- La durée est déterminée par le doublage, pas par le script. Le script de référence n'est qu'une intention. Estimez d'abord la durée totale en fonction de la vitesse de lecture réelle (TTS chinois ~3,3 caractères/s). Si elle dépasse la durée cible, réduisez le nombre de caractères et reformulez à l'oral, puis synthétisez chaque segment et mesurez sa durée réelle.
- Le BPM doit être mesuré, pas repris des indications de l'utilisateur ou du fichier de référence. Librosa rapporte souvent 104 BPM comme 51,7 (réduit de moitié). Utilisez l'autocorrélation ou changez les paramètres d'onset pour une vérification indépendante, et prenez la valeur qui correspond à l'écoute.
- Tous les points de coupe sont ancrés aux battements forts. La limite du paragraphe = la fin du doublage de ce segment, arrondie au battement fort le plus proche. Le numéro d'image =
round(beat * (60/BPM) * FPS), codé en dur, pas calculé à l'exécution.
- Rendu déterministe. Interdiction d'utiliser
Date.now(), Math.random(). Toute oscillation doit être dérivée de Math.sin(frame). La même image doit être identique pixel pour pixel à chaque rendu.
- Source unique de vérité pour la timeline. Les paragraphes, numéros d'images, offsets du doublage, frames d'effets sonores n'existent que dans un seul fichier
timeline.ts. Si vous modifiez le nombre de caractères du script → relancez le script de génération → synchronisez le TS. Ne modifiez jamais deux endroits à la main.
- Les sauts de ligne des sous-titres sont basés sur la ponctuation. Découpez d'abord par clause (selon
,;:。) puis assemblez en boîtes. Utilisez un conteneur à largeur fixe (ex: width: 1460 + whiteSpace: "pre"). Interdiction d'utiliser maxWidth pour laisser le contenu définir la taille du conteneur.
- Séparation audio en trois couches : BGM, voix, effets sonores avec des niveaux indépendants. Voix à 0,8, BGM à partir de 0,24. Mesurez le pic après rendu ; >0,95 signifie un risque de saturation.
- Vérifiez chaque plan avec une image fixe. Utilisez
npx remotion still pour vérifier la composition image par image. Regarder l'image fixe avant de lancer le rendu complet, sinon c'est une refonte.
- Trois contraintes strictes pour Windows :
--props doit passer un fichier (--props=props-nobgm.json), un JSON en ligne sera mal interprété par le shell ; ffmpeg 9 utilise -fps_mode passthrough au lieu de -vsync ; si le style ne s'applique pas après modification du TSX, supprimez d'abord node_modules\.cache.
- Livrez d'abord, évaluez ensuite. Le rendu terminé et les images générées sont livrés tels quels à l'utilisateur. Les problèmes sont seulement enregistrés et expliqués, sans regénération non autorisée.
Pipeline en dix étapes
| # | Étape | Action clé | Livrable |
|---|
| 1 | Découpage du sujet | Définir la chaîne de connaissances, durée cible, format, ton du public | Phrase de sujet + convention durée/format |
| 2 | Script explicatif | Compresser selon "accroche → modèle → déduction → conclusion → leçon", reformuler à l'oral | Script segmenté (~6 segments, 50–70 caractères chacun) |
| 3 | Doublage | Synthèse indépendante de chaque segment, même timbre et mêmes paramètres ; mesurer la durée réelle et f0 | s1..sn.wav + tableau des durées des segments |
| 4 | Sous-titres | Générer SRT à partir des durées des segments, même source que les points de coupe | subtitles.srt |
| 5 | BGM | Choisir ou synthétiser, mesurer le BPM réel et la table des battements forts ; changer si inadapté | bgm.wav + bgm.json (beats_sec) |
| 6 | Réorganisation de la timeline | Ancrer les limites des segments aux battements forts, calculer le nombre total d'images | timeline.json + timeline.ts |
| 7 | Effets sonores | Associer chaque action clé à un timbre, synthèse dans le code, ancrer aux battements forts | sfx/*.wav + tableau des frames d'ancrage |
| 8 | Projet visuel | theme / components / timeline + composants de scène par segment | Projet Remotion |
| 9 | Rendu et auto-vérification | Images fixes par segment → film complet → mesure du pic | out/*.mp4, images fixes QA |
| 10 | Éléments de publication | Vignette (rendu par code ou outil de design), titre, description, hashtags | Image de vignette + publishing-copy.md |
Décisions en cas de conflit
| Conflit | Traitement |
|---|
| Conflit entre le nombre de caractères du script et la durée cible | Réduire le script, ne pas changer la durée. Si le taux de compression > 1,3, reformuler en phrases courtes orales, conserver tous les points de connaissance |
| BPM / durée donnés par l'utilisateur différents de la mesure réelle | Faire selon la mesure réelle, et informer activement de la différence (ex: "Le document indique 110 BPM / 58s, mais la mesure réelle donne 104 BPM / 53,65s"), proposer une option "Réorganiser selon le document" |
| Style de la piste spécifiée par l'utilisateur inadapté | Mesurer d'abord le BPM / spectre / pic de cette piste et fournir les données, puis synthétiser un remplacement. Divulguer la raison de l'écart lors de la livraison |
| Conflit entre le guide visuel de référence et le style de la plateforme pour la vignette | Traiter les deux séparément : le corps suit le guide visuel de l'utilisateur, la vignette suit la logique de diffusion de la plateforme de vignettes, et expliquer les compromis |
Liste de livraison
- Double version du film : avec BGM / sans BGM (pour les plateforms avec leur propre bibliothèque musicale, utiliser cette dernière), même nombre d'images, même durée
- Sous-titres SRT (externes, identiques à ceux incrustés dans la vidéo)
- Notice de livraison : tableau des versions, BPM et mesure des battements, tableau des limites des segments, tableau des points d'ancrage, script, tableau des effets sonores, niveaux de mixage, structure du projet, commandes d'exécution
- Vignette (version paysage + version portrait pour la plateforme cible), plusieurs variantes de titre, plusieurs versions de description, hashtags
Fichiers de référence
- Commandes, paramètres, méthodes de vérification et chemins des livrables pour chaque étape :
references/pipeline.md
- Modèles adaptés pour chaque étape et justifications :
references/models.md
- Squelette du projet, conventions theme/components/timeline, formules d'ancrage, pièges de rendu :
references/remotion-conventions.md
- Restyling d'un film existant (fond blanc plat → style cinéma sombre, etc.) :
references/restyle-playbook.md