Communitygithub.com

eternityspring/video-shots

Zerlegt ein fertiges Video in eine detaillierte, shot-für-shot-Analysetabelle – inklusive Dauer, Einstellungsgröße, Kategorie, Kamerabewegung und Bildinhalt. Arbeitsteilung ist fest codiert: Metriken aus Code (Schnittpunkte via ffmpeg-Szenenerkennung, Dauer als Differenz, Bewegung als Median der Frame-Differenzen), das Modell beurteilt nur die vier wirklich relevanten Aspekte (Einstellungsgröße/Kategorie/Kamerabewegung/Bild). Jede Beurteilung wird sofort vom Code validiert – wird z. B. ein Schwenken behauptet, aber kaum Bewegung gemessen, wird es direkt abgewiesen. Nutzt eine Kontaktabzüge-Ansicht (Start- und Endframe jedes Shots als zusammengesetztes Bild, ~20 Shots pro Bildschirm, A/B-Vergleich für Kamerabewegung), kein mühsames Durchblättern einzelner Frames. Fehlende oder doppelte Schnitte werden mit recut korrigiert, automatisch neu nummeriert und neu berechnet; manuelle Grenzänderungen bestehen die Qualitätskontrolle nicht. Liefert shots.json + Markdown-Shot-Tabelle + eine **interaktive Einzelseiten-Analyse**: eingebetteter Player (synchronisiert Shot-Hervorhebung beim Abspielen, Springen zum Shot per Klick), Shot-Rhythmus-Leiste, durchsuchbare/filterbare/sortierbare Shot-Tabelle (Listen-/Kartenansicht, Start-/Endkeyframes nebeneinander, Bildvergrößerung per Klick), Verteilungen von Einstellungsgröße/Kategorie/Kamerabewegung, auftretende Personen, Qualitätstore, JSON-Export. Einzelseitig, null Abhängigkeiten, offline per Doppelklick nutzbar. 14 Qualitätstore werden deterministisch durch Skripte geprüft. Null Abhängigkeiten, kein API-Key, benötigt nur Node.js und ffmpeg. Verwende, wenn nach einer „拉片“ (Shot-Analyse) gefragt wird.

Was ist video-shots?

Dieses Skill namens `eternityspring/video-shots` ist ein leistungsstarkes Werkzeug zur automatischen Shot-Analyse von Videos – ideal für Filmemacher, Videoeditoren und Content-Analysten, die eine detaillierte, reproduzierbare und interaktive Aufschlüsselung ihrer fertigen Videos benötigen. Es unterstützt die Plattformen Claude Code, Cursor und Codex und basiert ausschließlich auf Node.js und ffmpeg – kein API-Key, keine externen Abhängigkeiten. Die Kernlogik trennt strikt: Code berechnet alle Metriken (Schnittpunkte aus ffmpeg-Szenenerkennung, Dauer aus Schnittpunkt-Differenzen, Bewegung als Median der Frame-Differenzen), während ein KI-Modell (z. B. Claude) nur die vier semantischen Kategorien beurteilt: Einstellungsgröße (z. B. Nahaufnahme, Totale), Kategorie (z. B. Dialog, Action), Kamerabewegung (z. B. Schwenk, Zoom) und Bildbeschreibung. Jede Beurteilung wird sofort durch die Code-Metriken validiert – Behauptungen über Kamerabewegung, die nicht durch tatsächliche Bewegung gestützt werden, werden rigoros abgewiesen. Die Ausgabe umfasst eine JSON-Datei (`shots.json`), eine lesbare Markdown-Tabelle und vor allem eine **interaktive Einzelseiten-HTML-Reportseite** (zero dependency, offline nutzbar). Diese Seite bietet einen eingebetteten Videoplayer mit synchroner Shot-Hervorhebung, eine durchsuchbare und sortierbare Shot-Tabelle (Listen-/Kartenansicht mit Start-/Endkeyframes), eine Shot-Rhythmus-Leiste, Verteilungsdiagramme für Einstellungsgröße/Kategorie/Kamerabewegung, eine Liste der auftretenden Personen, 14 automatische Qualitätstore und Export zu JSON. Der Workflow umfasst eine „recut“-Funktion zum Korrigieren übersehener oder doppelter Schnitte, die automatisch neu nummeriert und neu berechnet werden. Insgesamt ermöglicht dieses Skill eine präzise, nachvollziehbare und interaktive Videoanalyse ohne komplexe Infrastruktur.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/eternityspring/reelbench-skills/tree/HEAD/skills/video-shots

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht video-shots?

拉片 – Zerlegt ein fertiges Video in eine detaillierte, shot-für-shot-Analysetabelle:

  • Dauer jedes Shots
  • Einstellungsgröße
  • Kategorie
  • Kamerabewegung
  • Bildbeschreibung

