关于 review-video
用于 Remotion 视频的审片技能,先检查渲染帧,再借助 TwelveLabs 分析完整视频,并据此迭代修复。适合需要结构化视频反馈的制作流程。
主要功能
- 01抽样渲染并检查画面
- 02上传视频至 TwelveLabs
- 03按评分标准分析视频
- 04将时间戳转换为帧与场景
- 05根据反馈迭代修复
适用场景
- 01检查字幕溢出和画面缺失
- 02评估节奏、配音与音效
- 03定位片头钩子和结尾 CTA
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dojocodinglabs/ remotion-superpowers --skill review-video安装后在 Claude Code 中输入/review-video确认已加载。
详细介绍
审查视频 — AI 驱动的视频反馈循环
你正在审查一段 Remotion 视频并提供专业反馈:先查看几帧渲染画面,再让 TwelveLabs“观看”完整渲染视频。由此形成完整的制作闭环——预览、审查、改进、重复。
加载 remotion-production 技能以使用 video-analysis 规则。渲染遵循官方 remotion-render 技能。
**此处允许渲染。**调用 /review-video 即表示明确请求渲染以供审查,因此无需再次询问。
工作流
1. 快速检查画面(成本低,本地进行)
上传任何内容之前,先渲染几张静帧并自行查看,具体方式见官方 remotion-render:
npx remotion render [CompositionId] out/review-frames --frames=0,45,90,150,240 --image-format=png
选择能覆盖开场钩子、每个场景中间位置、最繁忙的画面(字幕、叠加内容)以及最后一帧的画面。读取 PNG 并检查:
- 空白或内容为空的画面、缺失的资源(缺失的
staticFile()会显示为空白或报错) - 文本可读性、溢出情况和安全区域(官方
remotion-create/video-layout.md) - 字幕相对于平台 UI 的位置(
captions-workflow规则)
如果这些画面显示出明显问题,请先修复(参见第 6 步),然后重复此步骤。这比完整渲染后再上传到 TwelveLabs 便宜得多。
2. 渲染完整视频
查找现有渲染文件:
ls -t out/ 2>/dev/null | grep -E '\.(mp4|webm|mov)$'
如果没有渲染文件,或自生成以来代码已发生变化,现在就进行渲染:
npx remotion render [CompositionId] out/video.mp4
3. 将渲染视频上传到 TwelveLabs
create-asset:
file: [absolute path to the render, e.g. /path/to/project/out/video.mp4]
保留返回的资源 ID。无需索引。如果分析调用提示资源尚未就绪,请等待几秒后重试。
4. 分析 — 导演审查
运行一次 sync-analyse-video 调用,以 JSON 格式返回完整审查结果(渲染时长超过 1 小时:使用相同的 prompt 和 jsonSchema 调用 async-analyse-video,然后轮询 get-analyse-task):
sync-analyse-video:
assetId: [asset ID]
modelName: "pegasus1.5"
temperature: 0.2
prompt: "You are a video director reviewing a [duration]s [platform] video at [WxH]. Intent: [one-line brief]. Script: [narration, per scene]. Score each dimension 1-10 and list concrete fixes with timestamps in seconds. Check: framing and composition; whether on-screen text is readable and on screen long enough; transitions; blank, frozen or glitchy frames; pacing (scenes too long or too short); whether the voiceover matches what's on screen; SFX timing; music mood and level under the voice; whether the first 3 seconds hook; whether the CTA is clear."
jsonSchema: [the rubric below]
始终传入 modelName: "pegasus1.5":服务器的默认模型已从 API 中移除。
评审标准(jsonSchema):
{
"type": "object",
"properties": {
"overall_score": { "type": "integer", "description": "1-10" },
"scores": {
"type": "object",
"properties": {
"hook": { "type": "integer", "description": "1-10, first 3 seconds" },
"pacing": { "type": "integer", "description": "1-10" },
"composition": { "type": "integer", "description": "1-10, framing and layout" },
"text_legibility": { "type": "integer", "description": "1-10, size, contrast, time on screen" },
"transitions": { "type": "integer", "description": "1-10" },
"audio_sync": { "type": "integer", "description": "1-10, voiceover and SFX against visuals" },
"audio_mix": { "type": "integer", "description": "1-10, voice clarity, music level" },
"cta": { "type": "integer", "description": "1-10, clarity of the ending" }
},
"required": ["hook", "pacing", "composition", "text_legibility", "transitions", "audio_sync", "audio_mix", "cta"]
},
"working": { "type": "array", "items": { "type": "string" } },
"fixes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": { "type": "number", "description": "seconds" },
"end": { "type": "number", "description": "seconds" },
"dimension": { "type": "string", "enum": ["hook", "pacing", "composition", "text_legibility", "transitions", "audio_sync", "audio_mix", "cta", "glitch"] },
"severity": { "type": "string", "enum": ["critical", "major", "minor"] },
"issue": { "type": "string" },
"fix": { "type": "string" }
},
"required": ["start", "end", "dimension", "severity", "issue", "fix"]
}
},
"priority_fix": { "type": "string" }
},
"required": ["overall_score", "scores", "working", "fixes", "priority_fix"]
}
保存 JSON(例如 out/review-1.json),以便将下一轮与本轮进行比较,然后清理:
delete-asset:
assetId: [asset ID]
每次审查都会上传一个新资源,资源会计入账户的存储空间。
若要仔细查看某个片段(例如修复 12-18 秒处的问题),请在删除资源前,使用该片段周围的 startTime/endTime 再次运行 sync-analyse-video(时间窗口必须至少为 4 秒)。
5. 提交审查结果
将 JSON 整理成专业的导演审查报告。把每项修复的时间戳转换为帧(Math.round(seconds * fps)),并注明所属场景,让修复能对应到代码:
🎬 Video Review: [filename]
Duration: [X]s | Resolution: [WxH]
📊 Overall Score: [overall_score]/10
Hook [x] · Pacing [x] · Composition [x] · Text [x] · Transitions [x] · Audio sync [x] · Mix [x] · CTA [x]
✅ What's Working:
- [working[0]]
- [working[1]]
⚠️ Improvements Needed (by severity):
1. [CRITICAL] [start]-[end]s (frames [a]-[b], [scene]) [issue] → [fix]
2. [MAJOR] ...
3. [MINOR] ...
🎯 Priority Fix:
[priority_fix]
🔄 Next Steps:
- [ ] [actionable task 1]
- [ ] [actionable task 2]
- [ ] [actionable task 3]
Then run /review-video again.
将 AI 审查结果与第 1 步中你自己的画面检查进行交叉核对;如果两者对可见内容的判断不一致,以画面为准并说明原因。
6. 实施修复
询问用户是否要应用建议的修复。如果同意:
- **保留用户更改。**编辑前重新读取文件。如果用户在上次交互后更改了代码,或在 Studio 中编辑了内容,请保留这些修改并在其基础上应用修复;如果某项修复会撤销其中一项修改,请先询问。
- 修改代码,优先处理严重和主要问题
- 在 Studio 中检查(运行
npx remotion studio,或使用--no-open并通过应用内浏览器打开它打印的 URL)。迭代期间保持 Studio 开启。 - 重新渲染(第 2 步)并重新审查(第 1-5 步),验证改进情况,并将新评分与已保存的 JSON 进行比较
7. 迭代循环
持续迭代,直到用户满意或审查结果显示没有重大问题。
循环:检查画面 → 渲染 → 上传 → 按评审标准分析 → 删除资源 → 修复(在 Studio 中)→ 重新渲染 → 重复,直到质量达标。
审核清单
每次审核时,请检查以下项目:
视觉效果:
- 无空白帧
- 目标分辨率下文字清晰可读
- 全程颜色统一
- 动画流畅,无卡顿
- 图片和素材质量高,无像素化现象
音频:
- 配音清晰且音量适中
- 音乐音量不会盖过人声
- 音效时机正确
- 音频无削波或失真
- 开头和结尾有淡入/淡出效果
结构:
- 开场吸引人(前 2-3 秒)
- 叙事脉络清晰
- 节奏适合平台和受众
- 结尾干净利落,并附有行动号召(如适用)
- 总时长符合目标
技术:
- 纵横比正确(16:9 或 9:16)
- FPS 正确(30 或 60)
- 文件大小适合目标平台
- 无渲染瑕疵