1. Overview
Remotionについて
Remotionとは?
Remotionは、Reactコンポーネントを元に動画をつくれるライブラリ。Remotion AGという企業が中心になって開発されている。
動画にしたいReactコンポーネントをCompositionというコンポーネントに渡してやることで、動画としてレンダリングすることができる。Reactコンポー ネントのなかでは、useCurrentFrame()
というフックから「動画にしたときに何フレーム目にあたるか」を表す値を取得できるため、この値に応じてstyle属性などを変化させることでアニメーションをつくることができる。
動画ファイルを書き出す大雑把な仕組みとしては、@remotion/bundlerでCompositionを何らかの静的なWebページに変換したうえで、@remotion/rendererがフレームを進めながらpuppeteer + chrome-headless-shellを使ってスクリーンショットを撮影、バンドルされているffmpegを使ってスクリーンショットを動画にまとめるといったことをしているらしい。
Compositionは、Remotion StudioというWebアプリを使って動画ファイルとして書き出さずにプレビューできるほか、@remotion/playerというライブラリを使って動画プレイヤー風のReactコンポーネントとしてReactアプリに埋め込むこともできる。
また、動画ファイルの書き出しに、AWS Lambdaを利用できる仕組みなども用意されている。詳しくはServer-Side Renderingを参照のこと。