worldwonderer/video-understanding
> 把视频分析为结构化理解索引:场景检测、ASR 转写、逐场景 VLM 观察、静音窗口、融合时间线和写作 brief。 用于理解、索引或总结视频,也作为后续创作前的分析阶段。输入视频文件;输出 scenes.json、 asr_result.json、vlm_analysis.json、silence_periods.json、timeline_fusion.json、agent_narration_brief.md。 触发词:视频理解、视频分析、视频索引、video understanding、analyze video、看懂视频。
npx skills add https://github.com/worldwonderer/video-recap-skills --skill video-understanding
本技能把源视频转成 Agent 与下游阶段可读取的理解索引。它的创作角色是素材观察员 / 场记,不是导演:
scenes.json,包含切点、时长和废片段过滤结果。mimo-v2.5-asr 写时间戳对白 asr_result.json。silence_periods.json,标注安静窗口与 has_speech。vlm_analysis.json,包含场景描述、深层分析和 frame_facts。timeline_fusion.json、asr_writing_chunks.json 和 agent_narration_brief.md。各阶段只有在输出产物与 provenance sidecar 同时匹配当前视频及影响结果的设置时才会复用;--force 强制重算。
# ffmpeg: brew install ffmpeg | apt install ffmpeg | choco install ffmpeg
export MIMO_API_KEY=***
ASR 使用 mimo-v2.5-asr;VLM 使用 mimo-v2.5。--skip-asr 可跳过对白转写,但完整理解仍需要 MIMO_API_KEY 运行 VLM。--mimo-video-overview 可开启按场景块的视频概览。
若 work_dir/background_research.json 存在,本技能会把剧情梗概和角色名折入 VLM 上下文;--context 可补充一条简短提示。
下面的 scripts/... 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。脚本不从其他技能目录读取文件;外部输入仅限命令显式传入的视频、参数与 work_dir 产物。
python3 scripts/understand.py <video> --work-dir <work_dir> \
[--context "节目名/角色名"] [--scene-threshold 0.1] [--skip-asr] [--mimo-video-overview] [--force]
| 文件 | 内容 |
|------|------|
| scenes.json | 场景切点、起止时间与时长 |
| asr_result.json | [{start, end, text}] 时间戳对白 |
| vlm_analysis.json | 逐场景描述、深层分析与 frame_facts |
| silence_periods.json | [{start, end, duration, has_speech}] 安静窗口 |
| timeline_fusion.json | VLM、ASR 与静音信息的统一时间线 |
| asr_writing_chunks.json | 按句界和场景切分的 ASR 写作块 |
| agent_narration_brief.md | Agent 首先阅读的创作简报 |
后续写作阶段根据创作简报与索引制定方案并写 narration.json。
references/research-guide.md,产出 background_research.json。references/data-schema.md。work_dir 写产物并停止。Take worldwonderer/video-understanding from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference brew.
Without those the skill loads but fails at the first command.