Communitygithub.com

eternityspring/video-shots

將影片拆解為逐鏡頭分析表,包含時長、景別、類別、運鏡、畫面,並產生互動式分析報告。

video-shots 是什麼?

此技能可將成片自動拆解為逐鏡頭分析表(拉片),涵蓋每個鏡頭的時長、景別(如遠景、中景等)、類別(如對話、動作等)、運鏡方式(推、拉、搖、移等)以及畫面描述。其核心分工為:由 ffmpeg 場景偵測確定剪接點,透過程式碼計算運動量等客觀數據;AI 模型僅負責判斷景別、類別、運鏡與畫面四項主觀分類。每次 AI 判斷都會與程式計算的客觀數據即時對帳,例如若模型標記為「推拉搖移」但實際動作量極低,則自動攔截。輸出包含 shots.json、Markdown 鏡頭表以及單頁互動式 HTML 報告,內嵌播放器(播放時同步高亮當前鏡頭、點擊鏡頭可跳轉)、鏡頭節奏帶、可搜尋/篩選/排序的鏡頭表格(列表與卡片兩種視圖,並排首尾關鍵幀,點圖可放大)、景別/類別/運鏡分佈圖、出場人物、14 道質量門(由腳本確定性檢查)以及 JSON 匯出功能。此技能為零依賴、零 API key,僅需 Node.js 與 ffmpeg,離線雙擊 HTML 即可開啟。適用於影視後期、影片分析、剪輯審查及教學場景。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/eternityspring/reelbench-skills/tree/HEAD/skills/video-shots

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

video-shots 是做什麼的?

拉片:將一條成片拆解為逐鏡頭的分析表——每個鏡頭的時長、景別、類別、運鏡、畫面。 分工刻在骨子裡:能用量化的都用程式碼(切點來自 ffmpeg 場景偵測,時長是切點相減,運動量是逐幀差分的位數中),模型只判斷它真正該判斷的四件事(景別 / 類別 / 運鏡 / 畫面),然後每一條判斷都被程式碼當場對帳——聲稱推拉搖移卻實測幾乎不動,直接攔下。 看片走聯繫表(每鏡起手幀 + 收尾幀各拼成一張大圖,一屏二十幾個鏡頭,a/b 對照就是運鏡),不是一張一張翻。偵測漏刀多刀用 recut 補刀並刀,自動重新編號重算時長,手動修改邊界過不了門。 產出 shots.json + Markdown 鏡頭表 + 單頁互動式拉片報告:內嵌播放器(播放時同步高亮鏡頭、點鏡頭跳轉)、鏡頭節奏帶、可搜尋可篩選可排序的鏡頭表(列表 / 卡片兩種視圖、首尾關鍵幀並排、點圖開大圖)、景別類別運鏡分佈、出場人物、質量門、匯出 JSON。單檔案零依賴,離線雙擊就能開。 14 道質量門全部由腳本確定性檢查。 零依賴、零 API key,只要 node 和 ffmpeg。 Use when asked to 拉片

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。

相關技能