ChatGPTやClaudeなどのLLMに動画を解析させるとき、裏では「字幕(書き起こしテキスト)」だけが読み込まれ、映像自体は無視されているのをご存知ですか?動画ファイルを直接アップロードできなかったり、あるいはGeminiのように動画を読み込めるLLMでも、標準では固定の間隔(デフォルト 1 fps)でフレームをサンプリングするため、素早いカット割りを見落とす問題があります。
本日は、動画の場面転換(シーンチェンジ)を検知して重要なフレームだけを自動抽出し、LLMが安価かつ正確に映像を理解できるようにするオープンソースツール「claude-real-video」について解説します。
従来の「AI動画理解」におけるサンプリングの課題
ほとんどのAI動画ツールやスクリプトは、1秒に1枚といった「固定間隔」でフレームを抽出します。しかし、このアプローチには大きな無駄と漏れがあります。動きのない静止画のようなスライド発表では無駄な重複フレームが大量に発生し、コンテキスト(トークン)を無駄に消費してしまいます。一方で、展開の早いカット割り動画では、重要な瞬間を見逃してしまうリスクが常に付きまといます。
場面転換を検知する動的サンプリング
claude-real-video(CLIコマンド crv)は、この課題をシーン検知とFPSフロアを組み合わせることで解決しています。動画全体の場面転換(シーンチェンジ)を自動でキャッチし、変化のあった瞬間だけを確実にフレームとして抽出します。また、変化の少ない動画でも最低限の間隔(デフォルトは1秒に1フレーム)を維持するFPSフロアを設定できるため、動きの激しい動画と静かなスライド発表のどちらも最適にカバーできます。
実ピクセル差分による重複排除(デデュプリケーション)
さらに、抽出したフレームから「ほぼ同じ画面」を賢く排除します。このデデュプリケーション処理には、画像認識でよく使われる知覚ハッシュ(perceptual hash)ではなく、縮小したRGBピクセルの実差分を利用しています。これにより、ハッシュアルゴリズムでは見逃しがちな「平坦な色の変化」や「同じ輝度で色相だけが変わる変化」を正確に判定できます。
また、スライド窓(デフォルトで直近4フレーム)を用いて比較を行うため、A-B-Aのカットバック(対話シーンなどでのカメラ切り替え)で以前に見せたシーンの重複送信を防ぎ、モデルに送るフレームを最小限に絞り込みます。実行時には report.html が生成され、どのフレームがなぜ保持/削除されたかの差分をビジュアルで確認して調整することができます。
既存字幕の優先利用とWhisperの自動フォールバック
動画の理解には音声(文字起こし)も欠かせません。claude-real-video は、動画ファイルにすでに字幕ファイル(.srt / .vtt)が隣接している場合や、動画内に字幕トラックが埋め込まれている場合はそれを自動で読み込みます。これにより、高コストな再文字起こし処理をスキップできます。
字幕が見つからない場合のみ、ローカルの Whisper(openai-whisper)をフォールバックとして自動起動し、音声を文字起こしします。また、オプションで元の高音質音声トラック(audio.m4a)を保存することも可能で、音声認識やマルチモーダルモデルがBGMや効果音、トーンを直接聴いて分析するのにも役立ちます。
AIへの入力と実用メリット
処理が完了すると、ツールは frames/ フォルダに厳選されたJPG画像、transcript.txt に書き起こしテキスト、そして全体を要約した MANIFEST.txt を出力します。利用者はこのフォルダを丸ごと Claude や ChatGPT、Gemini にドラッグ&ドロップして質問するだけで、AIに「実際に動画を見せた」状態での対話が可能になります。
最大の特徴は、これらの処理がすべてローカルPC上で動作する点です。外部のクラウドサービスに機密動画をアップロードする必要がないため、未公開のプロトタイプデモ動画や社内ミーティングの録画など、機密性の高いファイルも安全に処理できます。
プロジェクト情報
本ツールはMITライセンスのオープンソースとしてGitHubで公開されています。詳細なパラメータやインストール方法は下記URLよりご確認ください。



