💡

Remotion実践Tips — プロダクションビデオプロジェクトのベストプラクティス

プロジェクト構造、パフォーマンス最適化、デバッグ、デプロイまでの実践ノウハウ集

Remotionプロジェクトが大きくなると体系的な構造と最適化が必須です。

プロジェクト構造: src/compositions/にビデオごとのディレクトリを、src/components/に再利用可能なシーンコンポーネントを、src/lib/にユーティリティ(アニメーションヘルパー、データフェッチャー)を配置します。

パフォーマンス最適化: (1) prefetch()でリモートアセットを事前ダウンロードしレンダリング中のネットワーク待機を排除 (2) 画像は必要な解像度にリサイズしてから使用 (3) React.memo()でフレームごとの不要な再レンダリングを防止 (4) --concurrencyオプションでマルチスレッドレンダリング。

デバッグ: Remotion Studioのタイムラインで特定フレームに移動して問題を再現します。console.log(frame)でフレームごとの値を追跡し、--log=verboseフラグで詳細ログを確認します。

CI/CD: GitHub Actionsでnpx remotion renderを実行し、ChromeとFFmpegの依存関係をキャッシュします。レンダリング結果をS3にアップロードしSlackで通知を送るパイプラインが一般的です。

動作フロー

1

src/compositions/、src/components/、src/lib/ディレクトリ構造でプロジェクトを整理

2

prefetch()でリモート画像/フォントをレンダリング前に事前ダウンロード

3

React.memo()とuseMemo()でフレームごとに変わらない部分の再レンダリングを防止

4

--concurrency=50%でCPUコアの半分をレンダリングに活用(残りはOS用)

5

GitHub Actions + Docker(Chrome/FFmpeg入り)+ S3アップロードでCI/CDパイプラインを構築

メリット

  • prefetchでネットワークボトルネック解消 → レンダリング時間を大幅短縮
  • React.memoで不要な計算を排除 → フレームごとのレンダリング時間を削減
  • CI/CD自動化: コードpush → ビデオ自動生成 → S3デプロイまで無人運用

デメリット

  • CI環境構築: DockerにChrome + FFmpegをインストールする初期設定が面倒
  • 過度な最適化: シンプルなプロジェクトでmemo/prefetchを乱用するとかえって複雑度が増加

ユースケース

大規模Remotionプロジェクトのコード構造整理とチーム協業基準の確立 レンダリング時間短縮が必要なプロダクション環境の最適化 自動化されたビデオ生成パイプラインの構築