# 動画自動生成パイプライン

> 台本から、ナレーション付き動画を自動で組み上げる制作環境。

- 制作: [ワカメ](https://wakame.dev/)（個人で企画・開発）
- ステータス: 運用中
- 制作期間: 継続制作中
- カテゴリ: Video, AI, Tool, Experiment
- 使用技術: Remotion, React, Node.js, Python, TTS（音声合成）, FFmpeg, AI画像生成
- 担当: 構成設計, テンプレート実装, ナレーション連携の実装, 自動尺合わせの実装

## 概要

動画を1本作るたびに同じ作業を繰り返さないよう、台本から完成動画までを自動化した制作環境です。Remotion（Reactで動画を書く仕組み）を土台にして、スライド画像・生成イラスト・ナレーション音声・テロップをプログラムから組み立てられるようにしました。Canvaで作ったスライドを書き出してナレーションを載せる構成、台本だけから挿絵入りの解説動画を作る構成、縦型ショート動画を量産する構成を、それぞれ用意しています。ナレーションの実尺を測ってシーンの長さを決めるなど、音声に合わせて自動で尺を合わせる処理も入れています。

## 毎回同じ作業をやり直さないための土台

動画を1本作るたびに、スライドを書き出し、ナレーションを録り、尺を合わせ、テロップを入れる——という同じ作業が発生します。ここを手作業で回している限り、本数は増やせません。

そこでReactで動画を記述できるRemotionを土台にして、スライド画像・生成イラスト・ナレーション音声・テロップをプログラムから組み立てられるようにしました。映像の内容がコードなので、同じ構成の動画を別の台本で作り直すことも、後から一括で直すこともできます。

## 用途ごとに3系統を用意した

1つの万能な構成にまとめるより、入口ごとに分けたほうが実際には早く作れました。

- スライド動画: テキストからスライドを組み、書き出した画像にナレーションを載せる構成
- 解説動画: 台本だけを入力し、シーン分割と挿絵の生成まで自動で行う構成
- 縦型ショート: 短尺の動画を量産するための構成

## 尺合わせは音声を基準にする

動画が破綻するいちばんの原因は、ナレーションとスライドの切り替えがずれることです。想定の秒数を先に決めてしまうと、読み上げが長かった分だけ後続が全部ずれます。

そのため、先にナレーション音声を作って実際の長さを測り、その実尺からシーンの長さを決める順序にしました。音声を作り直せば尺は自動で合い直します。合成音声の前後に入る無音も、そのままだと尺の計算が狂うので取り除いています。

## 外部ツールの癖は、パイプライン側で吸収する

組み合わせている外部サービスには、それぞれ想定外の挙動があります。こうした癖は毎回ハマると時間を取られるので、気付いた時点でパイプライン側に手順として埋め込み、ドキュメントに残しています。

- デザインツールのAPIが座標を一般的な順序と逆で受け取る点
- ページの削除に相当する操作が用意されておらず、別の手順で代替する必要がある点
- 画像生成APIに欲しい縦横比のサイズが無く、生成後に調整が要る点
- 画像は生成ごとに課金されるため、作り直しの回数がそのまま費用になる点
- 音声合成の話者を名前から引く必要がある点、英語をそのまま渡すと読み上げが崩れるためカタカナに直して渡す点

## 成果

- 台本から動画までを1コマンドで生成できる構成を用意
- スライド動画・解説動画・縦型ショートの3系統に対応
- ナレーションの実尺に合わせた自動シーン割りを実装

## リンク

- [GitHub](https://github.com/bluewakame/video-pipeline)

## このサイトについて

- [ワカメの詳細プロフィール](https://wakame.dev/ai-profile/index.html.md)
- [llms.txt](https://wakame.dev/llms.txt)
