📌 核心价值:让 Claude / GPT / Gemini 真正"看懂"视频------场景感知抽帧 + 滑动窗口去重 + Whisper 转录,全程本地运行,0 Token 成本。
传统 LLM 看视频要么"只读字幕"、要么"1 fps 傻抽",10 分钟讲座 600 帧几乎一模一样。
claude-real-video用 ffmpegscene过滤器捕获每个视觉变化瞬间,再用 16×16 RGB 像素差做滑动窗口去重------A-B-A 切走又切回时,那个被 LLM 看过的镜头不会重新发一遍。
🚀 什么是 claude-real-video?
claude-real-video 是一个开源 Python CLI(GitHub 485⭐ / MIT),作者 LeoAido 在 2026-06-30 发布 v0.2.0。它解决了一个被所有 LLM 视频工具忽略的根本问题:"看视频" 不等于 "等距抽帧"。
把 YouTube 链接丢给 ChatGPT?它只看 transcript,根本不读图。丢给 Gemini?它把视频上传到 Google,按固定 1 fps 采样,10 分钟静态讲座浪费 600 帧 token。Claude?直接拒收视频文件。
claude-real-video 的做法完全不一样:本地运行,场景感知,去重转录。一行命令就能把任意视频(URL 或本地文件)拆成 LLM 真能消化的小素材包------关键帧 + transcript + 完整音轨,丢给任何 LLM 都能问"这视频在讲啥"。
核心定位:不是又一个"AI 看视频"玩具,而是工程化解决"用最少 token 让 LLM 真正理解长视频"的工具集。
✨ 核心功能一览
六大能力
| 能力 | 技术实现 | 实战价值 |
|---|---|---|
| 场景切换检测 | ffmpeg select='gt(scene,X)' 单次扫描 |
快剪视频不漏关键帧,静态讲座不浪费 token |
| 滑动窗口去重 | 16×16 RGB 像素差 + 窗口 = --dedup-window 4 |
A-B-A 切走再切回,已看过的镜头不重发 |
| 本地运行 | 全部处理在用户机器,0 上传 | 隐私视频、内部会议、未公开课程都能处理 |
| Whisper 转录 | openai-whisper 自动语言检测 |
99 种语言,自动判断 zh / en / 其他 |
| yt-dlp 拉取 | 1000+ 网站视频一键下载 | YouTube / B 站 / Instagram / TikTok 全支持 |
| 跨平台 | Python 3.10+,纯 CLI 工具 | macOS / Linux / Windows 全部跑得动 |
对比核心点:传统抽帧工具用的是"按时间等距采样"(每 N 秒取 1 帧),claude-real-video 用的是"按场景变化采样"(每次画面突变取 1 帧),后者的语义信息密度高 3-10 倍。
🛠️ 快速上手:5 分钟跑通示例
1. 安装
bash
# 基础安装(仅抽帧 + 去重)
pip install claude-real-video
# 完整安装(带音频转录)
pip install "claude-real-video[whisper]"
# 系统依赖 ffmpeg(必须)
# macOS
brew install ffmpeg
# Linux
sudo apt install ffmpeg
# Windows
winget install Gyan.FFmpeg
# 验证
ffmpeg -version
crv --help
2. 一行命令处理视频
bash
# 处理 YouTube 链接
crv "https://www.youtube.com/watch?v=..."
# 处理本地文件
crv lecture.mp4 -o out --lang zh
# 只要帧,不要转录
crv clip.mp4 --no-transcribe
# 登录态视频(自己账号的资源)
crv "https://..." --cookies cookies.txt
3. 输出结构
csharp
crv-out/
├── frames/ # 去重后的关键帧 (frame_001.jpg ~ frame_NNN.jpg)
├── transcript.txt # Whisper 转录的纯文本
├── MANIFEST.txt # 给 LLM 看的时间戳 + 帧索引 + 摘要
├── audio.m4a # 完整音轨(需 --keep-audio)
└── report.html # 可视化每帧的 keep/drop 决策(需 --report)
4. Python API 调用
python
from claude_real_video import process
r = process("https://youtu.be/...", "out", lang="en")
print(f"抽帧: {r.frame_count} 张")
print(f"转录: {r.transcript_path}")
print(f"时长: {r.duration}s")
5. 丢给 Claude 提问
把 crv-out/frames/ 整个文件夹 + MANIFEST.txt 拖进 Claude / ChatGPT / Gemini 的对话窗口,问:
- "这段视频在讲什么?"
- "作者对 X 话题的论据是什么?"
- "找出所有提到'机器学习'的片段"
注意:场景切换敏感度 --scene 越低帧数越多(推荐 0.30 起步);最大帧数 --max-frames 默认 150,超出会均匀砍掉但保留时间分布。
📊 与传统抽帧方案对比
| 对比维度 | claude-real-video | 固定间隔采样 | 云端 AI 服务 |
|---|---|---|---|
| 帧选择策略 | 场景切换 + 密度下限 | 每 N 秒固定 | 云端采样(黑盒) |
| 重复镜头 | 滑动窗口去重,每镜头仅 1 帧 | A-B-A 重复发送 | 去重策略不公开 |
| 静态幻灯片 | 10 分钟压成 1 帧 | 600 近重复帧 | 通常浪费 token |
| 快剪视频 | 捕获每个视觉变化 | 漏掉采样间帧 | 需手动调参 |
| 数据隐私 | 本地运行不上传 | 通常不上传 | 必须上传到云 |
| 输入方式 | URL 或本地文件 | 仅本地文件 | 通常仅本地 |
| 跨 LLM | 任何 LLM 都能用 | 任何 LLM 都能用 | 通常绑死单一服务 |
| 成本 | 0(ffmpeg/whisper 本地) | 0 | 订阅费 + token 费 |
💡 适用场景
场景 1:跨境课程视频摘要
功能说明 :把 Coursera / Udemy / YouTube 教学视频用 crv 一行命令处理,得到关键帧 + 转录,丢给 Claude 3 分钟出"章节摘要 + 关键概念 + 课后题答案"。
输入要求:视频 URL 或本地 mp4 / mov / mkv 文件
输出效果:
- 关键帧 50-150 张(自动去重)
- 完整 transcript.txt
- 可直接喂给任何 LLM 的 MANIFEST.txt
适用场景:
- MIT 公开课 90 分钟讲座 → 关键帧 80 张 + transcript → Claude 出学习笔记
- Bilibili 教程 30 分钟 → 关键帧 35 张 + transcript → 整理成博客
- Ted Talk 18 分钟 → 关键帧 20 张 + transcript → 出文章草稿
场景 2:长会议录像检索
功能说明 :把 2 小时公司周会录像用 crv --report 处理,得到 report.html 可视化界面,浏览器打开能直接看到每帧的 keep/drop 决策,配合 transcript 用 Ctrl+F 搜关键词秒定位。
输入要求:mp4 / mov 会议录像,ffprobe 能读取的常见格式
输出效果:
report.html包含 150 帧缩略图 + 每帧的"距离最近保留帧的像素差"transcript.txt含时间戳的纯文本([00:12:34] 张三:xxx)
适用场景:
- 内部产品评审会,找"上次关于 X 功能的讨论"
- 投资人路演录像,自动生成投资人 Q&A 列表
- 客户访谈视频,提取客户原话痛点
场景 3:自媒体二次创作素材提取
功能说明 :YouTube / TikTok / Instagram 上的爆款视频,用 crv "URL" 一行命令拉下来,保留完整 m4a 音轨 (--keep-audio)让 GPT-4o / Gemini 直接"听"音乐节奏和语气停顿,转录文本+关键帧再喂给 Claude 出脚本。
输入要求:yt-dlp 支持的 1000+ 视频网站
输出效果:
- 完整
audio.m4a(无损保留 BGM + 配音 + 音效) transcript.txt包含语气词(笑声、停顿)- 关键帧 30-100 张(按场景切分)
适用场景:
- 把英文 YouTube 教程转成中文博客(先转录→翻译→配图)
- 拆解爆款短视频的"3 秒钩子"(关键帧 + 音轨)
- 课程视频 + 字幕 + 配图 → 一键生成 Notion 学习卡
场景 4:竞品 / 用户研究视频分析
功能说明 :录屏工具录下竞品 App 操作视频 / 用户访谈视频,用 crv --scene 0.2(更敏感,帧更多)处理,配合 Gemini / GPT-4o 多模态直接做"用户行为聚类"。
输入要求:屏幕录像、相机录像、混合音频
输出效果:
- 高密度关键帧(每 2-3 秒一张)
- 配合 LLM 视觉理解直接出"用户行为时间线"
- transcript 还原对话原话
适用场景:
- 用户可用性测试 5 段录像 → 自动出"用户在第 3 步卡住 47 秒"
- 竞品 App 新功能演示 → 拆解交互流程
- 课堂实录 → 自动生成课堂笔记 + 提问列表
用户群体总结
- ✅ AI 自媒体创作者:把英文视频转中文博客,5 分钟出稿
- ✅ 产品 / UX 研究员:批量分析用户访谈录像
- ✅ 教育工作者:长课程自动出学习笔记
- ✅ 企业内部:周会 / 培训录像可检索化
- ✅ 学术研究者:讲座 / 答辩录像整理成文献笔记
- ❌ 不适合:需要实时视频流的场景(这是离线批量处理工具)
🏗️ 核心原理:为什么"场景感知 + 滑动窗口去重"是真创新
1. 单次 ffmpeg select 滤镜扫描
python
# 核心代码(src/claude_real_video/core.py:90-98)
every_n = max(1, round(_fps(video) * fps_floor))
_run(["ffmpeg", "-i", video,
"-vf", f"select='gt(scene,{scene})+not(mod(n,{every_n}))',scale=640:-1",
"-vsync", "vfr", os.path.join(frames_dir, "raw_%05d.jpg"),
"-hide_banner", "-loglevel", "error"])
一行 select='gt(scene,0.30)+not(mod(n,N))' 同时表达"场景变化时取"和"密度下限时取",单次扫描就拿到时间顺序正确的所有候选帧(避免两次扫描导致 A-B-A 乱序)。
2. 16×16 RGB 像素差去重
python
# 滑动窗口去重核心
def sig(path: str, size: int = 16) -> list[tuple[int, int, int]]:
return list(Image.open(path).convert("RGB").resize((size, size)).getdata())
def pct_diff(a, b, tol: int = 25) -> float:
changed = sum(max(abs(x[0]-y[0]), abs(x[1]-y[1]), abs(x[2]-y[2])) > tol
for x, y in zip(a, b))
return 100.0 * changed / len(a)
为什么不用 perceptual hash?
- pHash 对纯色和等亮度色变(红→绿)会"瞎"------切镜头时漏判
- 16×16 RGB 像素差 + tol=25 阈值 → 真实视觉变化 vs 噪点的硬判据
为什么是滑动窗口?
- A 镜头 → B 镜头 → 切回 A 镜头,A 已经发给 LLM 了
- 比较最后 4 帧(
--dedup-window 4),不只看上一帧 - 避免"切走又切回"导致的 token 浪费
3. 字幕优先 + Whisper 兜底
python
# 优先用视频自带/外挂字幕
sidecar_srt = src.replace(".mp4", ".srt")
if os.path.exists(sidecar_srt):
transcript = parse_srt(sidecar_srt)
elif has_embedded_subtitle(video):
transcript = extract_embedded_subtitle(video)
else:
# 兜底:Whisper 转录音频
transcript = whisper.transcribe(audio, language=lang)
自带字幕比 Whisper 准 10 倍------B 站 / YouTube 视频的字幕质量远超 ASR。作者这个"先外挂后 ASR"的策略,是工程上最务实的选择。
💰 定价方案
完全免费 + 开源:
- 代码:MIT 协议,可商用、可修改、可闭源分发
- 依赖:yt-dlp(MIT)+ Pillow(HPND)+ ffmpeg(LGPL/GPL)+ openai-whisper(MIT)
- 运行成本:0(本地算力,CPU 跑 whisper 也不慢)
- 上传成本:0(视频不上传任何云端)
和云端 AI 视频服务的对比:
- Gemini Video API: 0.002/秒,1小时视频=7.2
- ChatGPT Plus 看视频:$20/月订阅 + token 费
- claude-real-video:$0(只要你电脑能跑 Python)
💡 最大价值:你公司的产品会议、用户访谈、未公开课程------这些根本不能上传到 OpenAI / Google 的私有视频------claude-real-video 是唯一选择。
🎯 总结
claude-real-video 用 700 行 Python 代码 + 几个老牌 CLI 工具(ffmpeg / yt-dlp / whisper)拼出了一个比 OpenAI / Google 更懂"看视频"的工程方案 。它不是新模型,没有"AI"魔法,但它解决了所有云端服务都没做对的根本问题:"看视频" 不是"等距采样",是"场景变化"。
加上本地运行、跨 LLM、0 成本三大优势,它是目前处理私有视频 / 长视频 / 批量视频的最优解。
推荐指数: ⭐⭐⭐⭐⭐(满分 5 星)
适合人群:
- AI 自媒体创作者(YouTube 教程 → 中文博客)
- 产品 / UX 研究员(用户访谈视频分析)
- 企业内部(周会 / 培训录像可检索化)
- 教育工作者(长课程自动出学习笔记)
- 学术研究者(讲座 / 答辩录像整理)
立即体验:
bash
pip install claude-real-video
crv "https://www.youtube.com/watch?v=你的第一个视频"
GitHub 仓库: HUANGCHIHHUNGLeo/claude-real-video
数据截至 2026-07-03,最新信息请以 GitHub 仓库为准。