视频上下文
模型只能阅读文本和图像,因此视频被分解为三个通道:视频附带的帖文、语音内容(字幕,否则为转录文本)以及视觉内容(帧)。脚本会探测视频文件并根据找到的内容进行路由。无声屏幕录制或带有音效的动画不会生成转录文本,此时帧承担所有信息。首先阅读bundle中声明的可用通道,然后撰写总结,使后续读者无需打开视频即可了解内容。
步骤
1. 提取
sh ~/.claude/skills/video-context/references/extract.sh <url-or-file>
该命令会打印bundle路径(默认为/tmp/video-context/<slug>/)。默认设置:每3秒一帧,最多60帧,间隔自动拉伸以适应;下载分辨率限制为1080p。可在脚本顶部配置以下参数:INTERVAL、MAX_FRAMES、MAX_HEIGHT、FORCE_TRANSCRIBE、WHISPER_MODEL、SUB_LANGS。退出码2表示缺失某个工具;请从references/setup.md安装后重新运行。
当bundle中的README.md列出每个通道的状态为“存在”、“缺失”、“空”或“跳过”时,提取完成。
2. 读取通道
首先阅读README.md:帖文文本和通道表决定接下来打开哪些内容。
- 语音。 完整阅读
captions.txt或transcript.txt。自动字幕可能会拼错产品名称;帖文文本和帧可以纠正这些错误。 - 视觉。 按时间戳顺序阅读
frames/。如果超过20帧,先每三帧读一帧,然后回到问题所涉及的片段。当两个通道都存在时,对照帧检查转录文本中的说法:演示可能说一套,而屏幕显示另一套。
当每个标记为“存在”的通道都已读取,且每个帧要么已打开,要么位于您指定为跳过的片段中,则完成。
3. 总结
在bundle中写入summary.md:
- 一段概述:格式(演示、对话、动画、屏幕录制)以及视频的核心观点。
- 按
[m:ss]顺序排列的时间线列表,每一点描述一个画面或一句话,转录内容直接引用原文。 - 一行说明通道未携带的内容:无音频、赞助商片段、帧过于粗糙无法展示快速编辑等。
当每个时间线要点都对应一个帧文件或转录文本行,且空通道说明与README表一致时,总结完成。
4. 回复
按照用户提问的详细程度回答问题,并提供bundle路径以便用户打开帧。如果问题涉及学习,则继续使用learn技能,以summary.md作为其文章分支的获取源。
工作习惯
- 需要更精细帧的片段应单独处理:使用
ffmpeg -ss <start> -t <length> -i clip.mp4 -c copy part.mp4裁剪,然后以INTERVAL=1提取part.mp4。对整个视频使用更小间隔重新处理会成倍增加必须读取的帧数。 - 转录文本默认使用英语。其他语言需要多语言模型;
references/setup.md中说明了具体模型。 - Twitter永远没有字幕,因此任何带语音的x.com剪辑始终会运行Whisper。预计处理时间约为剪辑时长五分之一。