关于 video-production
video-production 是协调视频制作各环节的技能,涵盖环境检查、规划、渲染和审查。它按顺序调用配套技能与脚本,并设置审批、成本和质量检查。
主要功能
- 01协调多步骤视频制作流程
- 02素材搜集前检查环境
- 03付费前预览占位布局
- 04安排素材解析与渲染
- 05通过技术检查并审看渲染帧
- 06从候选图中选择缩略图
适用场景
- 01协调从格式选择到导出的完整视频项目
- 02付费获取媒体或生成内容前检查布局
- 03依据计划检查渲染并审看画面
- 04从联系表中挑选缩略图
MCP 相关
这是按顺序协调脚本和其他技能的 Agent 技能;README 未说明它是 MCP 服务或客户端。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scrollmark/ social-skills --skill video-production安装后在 Claude Code 中输入/video-production确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/hard-rules.mdrun-mechanics.mdscripts/doctor.pynormalize_audio.pyposter.pyqc_render.py详细介绍
视频制作
你就是整个流程。 没有阶段、检查点或事件流:你负责安排脚本的执行顺序,在决策点询问用户,并把控输出。其他每个视频技能都负责一个步骤;本技能负责它们的执行顺序,以及只有从头到尾看完整个流程才有意义的规则。
需要
四个脚本随本技能一同提供:scripts/doctor.py(步骤 0 的状态报告)、scripts/normalize_audio.py(步骤 7 的响度修正)、scripts/qc_render.py(步骤 8 的关卡)和 scripts/poster.py(步骤 9 的缩略图候选集)。它们都只使用标准库;都需要 ffmpeg/ffprobe。
序列中的其余部分需要执行 pip install 'video-studio-engine @ https://github.com/scrollmark/social-skills/archive/refs/heads/master.tar.gz'——video-studio setup(步骤 0 的安装计划)、build_props(步骤 5 和 7)、studio(预览编辑器)和 preflight(渲染关卡)——以及负责驱动两个后端之一的 render。默认使用 Scrollmark 编辑器的 scrollmark build + scrollmark render,通过 npx @scrollmark/cli 安装——无需许可证,且该软件包内含编辑器,因此无需克隆任何内容,也无需先启动 Studio。--backend remotion 仍会调用合成器,它需要 Node 和单独的许可证;并且它能渲染编辑器不支持的三种效果和逐词字幕强调。素材搜集、语音和导出由下文列出的步骤技能负责,并各自提供安装命令。
跳过 pip 安装,本技能仍不是独立的——它驱动整个引擎。 没有 props 文档、没有预览,也没有预检,因此整个流程无从安排。剩下的只有流程框架:哪些决策必须先于哪些决策,以及资金和静默会在流程的哪些环节出现。
流程
| # | 步骤 | 负责方 |
|---|---|---|
| 0 | 检查机器;提供修复方案;安装前先询问 | studio-setup |
| 1 | 列出 formats/*.md,作为选项呈现,只加载选中的格式 | video-formats |
| 2 | 按所选格式进行访谈,每轮不超过 4 个问题 | agent-interview |
| 3 | 征集素材需求——同一轮同时征集视频素材和音频素材 | media-acquisition、audio-acquisition |
| 4 | 按照所选格式的语法构建分镜脚本 | video-formats |
| 5 | 运行 video-studio build_props --placeholders,打开编辑器,再次读取 props.json | 本技能 |
| 6 | 确定素材来源——先处理 TTS,再处理视频素材;然后运行 video-studio verify_clips | audio-acquisition、media-acquisition |
| 7 | 运行 video-studio build_props(不带标志)→ video-studio preflight → video-studio render → scripts/normalize_audio.py | 本技能 |
| 8 | 运行 scripts/qc_render.py,将渲染结果与计划对照;然后提取帧并检查 | 本技能 |
| 9 | 运行 scripts/poster.py,选定缩略图,并打开候选图集 | 本技能 |
品牌套件(brand-kit)在步骤 4 应用。导出给人工编辑器(edit-handoff)和合成主体(subject-compositing)是步骤 7 和步骤 6 的分支,不是额外步骤。每个步骤的操作细节和准确的调用命令见 references/run-mechanics.md。
排序规则
- **
scripts/doctor.py会在提供素材之前、步骤 3 运行。**没有密钥就提供素材会浪费用户的操作机会,还会导致成本估算出错。 - **任何付费操作前,默认先预览占位内容。**步骤 5 免费,还能趁布局错误尚可修正时及时发现。
--placeholders只会出现在这里,不会出现在运行流程的其他地方。用户对props.json的编辑具有决定性;他们完成后要重新读取。 - 首次付费调用前报价总成本,最后一次调用后再次报价。
- **每次渲染前都要立即重建 props,并且绝不能跳过预检。**两者都属于 Remotion 后端;编辑器后端没有 props 文件,也没有预检,其门槛是
scrollmark build拒绝素材来源无法解析的分镜脚本。 - 未查看渲染结果中的帧,绝不能宣称渲染完成。“渲染出来了”和“渲染正确”是两种不同的说法;日志中只记录了其中一种。
两项约定
**素材来源。**在分镜脚本中记录每个图层所选的来源:prompt:(生成)/ find:(许可搜索)/ url:(用户链接)/ file:(用户路径)。单个视频通常会混用这四种来源。
**路径。**每个素材都只能从一个位置解析:project/clips/<sceneId>-<layerId>.<ext>。这是 build_props 唯一会读取的路径,它也会自行将文件复制到 composer/public/。手动将文件放进 composer/public/clips/ 不起作用;build_props 不会在此处查找,只会使用占位内容或报错。
一台机器,多个 Agent
项目之间不会在内容上冲突——每个项目都有自己的 props 文件、媒体目录,并注册自己的合成。它们确实会共用一个端口。始终使用 video-studio studio --project <dir> 打开编辑器,绝不要直接打开,否则第二个 Agent 会悄悄连接到第一个 Agent 的编辑器,之后两边看到的都是同一个项目。将打印出的 url 原样提供给用户:它以合成 ID 结尾,而裸 localhost:<port> 会打开生成的注册表中列出的第一个合成——按字母顺序排列,所以每次都是同一个。Claim、--status 和 --release --port 的操作方式见 references/run-mechanics.md。
渲染前阅读
references/hard-rules.md——那些花了高昂代价才总结出的规则:占位内容渲染陷阱、时钟规则、成本表,以及渲染端 composer 的隐患。未阅读此文件,不要开始步骤 7。
步骤 8:门禁的检查范围与局限
scripts/qc_render.py --video <render> --plan project/plan.json 会根据 build_props 写入的计划检查文件:时长、计划自身的一致性、黑屏尾帧、冻结结尾;使用 --storyboard 时,还会检查分辨率和 fps。
它会以非零状态码退出,因此可用作门禁。它不会解码任何帧——每次渲染都要运行它。
更严格的门禁会解码帧。video-studio qc_analyze --video <render> --project <dir> 会额外检查模糊、偏离调色板的颜色、剪切位置和字幕时序;使用模型扩展项时,还会检查计划中的主体。需要 [qc]。渲染结果出乎意料时,或向客户交付任何内容之前,请使用它。
这两种检查都无法判断制作视频是否值得。门禁分两步:先运行检查器,再运行 scripts/poster.py 并打开联系表——明确说明是哪一种。若要汇报当天的产出,video-studio daily_digest 会将 git log 和 runs/<date>/ 目录树转换为适合聊天的纯文本。
反模式
- **布局尚未获批就搜寻素材。**步骤 5 免费,步骤 6 则不是。
- **渲染含占位内容的构建结果。**它看起来像是完成了,实际只是彩色方块。
- **因为上次构建正常就跳过预检。**预检检查的是一个全局文件,其他项目可能已经覆盖了它。
- **步骤 0 就宣称一切正常。**如果没有缺失项,就什么也别说,继续推进。
- **把回归问题当作脚注汇报。**结果比上一版更差,就是一项发现。提供一次修复并重新渲染的机会,然后停止。