9 月初 Google 发了篇博客介绍 agentic video understanding:视频理解不再是「按固定帧率抽帧 → 全部塞进上下文」,核心思路是淘汰以前用平均地抽帧来理解视频,而是让 agent 自己去决定看哪一帧。
我照着这个思路做了个开源项目 gemini-agentic-video:一个 MCP 服务 + Agent Skill ,让 Agent 能直接理解本地视频和 YouTube 链接。
它能做什么
标准 MCP 服务,只暴露一个工具 analyze_video_agentic ,可接入 Claude Desktop / Cursor / Windsurf / Google Antigravity
也能当 CLI 用:gemini-agentic-video --video ./match.mp4 --prompt "统计所有进球时间戳"
附带标准 SKILL.md ,复制到 skills 目录就能用(这也是我在 Antigravity 里的实际用法)
本地文件和 YouTube 链接都支持
内置 configure 向导,自动验证并写入 API Key ( AI Studio 有免费额度,个人开发者不用绑卡)
和传统抽帧的区别
传统方案:长视频 → 固定 1fps 抽帧 → 几千张图全量进上下文 → Token 爆炸,还容易漏掉瞬时动作。
Agentic 方案:模型先粗筛定位,再按问题主动回看关键片段,必要时局部提高帧率复查。最终产物是一段带时间戳的分析,而不是一堆中间帧。
实测:Gemini Agentic vs FFmpeg 抽帧
我拿两个视频做了端到端对比( 20 秒足球片段 + 204 秒产品介绍视频),完整数据也放在了仓库 docs 里。
对比的结果发现:
Gemini 能准确捕捉到进球时刻,FFmpeg 不行:Gemini 明显更强。20 秒足球片段它准确抓到 14-15 秒的进球和随后的庆祝; FFmpeg 那组抽了 147 帧,却因为球被遮挡,最后保守地写成「无法确认进球」。
FFmpeg 的优势是用于截图取证。元数据、逐帧图片、接触表都能存下来,缺点是磁盘占用大(简单组 23MB ),而且它本身不理解画面和音频语义。
复杂产品视频:两组都还原了主结构,Gemini 额外给出了十几段口播、英文解说、BGM 和转场描述; FFmpeg 只能确认音轨、音量、静音,理解不了内容。
耗时上看,Gemini 理解视频的时间会长一些,但理解的效果好的多。:
20 秒视频 Gemini 363 秒 vs FFmpeg 1232 秒( FFmpeg 组明显过采样了);
204 秒视频反过来 FFmpeg 532 秒 vs Gemini 1179 秒,但 Gemini 那 1179 秒里包含 3 次失败重试,成功链路实际约 413 秒。
目前的坑(先说清楚)
必须上传到 Google 云端处理,隐私敏感素材请慎用
模型内部看了哪些帧是不可见的,重要结论建议再用 FFmpeg 抽关键帧复核
所以我自己的用法是:Agentic 负责定位和理解,FFmpeg 按它给的时间点取证复核,而不是二选一。
地址
GitHub: https://github.com/liaocaoxuezhe/gemini-agentic-video
Google 那篇博客: https://blog.google/innovation-and-ai/models-and-research/gemini-models/introducing-agentic-video-in-gemini/
演示:我用它在 Antigravity 里一句 prompt 直出了一段 42 秒的足球进球集锦(剪辑用的是 ChatCut ,视频理解走 gemini-agentic-video ): https://x.com/liaocaoxuezhe/status/2099342875456872930
Apache-2.0 开源,欢迎试用、提 issue ,也欢迎拍砖。