产品上新

claude-real-video:把视频“翻译”成 Claude 能读的文件夹

932 颗星、HN 165 分的工具做了一件小事:让 Claude 也能“看”视频。

2026年7月6日 · 周一 深度报告 中置信 重要度 3/5

本文要点

  • 从'固定 1fps 抽帧'变成'场景检测+滑动窗口去重',单视频 token 量下降一个数量级
  • 从'只能本地文件'变成'yt-dlp URL 输入+可选 cookie',覆盖 YouTube、Instagram、TikTok
  • 从'只抽帧'变成'抽帧+字幕+MANIFEST+可选音频+本地 viewer',输出结构化、可直接喂 LLM

阅读辅助

先看数字、证据和来源,再读正文。

936 GitHub Stars
51 GitHub Forks
5 条 Claim Audit

claude-real-video 用场景检测+滑动窗口去重把视频压成 5–15 张关键帧+字幕,比固定 1fps 节省 90% 以上 token

4 个时间点

2026-07-03 · v0.2.0、v0.3.0、v0.4.0 连续发布,PyPI 三日密集出基础版本(场景检测、转写、URL 输入)

5 个来源 5 个非 X 来源

它做了一件什么事

一句话:把视频”翻译”成一个 Claude、ChatGPT 网页版、本地 LLM 都能读的文件夹——里面是几张”真不一样”的关键帧、一份字幕文本、一份 MANIFEST 索引,外加可选的完整音轨。

作者 cortexosmain(真名 Leo / HUANGCHIHHUNGLeo)在 README 里给了一句相当挑衅的副标题——“让 Claude 或任何 LLM 真的”看”视频”。挑衅在于:当下的 LLM 三巨头里,Gemini 系列原生直吃视频(含 Flash Lite),ChatGPT 网页版主要读转写文本Claude 全系仍然不接视频文件。也就是说,“Claude 看视频”这件事在 2026 年 7 月并不存在——除非你愿意先把视频拆成帧。

crv(claude-real-video 的 CLI 简称)的解法不复杂,单条 ffmpeg select 表达式就能完成核心抽取:

  • select='gt(scene,0.30)' 抓场景变化超过 0.30 的瞬间——画面真的切了,才抽一帧;
  • 配合一个”密度下限” fps-floor=1.0 兜底——即使整段视频一动不动,也至少每秒留 1 帧;
  • 接着做滑动窗口去重:把当前帧和最近 4 张已留帧做降采样后的像素差,差异小于 8% 就丢掉。这一步专门对付”A→B→A”这种回切镜头(典型如播客主持人的近景/远景切换);
  • 字幕优先用视频里嵌的 .srt/.vtt,没有就 Whisper 转——pip install "claude-real-video[whisper]" 多装一个 extra 就行;
  • 全部跑在本地,输出目录长这样:
crv-out/
  frames/001.jpg 002.jpg ...
  transcript.txt
  audio.m4a          # --keep-audio
  MANIFEST.txt       # 给模型看的"目录"
  viewer.html        # --viewer 本地预览页

作者在 HN 自述:10 分钟的演示视频从”固定 1fps 的 ~600 帧”压到 5–15 帧,token 节省自报 90%+。仓库 README 里贴了一份更细的演示:58 秒快剪视频,1fps 抽 58 帧,crv 只留 26 帧;一段 10 分钟的静态幻灯片,1fps 抽 ~600 张几乎一模一样的帧,crv 直接压到 1 帧

为何要做”场景感知”——固定采样踩过哪些坑

这件事之所以有人愿意再做一遍,是因为过去三年开发者试过的方案都不太对:

方案抽帧逻辑致命问题
固定 1 fps每秒 1 张静态幻灯片出 600 张”白底黑字”几乎一样的图;快剪视频漏掉切镜瞬间
固定 N 秒每 N 秒 1 张解决不了”密度自适应”——10 分钟幻灯片照样冗余,30 秒快剪照样漏帧
仅转写Whisper 出文本视觉信息全丢;演示文稿、产品 UI、运动画面全部归零
ffmpeg select=gt(scene,...) 裸用场景检测漏掉缓慢运动(zoom/pan),也漏掉”重复镜头”——同一个特写来回切会反复保留
Gemini 原生视频云端直吃视频必须出云;Claude/ChatGPT 用户用不上;隐私敏感场景不可接受

crv 的差异点在第三和第四格的中间:场景检测 + 滑动窗口去重 + 密度下限三件套,把”变化不够大就不抽”和”密度低于 1fps 强制补抽”两个对立约束同时满足。这一步看起来只是工程细节,但实际效果是 token 量的 10× 差距——这也是 HN 评论区把它和 Gemini 路线放在一起比较时,它还能站得住的根本原因。

