はじめに
Gemini API の機能の中で、個人的に最も「未来を感じる」のが**映像理解(Video Understanding)**です。動画ファイルを渡すだけで、モデルが映像の内容を理解し、質問に答えたり、シーンを要約したりしてくれる。
先日、この機能を使って「会議録画から自動でアクションアイテムを抽出するツール」を試作しました。思った以上に精度が高く、実用レベルに達していたので、実装の詳細と気づきをまとめます。
Gemini の映像理解が他と違う点
他の AI モデルも画像理解には対応していますが、Gemini が際立っているのは長時間動画のネイティブ対応です。
- 最大 2 時間の動画を一度に処理できる
- 動画の特定タイムスタンプを指定して質問できる
- 音声トラックも含めてマルチモーダルに理解する
- YouTube URL を直接渡すことも可能
この「音声 + 映像を統合して理解する」能力が、会議録画やプレゼン動画の分析に特に強みを発揮します。
File API を使った動画のアップロード
大きな動画ファイルを扱う場合は、まず File API でアップロードしてから、そのファイルリファレンスを使います。
import google.generativeai as genai
import time
genai.configure(api_key="YOUR_API_KEY")
# 動画ファイルをアップロード
def upload_video(file_path: str):
print(f"Uploading: {file_path}")
video_file = genai.upload_file(path=file_path)
# 処理完了まで待機
while video_file.state.name == "PROCESSING":
print("Processing...")
time.sleep(5)
video_file = genai.get_file(video_file.name)
if video_file.state.name == "FAILED":
raise ValueError(f"Upload failed: {video_file.state.name}")
print(f"Upload complete: {video_file.uri}")
return video_file
video_file = upload_video("meeting_recording.mp4")アップロードされたファイルは 48時間 保持されます。繰り返し処理するスクリプトなら、ファイル名を保存しておいて再利用するのが効率的です。
会議録画からアクションアイテムを抽出する
実際のユースケースとして、会議録画を渡してアクションアイテムを抽出するコードを書きました。
model = genai.GenerativeModel(model_name="gemini-2.0-flash")
prompt = """
この会議録画を分析して、以下を日本語で抽出してください。
## アクションアイテム
- 担当者、タスク内容、期限を明記してください
- タイムスタンプも付けてください(例: [12:34])
## 決定事項
- 会議で確定した事項を箇条書きで
## 未解決の議題
- 次回に持ち越された課題
フォーマットはMarkdown形式でお願いします。
"""
response = model.generate_content([video_file, prompt])
print(response.text)このシンプルなコードで、1時間の会議録画から数分でアクションアイテムを抽出できました。
タイムスタンプを使った精密な分析
映像の特定箇所について質問するときは、タイムスタンプ指定が使えます。
# 特定の時間帯について質問
response = model.generate_content([
video_file,
"動画の30分〜45分の間で、議論が最も活発だった話題は何ですか?"
])
# 特定シーンの詳細を聞く
response = model.generate_content([
video_file,
"スライドが切り替わったタイミングを全てリストアップして、それぞれのスライドの主なメッセージを教えてください。"
])モデルは映像の時間軸を理解しているため、「〇〇分あたりで話していた件」という自然な質問にも対応できます。
YouTube URL を直接渡す
YouTube の公開動画であれば、URL を直接渡す方法もあります。
response = model.generate_content([
"https://www.youtube.com/watch?v=VIDEO_ID",
"この動画の主な論点と、発表者が最も強調していたポイントを日本語で説明してください。"
])ただし、YouTube URL の対応は地域やコンテンツによって制限がある場合もあるため、重要な処理には File API 経由のアップロードを推奨します。
実際に試して分かったこと
精度について
日本語の会議録画(音声)の文字起こし精度は十分に高く、専門用語が混在しても文脈から正確に判断していました。ただし、複数人が同時に話す場面では話者の分離が完全ではなかったです。
コストと速度のバランス
- Gemini 2.0 Flash: 処理速度が速く、コストも低い。議事録要約など精度よりスループット重視のタスクに向いている
- Gemini 2.5 Pro: より複雑な推論が必要な場面(矛盾を発見する、論理的な問題を指摘するなど)では精度が上がる
1時間の動画を Flash で処理すると、だいたい 3〜5分 で結果が返ってきます。
ファイルサイズの注意点
File API のアップロード上限は 2GB です。それを超える場合は動画を分割するか、解像度を落としてから渡す必要があります。会議録画であれば音声さえ明瞭であれば解像度は低くても問題ないケースが多く、ffmpeg で圧縮するプリプロセスを挟むと効率的です。
# 480p に落として音声品質は維持
ffmpeg -i input.mp4 -vf scale=-1:480 -c:a aac -b:a 128k output_compressed.mp4応用アイデア
映像理解機能の応用範囲は広いです。実際に検討しているユースケース:
- 動画マニュアルの自動テキスト化: 製品操作動画から手順書を生成
- スポーツ分析: プレー動画を渡して戦術的フィードバックを生成
- 教育コンテンツの要約: オンライン講義の重要ポイントを自動抽出
- 製品デモのQA: デモ動画の内容と公式仕様書の整合性チェック
まとめ
Gemini API の映像理解機能は、実装のハードルが低い割に実用性が高いです。File API でアップロードして、プロンプトで「何を抽出したいか」を指定するだけで動きます。
特に「録画された情報を後から整理したい」ニーズにはすぐに使えるレベルで、社内ツールとして導入する価値は十分あると感じました。Gemini Lab でも、この機能を使ったより具体的なツール実装例を順次公開していく予定です。