short-video-motion-deconstruct

SKILL前端设计
前端设计 未标注权限 许可证不明确
安装这个技能

真人短剧/短视频「前N秒运镜+动作」量化拆解技能。用 ffmpeg 抽帧 + 切点算法 + 帧差(MAD)分区量化 + 红青叠加配准,客观判定镜头运动(固定/推/拉/摇/横移/遮挡揭晓)与动作节拍,输出可直接复刻的逐镜报告 + JSON 时间轴 + 中文AI提示词。当用户说"拆解视频前10秒""我要复刻这个运镜""这段镜头怎么运的""逐帧分析动作""拆解短剧开头""复刻某段视频的镜头语言"时调用。

一句话选型结论

按资料字段整理

short-video-motion-deconstruct是前端设计类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类前端设计 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_7e6f1fc8/user-7e6f1fc8-short-video-motion-deconstruct
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

前端设计
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_7e6f1fc8仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791677227
正文体量10.0 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
出页面与组件

按描述生成页面结构和组件草稿。

调整样式与布局

改间距、配色与响应式布局。

生成设计说明

把设计稿整理成开发能接的说明。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在前端设计场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
short-video-motion-deconstruct当前 未标注权限 未标注 未标注 未标注 有
前端设计 只读 GitHub 仓库 882.3 万 Codex、Claude、Cursor 有
Vercel 组合模式 联网访问 GitHub 仓库 385.9 万 Codex、Claude、Cursor 有
Vercel React native skills 前端 只读 GitHub 仓库 246.9 万 Codex、Claude、Cursor 有
adapt 搜索 浏览器控制 GitHub 仓库 202.7 万 Codex、Claude、Cursor 有
使用我的浏览器 浏览器控制 GitHub 仓库 184.8 万 Codex、Claude、Cursor 有

SKILL.md 全文

10.0 KB
模型实际读到的说明书原文,来自技能仓库

短剧运镜/动作量化拆解

把一段真人视频的镜头运动与动作节拍用可量化、可复刻的方式拆开。核心原则:不靠肉眼估运镜——用帧差与配准给出客观证据。

一、何时用

  • 用户给一段 mp4/短视频,要"拆解前 N 秒""复刻运镜/动作/镜头语言"
  • 需要判断某镜是"固定 / 推 / 拉 / 摇 / 横移 / 遮挡揭晓 / 跟拍"
  • 要产出可直接给即梦/可灵/Seedance 的复刻提示词 + 分镜时间轴 JSON

二、工具链(本机固定路径)

FFMPEG = E:/Workbuddy/NarratoAI/.venv/Lib/site-packages/ffmpeg/binaries/bin/ffmpeg.exe
FFPROBE= E:/Workbuddy/NarratoAI/.venv/Lib/site-packages/ffmpeg/binaries/bin/ffprobe.exe
PY     = E:/Workbuddy/NarratoAI/.venv/Scripts/python.exe   # 自带 Pillow 10.4 + numpy 2.5

> ⚠️ 不要用托管 python(E:/WorkBuddyConfig/binaries/python/...)建 venv:其 pyvenv.cfg 指向失效的 C 盘路径;pip install --target 也会被沙箱 SIGTERM。直接用 NarratoAI 的 venv python,它已带图像库。

三、SOP

0. 元数据

"$FFPROBE" -v error -show_entries format=duration,size -show_entries stream=codec_type,width,height,r_frame_rate,nb_frames -of default=noprint_wrappers=1 "in.mp4"

记录:分辨率/画幅比、fps、总时长 → 算出"前N秒 = 0~N*fps 帧"。

1. 切点检测(关键:用 select + metadata,不要用 ffprobe scene)

# ✅ 有效(HEVC 也work)
"$FFMPEG" -hide_banner -i "in.mp4" -t 10 -vf "select='gt(scene\,0.2)',metadata=print:file=-" -an -f null - 2>/dev/null | grep -oE "pts_time:[0-9.]+"
# 再用更低的 0.10 阈值复检,抓快切/快运镜

> ❌ ffprobe -show_frames -show_entries frame=scene 在 HEVC 上只返回 SEI 噪声,无效。
> 注意:低阈值(0.10)会把快速运镜也报成"切点"(每 ~0.17s 一个)→ 那说明该段有快速镜头运动,不是多个硬切。

2. 抽帧(三档)