关键技术参数(README / PyPI 0.5.2)
标志默认含义
--scene0.30场景检测灵敏度,越低抽得越密
--fps-floor1.0密度下限,最少 N 秒 1 帧
--max-frames150硬上限,防止超长视频爆炸
--dedup-threshold8像素差低于 8% 视为重复
--dedup-window4与最近 4 张已留帧比较
--langautoWhisper 语言
--why "<prompt>"把分析焦点写进 MANIFEST,让 LLM 知道重点看什么
--kb <dir>把结果存成日期命名的 Markdown 笔记
--cookies <file>Netscape 格式 cookie,给 Instagram/TikTok 这类受限源
--vieweroff生成本地 HTML 预览页

依赖:Python 3.10+ / ffmpeg + ffprobe(系统装,非 pip)/ yt-dlp / 可选 openai-whisper。许可 MIT。

932 颗星背后,HN 评论区在吵什么

Hacker News 首页贴出当日拿到 165 分、56 条评论,对一个小工具来说算现象级。但评论区分裂明显,大致三条主线:

第一条主线:直接用 Gemini 不好吗?

讨论的主导意见由 fzysingularity 拉开——“这其实是种相当贵的’让 Claude 看视频’方式”,并推荐了 vlm-run.github.io/mm(HN 当天 404,评论区已互相补刀)。thisisit 跟进:“Gemini 最擅长这个,把视频链接给它就行。” achatham 给了一组常被引用的数据:Gemini 3.1 Flash Lite 处理 1 小时视频约 $0.24——比绝大多数本地抽帧方案省心且便宜。newswasboring 进一步现身说法,用 Gemini 分析摔跤比赛视频做”动作分镜+观众反应追踪”。

作者在评论区做了限定回应:crv 面向的是不能用 Gemini 的场景——Claude、ChatGPT 网页版、本地模型、隐私敏感或离线场景。这条边界其实相当重要,否则工具定位会被”Gemini 已经能干”直接吞掉。

第二条主线:隐私与”在我机器上”的语义

bonoboTP 直接质疑:“‘在我机器上’的说法有点取巧——你最终不还是把帧发给 Anthropic?” fny 替作者回了一句关键事实:crv 自身只产帧和文本,发不发、发给谁,由调用方决定。这正是 MIT 开源和”商业 SaaS”的分界——同样的输出,可以喂 Claude API,可以喂本地 Ollama,可以喂 Qwen2.5-VL,也可以只喂一个 Notion。

这条线对国内/企业合规场景尤其关键。

第三条主线:keyframes 真的等于视频吗?

octember 提了一个 HN 上被反复引用的根本性疑问:“关键帧不是视频。运动、物体恒存性,这些都不是 Claude 从一组静图能推断的。” gvkhna 报告说把帧拼成联系表喂 Claude 时”细节丢了很多”;noufalibrahim 试过类似思路重建 DOS 游戏过场动画,Claude”15-16 个精灵图只能对上一两个”。Lerc 把这变成一个开放命题——能不能让模型在关键帧之间推断运动,可能本身就是个不错的 benchmark。

dingody 则觉得 2 fps 已经够了;high_byte 戳了 ffmpeg 场景检测本身的稳定性(“flaky”);Frost1x 反向举证说 ChatGPT 通过自己编排的”抽帧 + 图像识别 + 运动插值”成功分析过一段视频——也就是说,crv 解决的问题(自动抽帧+打 manifest)只是工作流的一半,另一半(让模型真”理解”时间维度)仍未解。

命名之争也算一条副线:walrus01 建议改名 llm-real-video(“别拿厂商名命名”),fragmede 打趣叫 Elmerview作者当天就在 PyPI 加挂了 llm-real-video 同名包——GitHub 仓库名保留原样以维持链接稳定。这种”被 HN 教育一下午就改”的速度,也是为什么这个项目能持续拿到关注。

商业化试探:$19 的 crv Pro 在卖什么

README 和 PyPI 描述里反复提到了一个商用付费版 crv Pro——同站点 leoaido.com/crv-pro/,限时创始人价 $19 一次性。它做的是 README 里没列的几件事:

  • 镜头运动分类(静/摇/俯仰/推拉/手持);
  • 剪辑节奏与节奏曲线分析;
  • 感知时间轴——手势、表情、声音音高、情绪、声学事件的时间对齐;
  • 三档报告模式--mode watch(观众视角)、--mode creator(创作者视角)、--mode full
  • 7 月新增:音乐状态时间轴、独立语音情感分析、互动式 viewer dashboard。

