AI時代の動画制作
- 以前、 AI時代のロゴデザイン という記事で、AI時代におけるロゴデザインを中心とする画像の加工について紹介した
- 今回はAI時代における音と映像の制作方法を紹介する
- どのツールもAIエージェント経由でコマンドやプロンプトを組み立てて活用する
- FFmpegやSoX、Node.jsによるスクリプトなどは高度な操作ができる一方で、複雑なオプション指定が必要なため、手作業は現実的ではない
- ElevenLabsやSuno、Runwayはプロンプトが英語を前提としているため、英語のネイティブ話者でもない限り、スクラッチでプロンプトを書くことは難しい
FFmpeg
Section titled “FFmpeg”- 音声や映像のトランスコードができる汎用的なCLI
- 簡単な音声の生成(
sine,anoisesrc)、合成(amix)も可能 - トリミング、結合、ボリューム調整などの基本編集にも使える
- 公式サイト: https://www.ffmpeg.org/
# サイン波を生成する(440Hz、1秒)$ ffmpeg -f lavfi -i "sine=frequency=440:duration=1" output.wav
# ノイズを生成する(1秒)$ ffmpeg -f lavfi -i "anoisesrc=duration=1" output.wav
# 2つの音声ファイルをミックスする$ ffmpeg -i a.wav -i b.wav -filter_complex amix=inputs=2 output.wav- FFmpegより高度な音声処理に特化したCLIのDSPツール
- DSP(Digital Signal Processing)はデジタル化された信号を数学的に加工・分析する技術領域の総称
- 音声の生成、フィルタリング(e.g. ローパス、ハイパス)、エフェクト(e.g. リバーブ、コンプレッサ)、合成など豊富なシンセサイザのオプションを持つ
- 公式サイト: https://sox.sourceforge.net/
# 40Hzと43Hzのサイン波を重ねてベース音を生成$ sox -n -r 44100 -c 2 /tmp/bass40.wav synth 5 sine 40 vol 0.5 fade q 0.5 5 0.5$ sox -n -r 44100 -c 2 /tmp/bass43.wav synth 5 sine 43 vol 0.5 fade q 0.5 5 0.5$ sox -m /tmp/bass40.wav /tmp/bass43.wav bass.wav
# ピンクノイズにハイパスフィルタをかけてチリチリノイズを生成$ sox -n -r 44100 -c 2 crackle.wav synth 5 pinknoise vol 0.5 highpass 3000 fade q 0.5 5 0.5Node.js
Section titled “Node.js”- FFmpegやSoXでもカバーできない音声の生成に活用
- 例えばランダムタイミングで発生する「パチッ」という瞬間的なクリック音(インパルス)の生成など
- インパルスは極めて短時間だけ大きな振幅を持ち、それ以外はゼロの波形で、連続ノイズとは性質が異なる
- このようなケースではNode.jsでPCMデータを直接生成する
- PCM(Pulse Code Modulation)は音声の振幅を一定間隔でサンプリングし数値列として記録する、デジタル音声の基本方式
- 外部ライブラリは使わず、WAVヘッダー + PCMサンプル列を
Bufferで組み立ててfs.writeFileSyncで書き出す
ElevenLabs
Section titled “ElevenLabs”- SEやナレーションの生成に使うことが多い
- クレジット消費が少なく、割と気軽に大量生成できる
- 複雑なSEの生成は得意ではないため、工夫が必要
- ナレーションは声や話し方の選択肢が豊富
- 公式サイト: https://elevenlabs.io/
- AIで音楽を生成できるサービス
- 作品において音楽がこだわるポイントでない、それっぽい音楽をつければ十分な場面で活用する
- インストの生成や歌詞を指定した生成も可能
- Udio と異なり、生成した音楽をMP3やWAVでダウンロード可能な点が良い
- 公式サイト: https://suno.com
SVGフィルターとCSSの連携
Section titled “SVGフィルターとCSSの連携”- 画像やイラストにビジュアルエフェクト(グリッチ、ノイズなど)を手軽にかけたい場合に活用
- SVGの
<filter id="...">でフィルター処理(e.g.feColorMatrix、feTurbulence、feDisplacementMap)を定義し、CSSのfilter: url(#id)でそのIDを参照することでHTML要素にも適用できる - SVGフィルターは本来SVG要素向けだが、このCSSプロパティ経由で任意のHTML要素に使える
<svg>自体はwidth="0" height="0"で非表示にしてフィルター定義の入れ物としてだけ置く
Puppeteer
Section titled “Puppeteer”- 上記のSVGフィルターをブラウザ上でレンダリングし、コマ送りで各フレームをスクリーンショットすることで映像にする
- 録画と違い処理負荷によるフレーム落ちが発生しないため、確実に全フレームを取得できる
FFmpeg
Section titled “FFmpeg”- 先述の通り、音声や映像のトランスコードができる汎用的なCLI
- 映像の文脈ではフィルタの適用や動画の連結、動画と音声の合成に使うことが多い
- Node.jsから
fluent-ffmpegを通じてFFmpegの機能を使用することもある - 手ブレ補正としてFFmpegにバンドルされている
libvidstabというライブラリが提供するフィルタを使うこともある
Remotion
Section titled “Remotion”- Reactのエコシステムで動画を編集できるライブラリ(フレームワーク)
- Reactベースでコンポーネントとして動画や音声のタイムラインや動画や音声の間のエフェクト、字幕などを扱える
- Studioというローカルサーバーで起動するブラウザで確認可能なGUIの動画編集環境も同梱している
- 公式サイト: https://www.remotion.dev
Runway
Section titled “Runway”- 動画生成AIサービス
- Runwayのオリジナルのモデルのほか、 Kling AI や Veo などの他社のモデルも利用可能
- どのモデルを使っても基本的にコストは高く、すぐに数千円規模になるため注意が必要
- 多くのモデルで開始フレームを指定できるため、長回しのシーンも理論上は作成可能
- モデルによって生成できる動画尺や解像度が異なる
- 一度に多くのオブジェクトを操作しようとしすぎると映像が破綻するため、どこをどう映すかを常に考える必要がある
- プロンプトを長くしすぎると出力が不安定になるため、エフェクトはプロンプトに含めず、生成後にFFmpegなどで後乗せする
- Runwayのオリジナルのモデルは開始フレームからの続きを滑らかに生成してくれるが、テクスチャのブレが大きい
- Kling AIは開始フレームとのつなぎでフレームがズレやすく、別途FFmpegなどでの調整が必要になることが多いが、最もリアルな映像を出力できる
- 公式サイト: https://runwayml.com/
その他の選択肢
Section titled “その他の選択肢”- 上記以外にも以下のようなツールがあるが、いずれも未使用のため選択肢として触れるに留める
- HyperFrames
- Remotionが「動画をReactコンポーネントとして書く」設計なのに対し、HyperFramesは「動画をHTMLページとして書く」という設計
- Palmier Pro
- macOS(Apple Silicon)向けのAIネイティブな動画エディタ
- 内蔵のMCPサーバ経由でAIエージェントがタイムライン上のクリップを直接生成・編集できる
補足: どこまで中身を把握すべきか
Section titled “補足: どこまで中身を把握すべきか”- 冒頭でどのツールもAIエージェント経由でコマンドやプロンプトを組み立てて活用すると述べた
- それは、複雑なオプションを手作業で指定する効率の悪さや、日本語話者が英語のプロンプトを書く難しさという現実的な課題に根ざしていた
- では、そのコマンドやプロンプトの中身を全く把握しないで良いかというと、現時点ではそんなことはない
- 勿論、長期に渡って開発・運用されるサービスや、複雑なロジックを持つアプリケーションほどオーナーシップを持つ必要はない
- AI生成された画像や音、映像や、生成のために作成したコマンドやスクリプトは基本的にその時点で完成で、そこから継続的な改善がされることもなければ、理解してためになるロジックも基本的にはない
- しかし、どういうプロンプトが安定した生成に繋がるかは経験則として把握しておくとコスト削減に繋がるし、コマンドの各オプションが生成物にどう作用するかを知っておくと効率良く幅広い表現が可能になる
- これまではすでにある画像や音のフリー素材を使い、AviUtlやiMovieで不器用でいい加減な編集をしていた
- AIを活用すればフリー素材はこれまでよりもその場面に適合したものを用意しやすくなった
- 動画編集に関しても、AIエージェントに指示すれば様々なフィルタやエフェクトを気軽にかけられるため、結果として動画の品質が上がった
- AIによって、ソフトウェア領域以外のクリエイティブに関してもかなり発展してきているが、人間がゴールを意識し、それを明確に伝え、品質の合格ラインをどこに引くかというのは引き続き考える必要がある
- 今後もソフトウェア領域を超えたAIを前提としたクリエイティブに関してはキャッチアップしていきたい