Die Arbeitsteilung ist fest im Code verankert:

  • Metriken stammen aus Code (Schnittpunkte via ffmpeg-Szenenerkennung, Dauer als Differenz der Schnittpunkte, Bewegung als Median der Frame-Differenzen)
  • Das Modell beurteilt nur die vier wirklich relevanten Aspekte: Einstellungsgröße / Kategorie / Kamerabewegung / Bildbeschreibung
  • Jede Beurteilung wird sofort durch den Code validiert – wird z. B. ein Schwenken, Neigen oder Zoomen behauptet, aber tatsächlich kaum Bewegung gemessen, wird dies direkt abgewiesen.

Die Ansicht erfolgt als Kontaktabzüge (jeweils Start- und Endframe jedes Shots als zusammengesetztes Bild, ~20 Shots pro Bildschirm, A/B-Vergleich für Kamerabewegung), nicht durch mühsames Durchblättern einzelner Frames.

Erkannte Fehler (fehlende oder doppelte Schnitte) werden mit recut korrigiert (Schnitte hinzufügen oder zusammenführen), automatisch neu nummeriert und neu berechnet. Manuelle Grenzänderungen bestehen die Qualitätskontrolle nicht.

Ausgabe:

  • shots.json
  • Markdown-Shot-Tabelle
  • Interaktive Einzelseiten-Analyse (HTML, zero dependency, offline per Doppelklick nutzbar):
    • Eingebetteter Videoplayer (synchronisiert Shot-Hervorhebung beim Abspielen, Springen zum Shot per Klick)
    • Shot-Rhythmus-Leiste
    • Durchsuchbare, filterbare, sortierbare Shot-Tabelle (Listen-/Kartenansicht, Start-/Endkeyframes nebeneinander, Bildvergrößerung per Klick)
    • Verteilungen von Einstellungsgröße / Kategorie / Kamerabewegung
    • Liste der auftretenden Personen
    • 14 Qualitätstore (alle werden deterministisch durch Skripte geprüft)
    • Export zu JSON

Technische Voraussetzungen:

  • Null Abhängigkeiten (bis auf die Ausgabe-HTML-Datei)
  • Kein API-Key erforderlich
  • Nur Node.js und ffmpeg nötig

Verwendung: Wenn du nach einer Shot-Analyse („拉片“) gefragt wirst, verwende dieses Skill.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

eternityspring/reelbench-skills

把一条视频重建成「只有画面和声音」的干净文件——**源片的元数据一概不搬**: GPS、设备型号、账号 ID、创建时间、章节、GoPro 的遥测轨,全部留在原地。 走的是白名单而不是黑名单:不列要删什么,只说带什么过去(画面一条流、声音一条流), 隐私保证来自结构,不来自枚举。 难点不在容器 tag,在**看不见的那几层**:x264 把完整编码参数写成 SEI 塞在码流里、 AAC 把版本号写进 DSE、avc1 的 compressorname 里还有一份——`ffprobe` 一个都看不见。 五个藏身处逐一堵死,每一处都有实测。 默认 `--mode copy`:**画面逐字节照搬**(cmp 验证过),只重编音频,53 秒的片子 1.3 秒跑完; `--mode encode` 完整重编码,多杀掉码流域的东西。 验收不靠声称:把源片所有元数据字符串当「针」,在输出文件里做**字节级扫描**, 扎到一根就红。12 道门全部由脚本确定性检查。 零依赖、零 API key,只要 node 和 ffmpeg。 Use when asked to 清元数据、去元数据、抹掉视频信息、视频隐私、去水印信息、 strip video metadata、remove exif from video、scrub video。

eternityspring/reelbench-skills

把拉片数据和原片合成一条**能直接看的视频**:一边是画面,一边是这一镜的分镜信息 (镜号、起止、时长、景别、类别、运镜、画面描述、台词),**镜头切了信息跟着切**, 镜头表自动滚动并高亮当前这一镜。 版式只看原片的宽高比:**横版 / 方版 → 画面在上、信息在下;竖版 → 画面在左、信息在右**, 画面永远原样缩放,不裁不拉。 镜头表**随播放滚动**:切点处滚一小段把当前镜头带到锚点、随后停住,高亮条同步滑过去。 实现上只截三张图(底板 + 铺开的长图 ×2),滚动与高亮由 ffmpeg 按时间裁窗, **布局全在 scripts/panel.css 里,改它就能改版式**,不用碰脚本。 吃 video-shots 产出的 shots.json(有 frames/ 就把关键帧当缩略图用)。 零 npm 依赖,用 ffmpeg 合成、无头浏览器渲面板。 Use when asked to 导出视频、合成视频、分镜视频、带分镜信息的视频、解说版视频、 video with shot info、annotated shot video。

Verwandte Skills