Communitygithub.com

borjaperfra/launch-video-kit

Ajoute voix-off, musique, sous-titres ou mouvement de caméra à une vidéo réalisée avec Remotion, en utilisant les pièces de ce dépôt. Utilisez-le pour générer une voix off avec un TTS, choisir ou prolonger une piste musicale, mixer la voix sur la musique, placer des sous-titres lisibles sur une interface, ou déplacer une caméra virtuelle sur une UI reconstruite en HTML.

Qu'est-ce que launch-video-kit ?

Ce kit, `borjaperfra/launch-video-kit`, est un ensemble d'outils et de règles conçus pour les agents IA (comme Claude Code, Cursor, Codex) qui automatisent la production vidéo avec Remotion. Il se concentre sur les aspects non-design d'une vidéo : l'audio (voix-off, musique), les sous-titres et les mouvements de caméra. Son utilité principale est de fournir un flux de travail reproductible et vérifié numériquement, évitant les erreurs courantes comme le désalignement des pistes audio ou les sous-titres redondants. Il s'appuie sur des scripts Node.js (gen-voice.mjs, loop-music.mjs) et des commandes ffmpeg pour mesurer et valider les durées, les niveaux sonores et la continuité, plutôt que sur une inspection subjective. Le kit impose un ordre strict : d'abord la voix-off (pour fixer les timings), puis la musique, les coupes, et enfin les sous-titres. Il inclut des règles précises (ex: un fichier audio par ligne, sous-titrer uniquement ce qui n'est pas à l'écran, niveau de ducking limité à ~0.85) et des méthodes de vérification automatisées pour garantir un résultat professionnel sans avoir à visualiser la vidéo.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/borjaperfra/launch-video-kit/tree/HEAD/.claude/skills/launch-video-kit

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait launch-video-kit ?

Six pièces pour la partie de la vidéo qui n'est pas le design : audio, sous-titres et caméra. Le README est la référence (le pourquoi de chaque décision et les chiffres qui la soutiennent). Ceci est l'ordre de travail et les règles qu'il est facile d'oublier.

L'ordre est important

  1. La voix d'abord, le montage après. gen-voice.mjs imprime la durée réelle de chaque ligne en frames. Ces chiffres fixent les temps de scène. Si vous montez d'abord, chaque prise réelle vous décalera le montage et il faudra tout refaire.
  2. Ensuite la musique, en choisissant la fenêtre selon son arc d'énergie (analyze-music.mjs) et en l'allongeant si nécessaire (loop-music.mjs).
  3. Puis les coupes, attachées à la grille de mesures qu'imprime l'analyse.
  4. Les sous-titres à la fin, quand vous savez déjà quelles phrases ont un carton à l'écran et lesquelles n'en ont pas.

Règles souvent oubliées

  • Un fichier audio par ligne. Jamais une longue prise unique.
  • Sous-titrez uniquement ce qui n'est pas écrit à l'écran. Si la phrase apparaît déjà dans un carton, la sous-titrer double le texte au même endroit.
  • dur d'un sous-titre est le temps de lecture, pas la durée de la voix. Réduisez les plages manuellement pour qu'aucune n'empiète sur la suivante ni sur le carton qui vient après.
  • DUCK.base ne dépasse pas ~0.85. Les pistes de bibliothèque arrivent à 0 dB et tout effet par-dessus écrête.
  • Caméra : fixe, avec des déplacements courts. Ni dérive continue (distrayant) ni coupures sèches (saccades). Et chaque scène commence dans le cadre où la précédente s'est terminée.
  • Même interface des deux côtés d'une couture, même composant. Si une scène est dessinée à la main, elle différera d'un détail et ce détail apparaîtra brutalement en changeant de bloc.
  • Itérez sur les temps, pas sur le contenu. Une boucle sur le tableau de contenu qui indexe un tableau de temps plus court fera planter le rendu dès que vous retirez un beat.

Vérifier plutôt que donner son avis

Un agent ne voit ni n'entend la vidéo. Tout ce qui semble subjectif a un chiffre :

# le mixage, par sections : la voix sur la musique doit mesurer comme la voix seule
ffmpeg -hide_banner -ss 27 -t 4 -i out.mp4 -af volumedetect -f null /dev/null

# le pic global doit rester en dessous de -1 dB
ffmpeg -hide_banner -i out.mp4 -af volumedetect -f null /dev/null

# contact sheet au lieu de vérifier les images une par une
ffmpeg -v error -i f_%d.png -vf "scale=560:-1,tile=5x4" -frames:v 1 sheet.png

loop-music.mjs vérifie déjà ses propres coutures : si l'une d'elles ne tombe pas dans le silence, il le signale et il faut choisir deux autres trous.

Environnement

  • ffmpeg et ffprobe sont nécessaires dans le PATH, ainsi que Node 20 ou supérieur.
  • Sous Git Bash sur Windows : ffmpeg ne supporte pas les motifs glob et drawtext échoue faute de fontconfig. Utilisez des séquences numérotées. bc n'est pas non plus disponible.
  • staticFile() de Remotion ne gère pas bien les espaces ni les accents : renommez les assets en ASCII.
  • useVideoConfig().durationInFrames dans un <Sequence> correspond à la durée de la SÉQUENCE, pas de la vidéo. Ne le mélangez pas avec des frames absolus.

Ce qu'il ne peut pas faire

Un TTS produit de la parole, pas de la respiration. Les soupirs, rires et effets doivent être enregistrés. Les bips synthétiques, en revanche, sortent de ffmpeg, il y a un exemple dans le README.

Skills associés