claude-real-video: 通过场景感知帧提取让 LLM 能够观看视频"}],

claude-real-video: 通过场景感知帧提取让 LLM 能够观看视频

概述

claude-real-video 是一个开源工具,旨在通过将视频转换为模型易于摄取的格式,让 Claude、ChatGPT 和 Gemini 等大语言模型 (LLM) "观看"视频。与许多仅依赖字幕或固定间隔帧采样的 AI 工具不同,claude-real-video 只提取重要的帧——特别是场景变化和关键视觉变化——并将其与字幕配对,同时所有操作都在用户的本地机器上运行。

解决固定间隔采样的局限性

大多数现有的视频到 LLM 的流水线(包括 Gemini 的原生视频处理)通常以固定间隔采样帧(例如,每秒 1 帧)。这种方法会产生两个主要的低效问题:

  1. 过度采样静态内容: 一个 10 分钟的静态屏幕录制将产生 600 帧几乎相同的帧,浪费上下文窗口空间并增加成本。
  2. 欠采样快速剪辑: 固定采样点之间发生的快速视觉变化往往会被完全忽略。

claude-real-video 通过结合使用场景变化检测密度底线来解决这个问题。这确保了在捕捉每一个视觉过渡的同时,通过维持最小帧频率(由 --fps-floor 定义)来确保没有长段视频被忽略。

关键技术特性

智能帧去重

为了进一步优化上下文窗口,该工具采用了滑动窗口去重过程。它不使用简单的感知哈希,而是使用缩放后的 RGB 像素差异来确定一帧是否是唯一的。

通过将新帧与最后几个保留帧的滑动窗口(由 --dedup-window 控制)进行比较,该工具可以防止同一镜头被多次发送给 LLM,即使视频使用了 A-B-A 剪辑。用户可以使用 --dedup-threshold 标志来调整此过程的灵敏度。

多模态数据提取

除了视觉内容,claude-real-video 还为 LLM 提供全面的数据包:

  • 字幕: 该工具首先尝试使用现有的字幕 (SRT/VTT) 以获得最高准确度。如果不存在,它将回退到使用 OpenAI 的 Whisper 进行本地音频转录。
  • 音频提取: 使用 --keep-audio 标志,该工具会将完整音轨保存为 audio.m4a 文件,允许具有原生音频能力的模型(如 GPT-4o 或 Gemini)分析语气和音乐。
  • 清单文件: 生成一个 MANIFEST.txt 文件来总结提取的内容,为 LLM 提供视频组件的结构化地图。

本地处理与隐私

所有处理(获取、提取和去重)都在本地完成。该工具使用 yt-dlp 进行 URL 处理,并使用 ffmpeg 进行帧和音频提取,从而确保视频数据不会被上传到云服务进行预处理。

安装与使用

系统要求

claude-real-video 需要 Python 3.10+ 并且系统路径中已安装 ffmpeg

安装

用户可以安装核心功能或包含转录功能的完整套件:

# 核心帧提取与去重
pip install claude-real-video

# 包含音频转录的完整套件
pip install "claude-real-video[whisper]"

基本命令

  • 从 URL 开始: crv "https://www.youtube.com/watch?v=..."
  • 从本地文件开始: crv lecture.mp4 -o out --lang en
  • 仅提取帧: crv clip.mp4 --no-transcribe
  • 登录受限内容: crv "https://..." --cookies cookies.txt

配置选项摘要

Flag Default Description
--scene 0.30 场景变化检测的灵敏度(数值越低 = 帧越多)
--fps-floor 1.0 最小帧捕捉频率(每 N 秒一帧)
--max-frames 150 提取的最大总帧数
--dedup-threshold 8 被视为新帧所需的像素变化百分比
--dedup-window 4 用于去重时对比的先前帧数量
--report off 生成 report.html 以可视化保留/丢弃决策

Sources