• liaocaoxuezhe

    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 ,也欢迎拍砖。

    主楼
  • liaocaoxuezhe

    大家可以试用看看,加上这个 skills, 搭配 google 的 api key ,视频理解好用了很多。

    #1
  • Loker

    一定要 gemini 吗? 其他 llm 有测试结果不?

    #2
  • liaocaoxuezhe

    @Loker 目前只有 gemini 有 agentic 理解的能力,像豆包千问等等,都还是平均地抽帧。

    #3
  • liaocaoxuezhe

    @liaocaoxuezhe 也不是平均地,就是算法决定抽哪些帧。视频变化快的地方,提高抽帧率;变化慢的地方,降低抽帧率;

    #4
  • McGrady222

    用谷歌的 agy 可以吗?

    #5
  • laurent

    实际上任何一个能读图像的模型应该都可以
    不需要自己提供截图,直接在 AI Agent 上 prompt: "用 ffmpeg 提取 @video_file.mkv 中的...."就行了
    AI Agent 会自己通过字幕提示/二分搜索等等方法,找到想看的帧,自己截图的理解的。

    Google 只是把这个过程封装成一个 API 而已。就相当于开一个 subagent 处理这个 task 。

    #6
  • ddoyou

    如果是在大量视频里找一个场景呢,例如闪过的红色房子

    #7
  • youwink

    codex 已经支持用剪影剪辑了

    #8

发表回复

登录后回复