【要約】日本語チャットで動画編集を実現するAIツールのアーキテクチャ設計|Next.js + FastAPI FFmpeg + GPT-4o [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が動画編集における膨大な作業工数、特にテロップ作成に時間を奪われている。作業の効率化を図るため、以下の課題を解決する必要があった。
- ・テロップ作成が編集全体の45%を占める。
- ・月20時間の編集時間を要する。
- ・自然言語による直感的な操作が困難である。
// Approach
自然言語を構造化データに変換し、FFmpegコマンドへ落とし込むパイプラインを構築した。以下の手法を用いて、指示の正確な実行を目指している。
- ・GPT-4oのStructured OutputsとPydanticを用い、編集タスクを型定義する。
- ・faster-whisperで音声認識を行い、FFmpegのsubtitlesフィルターで字幕を焼き込む。
- ・silencedetectフィルターで無音区間を検出し、trim+concatで結合する。
- ・asyncio.create_subprocess_execにより、非同期でFFmpegを実行する。
// Result
チャット入力のみで動画編集が可能な環境を実現した。実装により、以下の成果と展望が得られている。
- ・30分の動画における無音カット処理を約15秒で完了した。
- ・PydanticによるバリデーションでLLMのハルシネーションを抑制した。
- ・今後はYOLOv8を用いた自動モザイク等の機能拡張を予定している。
Senior Engineer Insight
> 実用性は高いが、大規模運用にはスケーラビリティの課題がある。FFmpegの重い処理をFastAPI内で直接実行すると、リクエスト増で即座に破綻する。Celery等のジョブキューを用いた非同期処理への移行が必須だ。また、LLMのレイテンシとFFmpegの処理時間を考慮したUX設計が重要となる。