1,727· 139 forks· Python· MIT开发工具

让 Claude 等 LLM 真正"看懂"视频的本地工具

HUANGCHIHHUNGLeo/claude-real-video

场景感知关键帧提取 + 去重 + 转录,让任何 LLM 能理解视频内容而非盲目采样,支持 URL 和本地文件,全程本地处理

成熟度维护活跃,最近提交 1 天前,0 个未解决问题,持续迭代中

项目体检

技术 · Python 3.10+ + ffmpeg/ffprobe(系统依赖) + yt-dlp(下载) + Pillow(图像) + Whisper(可选转录)

许可 · MIT 协议,可自由商用、修改和分发

活跃 · 最新版本 v0.7.15 发布于 1 天前,6 位贡献者,活跃维护中

解决什么

当前 LLM 处理视频的方式存在明显缺陷:Claude 根本不接受视频文件,ChatGPT 只读取字幕文本,Gemini 虽支持视频但按固定 1fps 采样——静态幻灯片会产生数百张重复帧,快速剪辑则会漏掉关键画面。claude-real-video 通过场景检测算法智能提取真正有变化的帧,用滑动窗口去重算法过滤 A-B-A 式切换镜头,配合 Whisper 音频转录,将视频转化为 LLM 可理解的帧序列 + 文本组合。所有处理在本地完成,用户自主决定向 LLM 提交哪些内容,避免隐私泄露。

为何火

在 Hacker News 获得 167 点赞和 62 条讨论,核心原因是击中了 AI 视频分析的真实痛点。作者在讨论中透露开发动机:"没有 LLM 真正'看'视频",而该工具用场景变化检测替代盲目采样,一个 58 秒视频从固定采样的 58 帧压缩到实际有效的 26 帧。HN 社区认可其技术路线,有开发者表示"我也做了类似工具,会深入研究你的代码并贡献",另有人将其用于交通罚单视频分析、充电速度测量等实际场景。项目提供 Web 界面(支持繁简中文)和 CLI 两种使用方式,并可通过 npx skills add 一键集成到 Claude Code、Cursor 等 50+ 种 AI 编程助手。

核心功能

智能帧提取:基于场景变化检测而非固定间隔,配合密度下限保证覆盖度。--adaptive 模式针对缓慢变化内容(动画教程、渐变效果)采用滚动邻域对比,捕捉单帧差异不明显的渐变过程。

去重算法:滑动窗口像素差异检测,访谈类 A-B-A 切镜只发送一次相同画面,大幅减少冗余帧。

音频转录:集成 Whisper(需安装 [whisper] 扩展),自动语言检测。--speakers 模式启用本地说话人分离(45MB 模型,无需账号),为每句话标注说话人 ID。

字幕锚定:针对文字密集内容(讲座、屏幕录制),--text-anchors 在字幕时间戳处强制提取帧,确保每段语音都有对应画面,需 .srt/.vtt 文件或内嵌字幕轨。

输入灵活性:支持 YouTube/Reels 等 URL(通过 yt-dlp)和本地文件,--viewer 生成本地 HTML 预览页(视频 + 关键帧网格 + 转录文本),无需网络即可查看。

目标导向分析:0.3.0 版新增 --why 参数指定分析目的(如"找定价策略"),--kb 将结果保存到笔记目录而非临时输出文件夹。

安装

# 推荐:完整功能(帧提取 + 去重 + 转录)
pip install "claude-real-video[whisper]"

# 核心功能(仅帧提取和去重)
pip install claude-real-video

# 说话人分离
pip install "claude-real-video[speakers]"

# 系统依赖:需预装 ffmpeg 和 ffprobe

安装后可用 crv 命令行或 crv-web 启动 Web 界面。集成到 AI 编程助手:npx skills add HUANGCHIHHUNGLeo/claude-real-video

适合谁

AI 应用开发者:需要让 LLM 理解视频内容(内容审核、视频问答、自动摘要)的团队,可作为预处理管道。

研究人员:分析视频数据集、提取关键帧用于标注或训练,场景检测算法比固定采样更高效。

内容创作者:快速浏览长视频找特定片段,或让 AI 生成视频脚本/字幕校对。

隐私敏感用户:所有处理在本地完成,源视频不上传,只有用户主动粘贴的帧和文本才发送给 LLM。

不适合:需要实时视频流分析的场景(工具面向离线处理);完全不懂命令行且不想用 Web 界面的用户。

社区评价

HN 讨论热度高(167 点),技术路线获广泛认可。正面观点集中在"解决真实痛点"——有用户用它分析交通罚单视频,另有人设想用于监控电池充电过程的电压/温度变化。作者在讨论中表示代码库足够小可"一次读完",欢迎贡献转录后端和网格打包优化。

争议点在于命名:有评论认为"claude-real-video"暗示 Claude 原生不支持视频,建议改名"llm-video-preprocessor"更准确。另有人质疑"Claude 明明能处理视频"(指 Claude Code 的逐帧分析),作者澄清是指 Claude 本身不接受视频文件输入,需预处理。

技术讨论中,有开发者分享将帧拼成网格图让 LLM 一次看全部帧的实验,效果尚可但漏细节;也有人提出对于运动设计类视频,直白描述动画和时序比让 LLM 推断更有效。

批评声音:"我们正在放弃基本问题解决能力,转而用大量 GPU 堆砌"——针对用 LLM 读取仪表盘数值的场景,有人指出传统计算机视觉库即可搞定,无需 LLM。反驳观点引用 xkcd 漫画:几年前图像识别还被认为不可能,技术进步改变了工具选择。

选型对比

vs Gemini 原生视频输入:Gemini 需上传视频到 Google 服务器,固定 1fps 采样;claude-real-video 本地处理,场景感知采样更精准,但需手动提取后粘贴到 LLM。

vs 固定间隔采样脚本:通用脚本(如每秒截一帧)简单但低效,10 分钟静态幻灯片产生 600 张重复帧;本工具通过去重和场景检测,同样内容可能只需 1-2 帧,token 成本大幅降低。

vs 付费视频分析 API(如 Google Video Intelligence):云 API 功能更全(对象追踪、情感分析),但按调用计费且数据上传;本工具免费开源,隐私可控,但仅提供帧和转录,高级理解需依赖 LLM。

crv Pro 付费版($19-29 一次性):在免费版基础上增加剪辑节奏分析(镜头切换、运镜)、时间轴标注(手势、表情、音高变化、声音事件),适合需要深度视频理解的专业场景。

已知坑

系统依赖:必须预装 ffmpeg 和 ffprobe,Windows 用户需手动配置环境变量,macOS 可通过 Homebrew 安装,Linux 一般自带。

YouTube 下载:中国大陆用户处理 YouTube 链接需配置代理,yt-dlp 会读取系统代理设置或通过 --proxy 参数指定。

转录语言:Whisper 自动检测语言,但方言或混杂语言可能识别不准,可通过 --language 参数强制指定(如 zh 中文、en 英文)。

内存占用:长视频(1 小时以上)提取大量帧时内存峰值较高,建议 8GB+ 内存;--grid 模式将帧打包成接触表可减少文件数但增加单张图片尺寸。

字幕锚定局限:烧录在画面中的字幕无法被 --text-anchors 识别,只支持独立字幕文件或内嵌字幕轨。

LLM 上下文限制:即使优化后,超长视频仍可能产生数百帧,需注意目标 LLM 的上下文窗口(如 Claude 3.5 Sonnet 为 200K tokens,约可容纳 1500-2000 张图)。README 建议先用 --viewer 预览帧数,必要时调整 --threshold 参数提高场景变化阈值以减少帧数。

安装方式:pip