Remotion permet de créer des vidéos avec du code en s'appuyant sur React. L'intérêt est double : on peut construire des animations de manière précise, mais aussi automatiser la génération de vidéos puisque tout repose sur des composants, des propriétés et des fichiers manipulables par un script ou un agent IA.
Sommaire
00:00 Introduction
00:39 Installation
02:38 Première animation
13:56 Les séquences
15:27 Remotion Studio
16:40 Séries & Transitions
20:16 Propriétés dynamiques
28:01 Sous-titres dynamiques
41:14 IA & skills
44:13 Conclusion
Installation
Pour démarrer, Remotion propose plusieurs templates que l'on peut installer via la commande :
On vous proposera de choisir entre plusieurs templates (je vous conseille de commencer par blank), puis de choisir quelques éléments de configuration (dont la possibilité d'installer des skills pour les agents d'IA).
Une fois le projet créé, on installe les dépendances puis on lance le studio :
La commande démarre Remotion Studio sur le port 3000 qui permet de prévisualiser les compositions, de se déplacer dans la timeline et de lancer un rendu.
Créer une première composition
Un projet Remotion repose sur des composants React. Le premier composant qui sera utilisé sera le composant Composition qui représente une vidéo et qui permet de définir les informations nécessaires au rendu : son composant React, sa durée, sa fréquence d'image et ses dimensions.
La durée s'exprime toujours en frames. Pour une vidéo de 10 secondes à 30 images par seconde, on utilise donc FPS * 10. Le composant rendu peut être un composant React classique qui générera un rendu HTML. Lors du rendu, Remotion effectuera le rendu dans un navigateur, frame par frame, pour générer la vidéo finale.
AbsoluteFill est un composant pratique fourni par Remotion pour occuper toute la surface de la vidéo. Ensuite, le positionnement et le style peuvent être gérés comme dans une page web. Si vous avez installé Tailwind pendant le démarrage, vous pouvez utiliser les classes que vous avez l'habitude d'utiliser.
Animer avec les frames
Dans Remotion, on évite les animations CSS classiques, car le rendu doit pouvoir avancer précisément dans le temps et rejouer n'importe quelle frame. Les animations se basent donc sur la frame courante, récupérée avec useCurrentFrame().
Pour transformer une frame en valeur animable, on utilise interpolate() :
On donne à interpolate() 4 paramètres :
- La frame courante.
- Les frames clés.
- Les valeurs correspondant aux images clés.
- Des options supplémentaires.
Côté options, on peut utiliser extrapolateLeft et extrapolateRight avec la valeur clamp pour éviter que la valeur continue d'évoluer en dehors des bornes. On peut aussi utiliser un easing pour définir la courbe d'animation.
Si besoin, le package @remotion/animation-utils ajoute des helpers comme makeTransform() et translateX(), qui rendent les transformations CSS plus composables. Pour les couleurs, interpolateColors() fonctionne sur le même principe.
Séquences et timeline
Le composant Sequence permet de décaler une partie de l'animation dans le temps. La frame retournée par useCurrentFrame() devient alors relative à la séquence parente. C'est pratique lorsque l'on veut caler une animation sur un son ou déplacer un élément dans la timeline depuis Remotion Studio.
Dans cet exemple, la séquence commence à la frame globale 19, mais à l'intérieur de BaseInner, la première frame sera 0. Remotion Studio permet aussi de déplacer certaines séquences et de modifier des propriétés via l'inspecteur.
Enchaîner avec des transitions
Pour créer des transitions entre plusieurs séquences, Remotion propose le package @remotion/transitions. Le composant TransitionSeries permet d'enchaîner des séquences les unes après les autres et d'insérer une transition entre elles.
Une séquence d'une série n'a pas besoin de from, car les séquences se suivent automatiquement. Le timing contrôle la durée et la courbe temporelle, tandis que la présentation contrôle l'effet visuel, comme fade, wipe ou iris.
Ajouter des propriétés dynamiques
Une composition peut recevoir des propriétés modifiables depuis Remotion Studio. Pour cela, on définit un schéma avec Zod.
Puis on l'associe à la composition avec schema et defaultProps.
On peut ensuite utiliser ces propriétés dans le composant et construire une animation qui s'adapte à la durée de la vidéo.
Créer des sous-titres dynamiques
Remotion peut aussi servir à générer des formats courts avec des sous-titres synchronisés et animés. Pour afficher une vidéo, on peut utiliser le composant Video du package @remotion/media (si le fichier se trouve dans le dossier public, on peut utiliser la fonction staticFile()).
Pour les sous-titres, on peut les générer automatiquement en utilisant la transcription avec des packages comme @remotion/install-whisper-cpp. Ce package permet de gérer l'installation et l'utilisation du modèle. Par exemple :
Cela permettra de générer un fichier JSON qui contiendra l'ensemble des mots de la vidéo ainsi que leur timing. À partir de ce fichier, on pourra générer les sous-titres avec @remotion/captions.
combineTokensWithinMilliseconds permet de regrouper les mots prononcés dans un même intervalle, ce qui permet ensuite de créer automatiquement des Sequence par "page" de sous-titre (il faudra convertir les valeurs de millisecondes en frames).
Pour mettre en avant le mot prononcé, on compare le temps absolu courant avec les bornes fromMs et toMs de chaque token.
La documentation fournit aussi des composants prêts à réutiliser pour créer des effets de sous-titres plus avancés.
IA et automatisation
Comme Remotion produit des vidéos à partir de code, l'outil se prête bien à l'automatisation. Un script ou un agent peut créer une composition, rendre une frame pour vérifier le résultat, puis ajuster le code. Les skills Remotion fournissent des bonnes pratiques et aident l'agent à utiliser les bons composants, comme les séquences, les transitions ou les interpolations.
Cette approche ne remplace pas forcément le travail manuel, mais elle donne une base modifiable. Contrairement à une vidéo générée uniquement par IA, on garde accès au code source et on peut affiner précisément l'animation en cas de besoin.
Rendu et cas d'usage
Remotion peut rendre une vidéo depuis le studio, mais aussi en ligne de commande ou depuis un serveur. Cela ouvre la porte à des pipelines automatisés : génération de sous-titres, création de shorts, vidéos personnalisées ou motion design piloté par des données.
L'outil demande un petit temps d'adaptation, notamment à cause de la logique par frames et des interpolations. Une fois ce modèle compris, il devient très pratique pour piloter des animations et réutiliser la même composition avec des paramètres différents.