按作者的说法,这部分能力建立在基础版输出的帧之上,再叠一层”理解镜头语言”的分析。对个人创作者做拆片、对运营做竞品视频拆解,确实有付费点。但要注意:Pro 端的所有”情绪/节奏/感知”能力都是作者单方宣称,无独立 benchmark——这也是它在 HN 上没被重点讨论的原因,大家对工具的判断还停留在免费层。

这个分层(MIT 开源抽帧层 + $19 付费分析层)的产品结构,其实正是过去两年”开发者工具变现”的一种典型路径:免费层解决”能用”,付费层解决”好用”。GitHub Star 是免费层的天花板,Stripe 收入才是护城河。

早报观点

早报观点

判断一:crv 把多模态缺口体感做成了一个 30 行的可执行命令。ffmpeg 场景检测、Whisper 转写、yt-dlp 下载——这些组件每一个都存在了多年。但把它们串成一条对 LLM 友好的输出结构,并且把”为什么我需要这 5 张帧”这件事写进 MANIFEST 让模型读到,这件事过去没人做。这正是开发者工具最难也最有杠杆的一步:从”能拼出来”到”装上就能跑、跑完 LLM 直接能用”。

判断二:和 Gemini 原生视频的关系,分场景并存。HN 评论里把 crv 和 Gemini 当成对立选项是错的——它们服务的是不同子集:

  • Gemini 优势:原生时序理解(运动、音画同步、长程依赖)、API 便宜(Flash Lite $0.24/h 量级)、多语言直吃;
  • crv 优势:本地/隐私/离线只调 Claude 或本地模型控制输出结构(manifest 可编程)、管自己的关键帧选择(“为什么这 5 帧”可解释)。

对一个”我就要 Claude 但视频不能出云”的工程师/合规/法务场景,crv 是当下少数能用的工具。这条赛道的 TAM 不大但稳。

判断三:932 颗星的另一面,是 Claude 长期不直吃视频这件事让开发者社区积累了相当强的”补丁欲”。HN 评论里有人追问”什么时候 Claude 自己能看视频”,这个问题 Anthropic 迟早要正面回答。在那之前,claude-real-video 这类工具会持续有人 star、有人改、有人做付费层——它本质上是用开源社区填补商业模型的能力缝隙。这种”能力缝隙—社区工具—付费层”的三段式,是过去两年 AI 工具生态里反复出现的剧本(Cursor → Continue、Cognition → aider、Anthropic Artifacts → v0)。

反面 caveat:需要承认的几条边界——(1) 关键帧永远不等于视频,运动、时间连续性、声音节奏这些维度静态帧不携带,这事 crv 没解,未来相当长一段时间也解不掉;(2) whisper 转写在嘈杂环境、方言、专业术语下准确率仍不稳定,抽帧再准也救不回来;(3) ffmpeg 场景检测本身有 flakinesshigh_byte HN 评),慢速推拉、淡入淡出会被吞掉;(4) 项目由单人维护,节奏受限于作者时间和精力,2026-07-03 到 07-05 三天连发六个版本本身就是冲刺节奏,长期可持续性未知。

接下来看什么

  • v0.6 路线:是否会引入”长视频分段摘要 + 时间戳交叉引用”——这是 HN 上 dingody 等人提到的”2 fps 仍然不够”的直接回应方向。
  • 作者对”运动不可推断”的回应:是否会引入光流编码、运动矢量,或干脆接 SAM2 / Video-LLaVA 类的辅助模型给关键帧补”运动标签”。
  • crv Pro 的真实数据:付费版能否留下用户、是否会有第三方独立 benchmark——目前所有”镜头分类/感知时间轴”能力都来自作者单方宣称。
  • Gemini / Claude 4 系列原生视频:如果 Claude 在下半年原生直吃视频(已有相关内部信号传闻),crv 这类工具会面临”被模型原生能力吞掉”的压力;差异化只能落在本地/可控/可编程这条更窄的路上。
  • 中文场景适配:目前 Whisper 在中文/方言/方言+音乐环境下的表现仍是瓶颈;下一个 fork 可能就是”中文 LLM 友好的本地 Whisper 替代 + 字幕校准”。
  • 竞品恢复:vlm-run 的 mm 仓库当日 404 后已恢复,定位相近(云端 keyframe 提取服务),生态分工会如何演化值得跟。

信源限制说明:本文主体信源为 GitHub 仓库(README + 代码 + Release)、Hacker News 首页讨论(56 条评论原始文本)、PyPI 元数据页、作者个人站 leoaido.com/crv-pro/未做独立运行验证(pip 安装、跑示例视频);“600→5-15 帧”的压缩比来自作者 HN 自述,未做第三方 benchmark 复测;Gemini Flash Lite $0.24/h 的数据来自 HN 评论者 achatham 自报,未引官方 API 定价页原文——若需严谨对比,建议查阅 Google AI Studio 官方定价。