video-shots SKILL.md skillA

video-shots from eternityspring/reelbench-skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add eternityspring/reelbench-skills/video-shots@v1.0.0

Pins v1.0.0 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
eternityspring/reelbench-skills
Path
skills/video-shots/SKILL.md
Versions recorded
4
Latest version
v1.0.0, committed Sep 12, 2026
First version recorded
Sep 11, 2026
Size
13,821 bytes
Repository stars
1,205
License
Apache-2.0

拉片:把一条成片拆成逐镜头的分析表——每个镜头的时长、景别、类别、运镜、画面。 分工刻在骨子里:**能量的都由代码量**(切点来自 ffmpeg 场景检测,时长是切点相减, 运动量是逐帧差分的中位数),模型只判断它真正该判断的那几件事(景别 / 类别 / 运镜 / 画面 / 节奏), 然后每一条判断都被代码当场对账——**声称推拉摇移却实测几乎不动,门直接拦**。 看片走联系表(每镜起手帧 + 收尾帧各拼一张大图,一屏二十几个镜头,a/b 对照就是运镜), 不是一张张翻。检测漏刀多刀用 recut 补刀并刀,自动重编号重算时长,手改边界过不了门。 产出 shots.json + Markdown 镜头表 + **单页交互式拉片报告**:内嵌播放器(播放时同步高亮镜头、 点镜头跳转)、镜头节奏带、可搜索可筛选可排序的镜头表(列表 / 卡片两种视图、首尾关键帧并排、 点图开大图)、景别类别运镜分布、出场人物、质量门、导出 JSON。单文件零依赖,离线双击能开。 15 道质量门全部由脚本确定性检查。 零依赖、零 API key,只要 node 和 ffmpeg。 Use when…

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

## video-shots

给成片**拉片**——把一条片子拆成逐镜头的分析表:**时长、景别、类别、运镜、画面**。

**前提刻在骨子里:镜头边界是量出来的,不是看出来的。** 模型看视频最不可靠的就是报时间——
「这个镜头大概 3 秒」和「2.97 秒」差的不是精度,是这份表能不能用。所以这里划一条死线:

| 谁来定 | 什么 | 怎么定 |
| --- | --- | --- |
| **代码** | 切点、时长、片长、帧率 | ffmpeg 场景检测 + ffprobe,两位小数 |
| **代码** | 每个镜头的实测运动量 | 逐帧差分曲线的区间中位数(两端剔除,避开切点尖峰) |
| **模型** | 景别、类别、运镜、画面、节奏 | 看关键帧判断——**只有这几件事是模型的活** |
| **代码** | 判断对不对 | 15 道质量门,逐条对账 |

最硬的一道门是**运镜实测对账**:摄影机真动了,像素不可能不变。所以「声称推/拉/摇/移/跟,
实测帧间变化接近 0」这一向直接拦——这是模型拉片最常见的幻觉。反过来(声称固定、实测很动)
**不拦**,只出提示:固定机位前面有人跳舞,帧间差一样会爆。

`{baseDir}` = 本文件所在目录。脚本 `{baseDir}/scripts/video-shots.mjs`,零依赖,`node` 直接跑。

**边界(不做的事)**:不转写语音(没有 ASR,台词靠画面上烧录的字幕读,读不到就留空并说明)、
不做人脸识别与人物自动归并(`cast` 是人工编号)、不评价片子好坏(报告只给事实和统计)、
不剪辑不导出片段、不做镜头内的物体检测。

---

### Step 0 — 定输入与范围

只要一个视频文件。先问清两件事,问不到就按默认走并在汇报里说明:

- **拉全片还是拉一段**:全片是默认。只要某一段就先用 ffmpeg 裁出来再拉,别在整片上标一半。
- **拉来干什么**:做仿写参考(重画面与运镜)、做剪辑节奏分析(重时长与类别)、
  做投放素材盘点(重产品镜与字卡)。用途不同,`note` 里该多记什么不同——**表的结构是一样的**。

### Step 1 — seed 工作底稿 ⛔ 切点在这一步定死

```bash
cd <输出目录>
node {baseDir}/scripts/video-shots.mjs seed <video> --track track.json --title "<片名>" > shots.json
```

stderr 会报:片长、帧率、分辨率、检测到几个切点、合并后几个镜头。**先看这一行再往下走**:

- 平均镜长十几秒、镜头数明显偏少 → 阈值高了,`--threshold 0.15` 重跑(暗戏、慢片、
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add eternityspring/reelbench-skills/video-shots@sha256:73b5584f5e6f837c

The line at the top of this page pins the label v1.0.0, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_4zmdtzjvof5jd3kk.svg)](https://markdownregistry.com/a/art_4zmdtzjvof5jd3kk)

2 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 4 versions of this file, between Sep 11, 2026 and Sep 12, 2026, more than one a day.

versioncommittedcommitsizeaudit
v1.0.0 latest2026-09-12 866cea9 13,821 BA view · diff
v1.0.02026-09-12 86db65f 13,614 BA view · diff
v1.0.02026-09-11 cf50770 12,888 BA view · diff
v1.0.02026-09-11 4376ef5 12,383 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (13821 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

eternityspring/reelbench-skills · 1,205 stars · license Apache-2.0 · pushed 2026-10-24 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_4zmdtzjvof5jd3kk
GET https://markdownregistry.com/api/v1/resolve?ref=eternityspring/reelbench-skills/video-shots
GET https://markdownregistry.com/api/v1/blob/73b5584f5e6f837c71d6e321f2370f5144d050034bb1b7b236636f84b936c080

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from eternityspring/reelbench-skills

video-scrub SKILL.md skill
eternityspring/reelbench-skills · skills/video-scrub/SKILL.md · 把一条视频重建成「只有画面和声音」的干净文件——**源片的元数据一概不搬**: GPS、设备型号、账号 ID、创建时间、章节、GoPro 的遥测轨,全部留在原地。 走的是白名单而不是黑名单:不列要删什么,只说带什么过去(画面一条流、声音一条…
v1.0.0 · audit A · 1,205 stars
video-sync SKILL.md skill
eternityspring/reelbench-skills · skills/video-sync/SKILL.md · 把拉片数据和原片合成一条**能直接看的视频**:一边是画面,一边是这一镜的分镜信息 (镜号、起止、时长、景别、类别、运镜、画面描述、台词),**镜头切了信息跟着切**, 镜头表自动滚动并高亮当前这一镜。 版式只看原片的宽高比:**横版 /…
v1.0.0 · audit A · 1,205 stars

Every file in eternityspring/reelbench-skills

Browse by kind, by grade A, or by owner.