Communitygithub.com

eternityspring/视频镜头分析

拉片:把一条成片拆成逐镜头的分析表——每个镜头的时长、景别、类别、运镜、画面。14道质量门,零依赖、零API key,只要Node和ffmpeg。

Qu'est-ce que 视频镜头分析 ?

eternityspring/video-shots 是一款专为影视分析(拉片)设计的AI Agent技能。它能将一条完整视频自动拆解为逐镜头的详细分析表,包含每个镜头的时长、景别、类别、运镜和画面描述。其核心设计哲学是“代码承担所有可计算的工作,模型只做真正需要判断的事”:切点由ffmpeg场景检测自动生成,时长由切点相减得出,运动量通过逐帧差分中位数计算;而模型仅需判断景别、类别、运镜和画面四类内容。每次模型判断后,代码会立即进行“对账”——例如声称是推拉摇移但实际运动量几乎为零,则直接拦下。该工具支持多种平台(如Claude Code、Cursor、Codex等),输出包括 shots.json、Markdown镜头表,以及一个单页交互式拉片报告:内嵌播放器(播放时同步高亮当前镜头、点击镜头跳转)、镜头节奏带、可搜索可筛选可排序的镜头表(列表/卡片两种视图,首尾关键帧并排显示,点击可放大)、景别/类别/运镜分布图、出场人物列表、质量门结果,以及导出JSON功能。整个报告单文件零依赖,离线双击即可打开。14道质量门全部由脚本进行确定性检查,确保结果可靠。用户只需安装Node.js和ffmpeg即可使用,无需任何API密钥。

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

eternityspring/video-shots

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

使用场景:当要求进行“拉片”时调用。

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。

Skills associés