OUT=.../video_analysis/<name>; mkdir -p "$OUT"/{key_1fps,action_10fps,door_30fps,overview}
"$FFMPEG" -y -ss 0 -i "in.mp4" -t 10 -vf "fps=1"  -q:v 2 "$OUT/overview/ov_%03d.jpg"     # 概览
"$FFMPEG" -y -ss 0 -i "in.mp4" -t 10 -vf "fps=10" -q:v 2 "$OUT/action_10fps/f_%03d.jpg"   # 运镜/动作分析
"$FFMPEG" -y -ss 0 -i "in.mp4" -t 3  -vf "fps=30" -q:v 2 "$OUT/door_30fps/d_%03d.jpg"     # 最动作段逐帧
# 时间映射: f_001=0.0s, 每帧 0.1s ; d_001=0.0s, 每帧 0.033s

3. 量化:帧差(MAD) 分区 + 红青叠加

写 py 脚本(用 NarratoAI python):

import numpy as np; from PIL import Image
def L(p): return np.asarray(Image.open(p).convert('L'),dtype=np.float32)
A,B=L(a),L(b)
print(np.abs(A-B).mean())                       # 全帧 MAD
print(np.abs(A[:380]-B[:380]).mean())           # 背景区(判断镜头是否动)
print(np.abs(A[500:1000]-B[500:1000]).mean())   # 主体区
print(np.abs(A[1000:]-B[1000:]).mean())         # 地面区
# 红青叠加: 红=前帧, 绿蓝=后帧 → 背景出现红青鬼影=镜头在动
Image.fromarray(np.dstack([np.asarray(Image.open(a).convert('L')),
                           np.asarray(Image.open(b).convert('L')),
                           np.asarray(Image.open(b).convert('L'))]).astype(np.uint8)).save('ana.jpg')

判读规则
| 现象 | 结论 |
|------|------|
| 全帧MAD尖峰(>40)且对齐切点 | 硬切 |
| 背景区MAD高(>15)、主体更高 | 镜头在动(推/摇/横移) |
| 背景区MAD≈0(<1) | 镜头完全静止,只有主体动 |
| 红青叠加图背景出现鬼影 | 该段时间内镜头位移 |
| 平移穷举配准改善>30% | 是横移/摇镜(读 dx,dy 方向) |
| 尺度配准最优 scale≠1.00 且改善明显 | 是推/拉镜 |
| 背景区平移可对齐(改善>70%、残差<2)但 dx,dy 仅 10-20px | 机位近固定 + 轻微漂移(上摇/手持呼吸) |

3b. 区分「人走近」 vs 「推镜」——两步法(本机实测有效)

单看"主体变大"会误判。先分区、再配准:
1. 分区帧差:算 上带(背景0-15%) / 中带(主体) / 下带。
- 背景上带低(≈5)、主体中带高(≈11-13) → 主体在动,机位不动(人在走近)
- 三带同时高 → 机位在动,进第 2 步
2. 背景区平移穷举配准(只取纯背景小块,如上方丝带/远处墙):
- 改善 >70% 且残差降到 <2、位移仅 10-20px → 机位近固定 + 轻微上摇/漂移(不是推镜)
- 改善 <10%(残差几乎不变)→ 机位完全静止
3. 尺度扫描(判推/拉镜,必做):对整帧按 scale∈[0.88…1.12] resize 后取中心裁剪再比。
- 最优 scale≈1.00 或改善 <5% → 无推镜("主体变大"是人物走近)
- 最优 scale 明显≠1 且改善 >30% → 推/拉镜

> ⚠️ 尺度扫描实现坑:直接对整帧 resize 后取中心裁剪,若裁剪区贴边会越界,best 保持初值 → 打印出 scale=None / 改善=-2e9% 的假结果。改法:先按比例裁掉外圈 10% 再用中心区比较,或对 resize 后做边界钳制。

3c. 识别「撞击 montage」(短剧打脸戏标志手法)

若在 0.3-0.4s 内检测到 2-3 个连续切点(如 13.37/13.53/13.70),且 MAD 尖峰 70/26/30:
- 这是"撞击快切 montage"——用 2-3 个不同角度/景别的 0.16s 极短切,把"接触瞬间"放大成暴力美学段落。
- 复刻提示:单镜 0.16-0.17s,切点必须砸在接触那一帧;AI 无法一次生成,需生成 1 段连续动作再在剪映裁成短切。

4. 目检帧(必做)

  • 用 Read 工具直接看 jpg(它是多模态)
  • 先看 overview 10 帧建结构,再看 action_10fps 的连续帧判"同镜或切"(若相邻帧构图巨变=切点)
  • 快运镜段看 30fps 连续帧还原轨迹(如"垂帘→横移揭晓")
  • 查字幕/名牌:把若干帧的上 12% 与下 12% 横带裁出来拼成 strip_top.jpg / strip_bottom.jpg 一次目检(短剧字幕在下部、名牌在左上)。有些段落完全没有硬字幕(信息只靠配音),务必核实并写进报告。
