(来源:51CTO技术栈)
刚刚,一个名为 claude-real-video 的开源项目声称:能让任何大语言模型都‘观看’视频。
这个项目没有训练新的视频模型,也没有复杂的视觉推理框架。它的 star 数量上升速度非常快!
AI 在分析 YouTube 视频时,是真的把视频“看”了一遍吗?
对于一个几十分钟的视频来说,如果把每一帧都发送给模型,不仅 Token 成本极高,而且远远超出了模型能够处理的上下文长度。
因此,无论是 Claude、ChatGPT,还是 Gemini,在面对一个视频链接时,它们更多依赖的是视频字幕,而不是真正理解画面。
也就是说,模型听到了声音,却没有真正看到画面。
那么这个项目是怎么做到的?
核心思路:不是抽帧更多,而是抽帧更聪明
claude-real-video 的思路并不复杂。它没有试图让 Claude 去播放视频,而是在本地先完成一次“视频理解预处理”。
整个流程大致如下:先用 yt-dlp 或本地文件拿到视频源,再用 ffmpeg 做场景检测、提取关键帧、图片去重,同时用 Whisper(或者视频自带字幕)生成文字转录。最后打包成 frames/(关键帧图片)、transcript.txt(转录文本)、MANIFEST.txt(清单文件)三样东西。
最后,把这些文件一起交给 Claude/ChatGPT/Gemini ,它们并不是直接读取视频,而是在同一上下文中同时阅读:视频字幕、每个场景的关键帧图片、每张图片对应的时间轴信息。
这样一来,它获得的信息远比单纯依赖字幕丰富得多。
拆解项目五大亮点,每一步都在省 Token
传统的视频抽帧方式通常是固定频率。例如:每秒抽一张。如果一个 PPT 页面停留了 30 秒,就会得到 30 张几乎完全相同的图片。但这样既浪费 Token,也没有任何价值。
而 claude-real-video 使用的是 Scene Detection(场景检测)。
只有当画面真正发生变化时,才保存新的关键帧。
在主页,还有一个案例:同样是 58 秒的视频片段:固定 1 fps 采样率 = 58 帧 。claude-real-video 保留了实际不同的 26 帧,grid 将它们打包成 3 个联系表。更少的 token,却没有遗漏任何信息。
第二个亮点:自动删除重复图片
模型没有必要反复阅读相同画面。因此,项目还加入了图片去重机制:通过滑动窗口比较相邻图片的相似度,只保留真正发生变化的内容。
例如:100 张图片,最终可能只留下 30 张。对于 Claude 来说,理解效果几乎没有变化,但 Token 消耗却大幅下降。
第三个亮点:让画面和字幕真正对应起来
项目还会生成一个 MANIFEST 文件。把每一张关键帧对应的时间戳,和每一段字幕的时间戳关联起来。这样模型面对的不再是一堆散乱的图片,而是能清楚知道“某句话说出口的时候,画面上正好是哪一张图”。
第四个亮点:关键帧并不等于视频
新版本新增了一个很聪明的设计:“关键帧并不等于视频。”
因为单张图片只能反映某一个时刻,很多动作、动画、UI 变化,都发生在连续几帧之间。
于是,项目很快又推出了新的 Grid 功能:它会把连续的 9 张关键帧拼成一张图片。让模型一次性读到一段连续的画面序列,而不是零散的静态截图。这样做还有一个额外好处,原本前面提到的 26 张关键帧,可以进一步压缩成 3 张图,Token 消耗又降了一截。
第五个亮点:不只是总结视频,而是带着目标去分析
在0.3.0 版本里,还加入了一个新参数 why,可以在命令行里直接告诉工具‘你为什么要看这段视频’,比如:
crv "https://youtu.be/..." --why "find the pricing strategy" --kb ~/notes配套的还有一个 kb 参数,会把分析结果保存到你自己的知识库(notes 文件夹)里,并按日期命名,这样结果就不会随着 crv-out 目录被清理而消失。
免费版之外,还有一个付费的 crv Pro
还有一点,claude-real-video 开源免费的这部分,做的是“让模型看到视频”,也就是前面说的场景抽帧、去重、拼图、时间轴对齐。项目主页同时也在推广一个一次性付费(19 美元)的 crv Pro,主打“让模型看懂视频”:比如识别镜头运镜方式(固定机位/摇镜/推拉/手持)、统计剪辑节奏,以及生成一份画面之外的“感知时间轴”,记录纯看画面推断不出来的信息,比如手势、表情、语气变化、情绪、非语音的声音事件,再配一份面向短视频创作者的分析报告等。
网友:应该去掉项目名字里的Claude!
对于这个开源工具,网友的评论大多分两种。
一种是赞同项目的思路:
“这看起来很酷,但是应该去掉名字里的Claude。”
“我认为这比单纯的 LLM 相关应用更有用。”
也有网友对这个项目的一些技术方面提出疑问:
“我使用 ffmpeg 场景检测的经验是它很不稳定。它有时有效,但绝非可靠。”
写在最后
过去,我们总希望等待模型原生支持更长的视频输入。
而这个项目提供了另一种路线:不是升级模型,而是升级上下文。
模型接收到的信息,被提前组织成了最适合理解的形式。未来,无论是视频、网页、代码仓库,还是长文档,我们或许都不需要等待模型“原生支持”。
只要能够把信息组织成模型最容易理解的上下文,同样能够获得接近原生能力的效果。
各位大佬觉得这个项目怎么样?欢迎在评论区分享观点!
参考链接:
https://github.com/HUANGCHIHHUNGLeo/claude-real-video