メインコンテンツへスキップ
Remotion

Remotion で動画を作ってみた

Remotion

概要

Remotionを使って動画を作ってみた。 Remotion は動画をコードで管理できる、Movie as a Code とでも言えるようなライブラリである。 ベースは React を使っているので、ウェブ技術で動画を作ることができる。 いろいろやってみたことを記録しておく。

作ったもの

ソースコード: GitHub

ポイント

コンポーネント

再利用可能なコンポーネントを作った。

src/components
├── CharacterLayer.tsx
├── GenericScene.tsx
├── IconSlide.tsx
├── ImageSlide.tsx
├── PointsSlide.tsx
├── Subtitle.tsx
├── TerminalSlide.tsx
├── TitleSlide.tsx
└── VideoSlide.tsx

データ定義

シーンを定義するファイルと、台本を記載したファイルを作った。

シーンを定義するファイル(scenes.tsx)

一定のタイミングで背景のスライドを変えていくが、一つのスライドを使っている時間を 1 シーンと呼んでいる。

export const sceneDefinitions: SceneDefinition[] = [
  {
    id: 'scene1',
    renderSlide: () => <TitleSlide title="Vive Codingを始める前に" subtitle="知っておきたい3つのこと" />,
    subtitles: subtitles.scene1,
  },
  {
    id: 'scene2',
    renderSlide: () => (
      <PointsSlide
        title="これだけ知っておこう"
        points={[
          'VSCode の使い方',
          'Gemini CLI の使い方',
          '数個の Unix コマンドの使い方',
        ]}
      />
    ),
    subtitles: subtitles.scene2,
  },
  // ...

台本を記載したファイル(subtitles.tsx)

export const subtitles = {
  scene1: [
    {
      id: "01-001-B",
      text: "最近バイブコーディングという言葉がよく使われていますね。",
      start: 10,
      end: 142,
      speaker: "B",
    },
    {
      id: "01-002-A",
      text: "はい。",
      start: 152,
      end: 173,
      speaker: "A",
    },
    // ...

音声生成

Google TTS を使用した。 Amazon Polly、Azure TTS でも SSML を使えるのだが、 試しに生成してみたところ、Google TTS が最も自然な音声だった。 また、音声モデルは ja-JP-Neural2-B、ja-JP-Neural2-C を使用した。 より高性能なモデルで ja-JP-Chirp3-HD- シリーズもあるのだが、 実行のたびに出力が変わるので、安定性を考えて ja-JP-Neural2-B、ja-JP-Neural2-C を使用した。

SSML は VSCode や「おこなっている」の発音に使った。

<say-as interpret-as="verbatim">VS</say-as>Code
<phoneme alphabet="yomigana" ph="おこなって">行って</phoneme>いる

その他

Remotion は MCP サーバーを提供しており、Claude Code の MCP 設定に追加して使用した。 最近はライブラリのドキュメントを MCP 化しているものが多いように思う。 おかげで苦労せずコードを生成することができる。 ありがたい。

参照

以下の動画を見て Remotion を知った。

Play