from PIL import Image
frames=[12,18,20,26,32,38]; h,w=1280,720
for name,y0,y1 in [(&#x27;strip_top&#x27;,0,0.12),(&#x27;strip_bottom&#x27;,0.86,1.0)]:
    canvas=Image.new(&#x27;RGB&#x27;,(w,int(h*(y1-y0))*len(frames)),(20,20,20))
    for i,n in enumerate(frames):
        canvas.paste(Image.open(f&#x27;{B}/f_{n:03d}.jpg&#x27;).crop((0,int(h*y0),w,int(h*y1))),(0,i*int(h*(y1-y0))))
    canvas.save(f&#x27;{OUT}/{name}.jpg&#x27;,quality=92)

5. 产出

  • xxx_前N秒运镜动作拆解.md:镜头总表 + 逐镜深拆(画面/运镜/动作/构图/光影/字幕/声音/复刻要点) + 运镜总纲 + 动作节拍 + 中文AI提示词 + 执行清单
  • xxx_前N秒_分镜.json:meta + characters + shots + 汇总
  • 校验:json.loads 通过;Σduration ≈ meta.duration ±0.5

5b. 多段拆解后合并成单一文档

用户常先要"拆前 10s",再补"拆 10-17s,合并到一个文档"。做法:
1. 沿用同一套帧目录规范(fan_10_17s/overview|action_10fps|_probe),时间映射写成 f_001=10.0s, 每帧0.1s(t(n)=start + (n-1)/10)
2. 镜头编号全局连续(0-10s=镜1-9,10-17s=镜10-18),JSON 的 shots 加 segment 字段("0-10s"/"10-17s")便于分组统计
3. 合并文档结构:统一元数据 → 全局镜头总表(18镜) → 逐镜深拆分「上半场/下半场」 → 统一运镜总纲/动作总纲(两段动作分别列 5 拍)→ 18镜提示词 → 执行清单
4. meta 里加 segment_avg(如 {0-10s:1.2, 10-17s:0.69})——两段节奏差本身就是结论
5. 保留原单段文件不删,另存合并版(xxx_0-17秒运镜动作完整拆解.md)

四、踩坑清单

  1. 托管 python 不能建 venv、pip 被拦 → 借 NarratoAI/.venv/Scripts/python.exe
  2. ffprobe 的 scene 字段在 HEVC 上无效 → 用 select=&#x27;gt(scene\,X)&#x27;+metadata=print
  3. 肉眼会把"遮挡横移揭晓"误判成"固定机位" → 必须看 30fps 连续帧 + 背景区MAD
  4. 低阈值(0.1)会把快运镜报成多切点 → 每~0.17s 一个 = 运镜,不是硬切
  5. 内联 python 全帧穷举配准(90×40×大数组)会超时 SIGTERM → 降采样 step=2、限制区域、或写成文件再跑
  6. 段末镜可能跨过 N 秒 → JSON 里注明"末镜延伸至下一处切点",别硬凑时长
  7. 用户引用的源文件可能已从磁盘消失 → 先 ls 确认,找不到就换用户新给的路径
  8. "主体变大"≠推镜 → 必须先分区帧差(背景带是否也变),再跑背景平移配准;只有尺度扫描改善>30% 才是推/拉
  9. 尺度扫描越界假结果 → 整帧 resize+中心裁剪会贴边越界,出现 scale=None/改善-2e9%;先裁外圈 10% 再比
  10. 切点算法会把 0.33s 内的 2-3 连切识别成多个切点 → 这不是误检,是"撞击 montage",要如实写成剪辑手法
  11. 别默认全片都有字幕 → 分段裁上下横带目检;同一视频不同段落可能一段有字幕一段没有

五、输出风格

  • 结论要带证据(MAD 数值、切点秒数)
  • 复刻建议要分实拍 vs AI生成两路
  • 提示词中文(即梦/可灵),带角色锚点 + 负向词

常见问题

5 问
答案由本站依据条目字段整理
short-video-motion-deconstruct怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_7e6f1fc8/user-7e6f1fc8-short-video-motion-deconstruct。安装方式为未标注。装完刷新技能列表或重开客户端。

short-video-motion-deconstruct支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

short-video-motion-deconstruct权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

short-video-motion-deconstruct收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

short-video-motion-deconstruct用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。