video-producer

TeamWiseFlow/xiaobei · Agent Skill

Создает полные видеоролики с нуля или редактирует существующие материалы, включая монтаж, добавление озвучки и субтитров.

Перейти к установке ↓

Варианты установки

По умолчанию выбран промпт с предварительным просмотром. Можно переключиться на прямую команду.

Установка через Claude или Codex

Скопируйте промпт, вставьте в Claude, Codex или другого ассистента — он сам изучит страницу скилла и подключит его.

I'd like to install this Claude Code skill:
https://github.com/TeamWiseFlow/xiaobei/tree/master/crews/content-producer/skills/video-producer

Please review the SKILL.md file, verify the skill is legitimate, then copy the skill folder into .claude/skills/ of my project.

Файлы скилла

1 файлов Скачать ZIP

Просмотрите SKILL.md и сопутствующие файлы перед установкой. Клик по файлу — предпросмотр.

Содержимое SKILL.md

Оригинальный текст автора · только чтение

视频制作与片段修整(video-producer)

双模式

本技能有两种用法,agent 据用户请求判断走哪条:

模式 A:端到端生产——用户给主题/关键词/已有脚本/已有素材中的任一组合,要求从零做一支完整视频。走 Stage 0→14 全流程:意图路由 → 故事 → 剧本 → 分镜 → 机位 → 素材 → 闸门 → 渲染 → 自检 → 交付。另可接收 main agent 喂入的 viral-chaser 追爆报告(作为 brief 的一部分,本技能不做视频下载/转写/抽帧——那是 viral-chaser 的活)。

模式 B:给定素材剪辑——不涉及从零开剧本,编辑已有素材,直接用 Stage 12 工具箱(见下方"Stage 12 工具箱"段):

  • 几个片段拼一下 → assemble(自动统一分辨率/帧率/音频格式 + 转场)
  • 一个片段配个旁白/配音 → audio-mix(多轨混音,延时/音量可控)
  • 稍微剪一下(入点/出点/倍速)→ clip-trim--pre-buffer 避免切 MP3 吞首字)
  • 按时间轴切素材+混音 → timeline-composeaudio_mode=concat 出连续轨)
  • 单个 Scene 合成(片段+旁白+对白)→ scene-compose
  • 无音频片段补静音轨 → add-silent-audio
  • 片尾制作(形象图+黑边+烧字幕)→ make-outro

不适用:

  • 纸拼贴 B-roll → collage-broll
  • Manim 技术演示动画 → manim-explainer
  • 平面设计 → design-full
  • 基于已有素材的深度高光剪辑(去口气词/智能剪重点)→ main 的 video-edit / talking-head-cut(本技能模式 B 只做几何级修整:切段/拼接/混音/烧字幕/补轨,不做语义级剪辑)
  • 视频下载与爆款分析 → main 的 viral-chaser

---

工作区目录约定

调用方传入了现成项目目录时(如平台专家包委托制作,传入 <platform>/outputs/<video-name>/,brief 已在其中)直接沿用;否则在 output_videos/ 下建项目文件夹 <topic-en-slug>/

<project-dir>/                  # 即 <platform>/outputs/<video-name>/ 或 output_videos/<topic-en-slug>/
├── brief.md                    # Stage 0/1 产出:意图路由 + 概念选项 + 用户选定
├── reference-driven/           # Stage 1(可选,仅当 main 喂了 viral-chaser 报告)
│   ├── viral-chaser-report.md  # main 喂入的追爆报告原档(本技能不自己跑 viral-chaser)
│   ├── concepts.md             # 据报告出的 2–3 差异化概念 + 成本 + 备选路径
│   └: 无下载产物、无 transcript、无关键帧——那些归 viral-chaser
├── script/
│   ├── intent.json             # Stage 0
│   ├── story.md                # Stage 2
│   ├── script.md               # Stage 3(含 enhancement_cues 六型 + delivery_cues)
│   ├── self-eval.json          # Stage 3 自评
│   ├── decisions.json          # 决策审计链(跨阶段累积)
├── storyboard/
│   ├── storyboard.json         # Stage 4 镜头表
│   ├── shot_decompose.json     # Stage 5 每镜首尾帧+运动+variation_type
├── characters/
│   ├── registry.json           # Stage 6 static/dynamic features
│   ├── <char-id>/front.png     # 三视图(调 siliconflow-img-gen 生成)
│   ├── <char-id>/side.png
│   └── <char-id>/back.png
├── gates/
│   ├── gate-a.md               # GATE A 文本闸门评审产物
│   ├── gate-b.md               # GATE B 素材闸门评审产物
├── slots/
│   ├── slot-plan.json          # Stage 7
│   ├── asset-resolve.json      # Stage 8(含 rejected_picks)
│   ├── slideshow-risk.json     # Stage 9 六维打分
│   ├── delivery-promise.json   # Stage 9 承诺锁定
├── render/
│   ├── shot-NN/                # Stage 10 每镜渲染产物
│   │   ├── first-frame.png     # 首帧静照(生成或素材裁切)
│   │   ├── last-frame.png      # 尾帧静照
│   │   ├── gen-run-v01.mp4     # aigc-video-gen i2v 产物
│   │   └ettings.log
│   │   └ulti-best.mp4          # 多候选择优胜出(多候选时)
├── audio/
│   ├── narration.mp3           # awk-tts 旁白
│   ├── bgm.mp3                 # BGM(bgm-library 免版税曲库优先 / pexels/pixabay / aigc-video-gen music 生成)
│   ├── subtitles.srt           # 字幕
├── artifacts/                  # Stage 12 按镜顺序的最终段
│   ├── 01_*.mp4
│   └ NN_*.mp4
├── video.mp4                   # Stage 12 拼接成片
├── review/                     # Stage 13 公共 video-review 产物
│   ├── verdict.json
│   ├── frames/
│   ├── motion-audit.json       # CP 侧 motion_led 抽查
├── cover.jpg                   # Stage 14 封面
└── final-deliver.md            # Stage 14 交付清单

---

阶段链(15 段,两闸门)

每段子命令是 scripts/ 下一个独立 .py,agent 按本 SKILL.md 工作流逐个调。产物文件存在性即 checkpoint——每个子命令先查产物文件是否存在,存在则 load 不重生成(允许用户手改 JSON 后续跑)。

Stage 0  intent-router        意图路由 → 三档脚本模板(故事讲述型/纯画面动效型/蒙太奇剪接型)
  · 故事讲述型(narrative)——重情节、有人物弧光、含旁白;默认 3–5 镜/场
  · 纯画面动效型(motion)——重节奏感/视觉冲击/少对白;默认 5–8 镜快切
  · 蒙太奇剪接型(montage)——重氛围/抽象/纯视觉;默认 4–7 镜无叙事
Stage 1  reference-concepts   若 main 喂了 viral-chaser 报告 → 吃报告出 2–3 差异化概念;无报告跳过
Stage 2  story-develop        idea → 故事(含受众/类型显式复述,100–200 词梗概,人物,分场)
Stage 3  script-write         故事 → 分场剧本(同时间同地点分一场;可拍化描述;enhancer 润色)
Stage 3b script-self-eval     脚本自评 N 维打分,任一维 <3 必返工
Stage 4  storyboard-build     剧本 → 镜头表(每镜叙事目的/机位复用/位置朝向/不写不可见)
Stage 5  shot-decompose       每镜拆首帧静照/尾帧静照/运动描述(variation_type 三档)
Stage 6  character-register   角色三视图 front/side/back + static/dynamic features 拆分
   ────── GATE A:文本闸门(脚本+分镜+机位+角色全齐,停,发用户审)──────
Stage 7  slot-plan            素材 slot 规划(template + hero slot + tone→slot 数)
Stage 8  asset-resolve        按 slot 拉素材(Fast path:多源并发搜 + 缩略图人核 + rejected_picks 落盘)
Stage 9a slideshow-risk       六维幻灯风险打分(pre-compose 闸门,≥4.0 fail 不许进 compose)
Stage 9b delivery-promise-lock 交付承诺八类锁定 + motion_ratio 预估
   ────── GATE B:素材闸门(素材齐+计划过审,停,发用户看 contact sheet)──────
Stage 10 render-shot          按 slot 渲染(AIGC 走 aigc-video-gen i2v 首尾帧插值;静图走 siliconflow-img-gen)
Stage 11 mix-audio            配音配乐四场景分流(A 人物对话声画同出 / B 旁白一次性 TTS 带字级时间戳 + 对齐 / C BGM 成片后统一生成(优先 bgm-library 免版税曲库,pexels/pixabay 并列;定制风格用 aigc-video-gen music)/ D 用户口播录音 → ASR 时间戳 → 按时间戳补素材)
Stage 12 assemble             按序拼接成片(原子工具箱:clip-trim 切段 / audio-mix 混音 / timeline-compose 时间轴合成 / assemble 拼接,agent 按 §Stage 12 工具箱场景化组合,不写死 Workflow)
Stage 13a video-review        公共 video-review 技术自检(强制闸门)
Stage 13b motion-audit       CP 侧 motion_led 抽查(兑付 delivery-promise)
Stage 14a make-cover          封面(siliconflow-img-gen,必含标题文字)
Stage 14b 交付                 向用户呈交成片+封面+关键参数

> Stage 0–6 全是文本产物,付费生成前必停——GATE A 落在这条边界上。GATE B 落在素材就绪、pre-compose 闸门通过后,确认渲染前最终计划。

---

子命令调用清单

| 子命令 | 入 | 出 | 用途 |

|--------|----|----|------|

| intent-router | brief.md(主题/关键词,或 viral-chaser 报告) | script/intent.json(档位+主题) | Stage 0 |

| reference-concepts | viral-chaser 报告(main 喂入,可选) | reference-driven/concepts.md | Stage 1:只吃报告出概念,不做下载/转写/抽帧;无报告跳过 |

| story-develop | intent.json | script/story.md | Stage 2 |

| script-write | story.md | script/script.md(含 enhancement_cues + delivery_cues) | Stage 3 |

| script-self-eval | script.md | script/self-eval.json(N 维分,任一维 <3 必返工) | Stage 3b |

| storyboard-build | script.md | storyboard/storyboard.json | Stage 4 |

| shot-decompose | storyboard.json | storyboard/shot_decompose.json(每镜首尾帧+运动+variation_type) | Stage 5 |

| character-register | storyboard.json + 人物描述 | characters/registry.json + 三视图 PNG | Stage 6(三视图调 siliconflow-img-gen) |

| slot-plan | storyboard.json + tone | slots/slot-plan.json | Stage 7 |

| asset-resolve | slot-plan.json | slots/asset-resolve.json(含 rejected_picks)+ 素材落 raw_materials/ | Stage 8(调 pexels-footage / pixabay-footage / aigc-video-gen) |

| slideshow-risk | storyboard.json + slot-plan.json + asset-resolve.json | slots/slideshow-risk.json(六维分) | Stage 9a |

| delivery-promise-lock | storyboard.json + brief.md | slots/delivery-promise.json(八类锁) | Stage 9b |

| render-shot | shot_decompose.json + characters/ + slot-picks | render/shot-NN/ 下产物 | Stage 10(调 aigc-video-gen i2v / siliconflow-img-gen) |

| mix-audio | script.md(delivery_cues) | audio/ 目录 + subtitles.srt 模板 | Stage 11(四场景分流:A 声画同出 / B 旁白一次性 TTS+ASR 对齐 / C BGM 成片后生成(优先 bgm-library 免版税曲库 / pexels/pixabay 并列;定制风格用 aigc-video-gen music)/ D 用户口播录音 → ASR 时间戳 → 按时间戳补素材) |

| narration-align | audio/narration.mp3 + audio/narration.subtitle.json | audio/narration-segments.json(统一 segments 格式) | Stage 11b(优先复用 awk-tts --enable-subtitle 落盘的 TTS 原生字级时间戳,缺失时回退火山 ASR 极速版,凭据复用 viral-chaser 同池 VOLC_ASR_*) |

| assemble | render/ 顺序 | video.mp4 | Stage 12(按序拼接 + 可选转场 + 可选分辨率归一化 + 自动补静音/统一音频格式) |

| add-silent-audio | 无音频视频片段 | 含静音音轨的视频 | Stage 12 原子工具:concat 前补齐音轨,保持连续 |

| clip-trim | 素材路径 + 入点/出点/倍速 | 切好的片段 | Stage 12 原子工具:精确切素材,视频和音频分别处理 |

| audio-mix | 多条音轨 + 各自延时/音量 | 混合音频 | Stage 12 原子工具:多轨混音 |

| timeline-compose | timeline.json(每段素材/入点/出点/倍速/音轨及延时) | 合成片段 | Stage 12 原子工具:按时间轴调 clip-trim + audio-mix 合成 |

| motion-audit | video.mp4 + delivery-promise.json | review/motion-audit.json(motion_led 抽查) | Stage 13b(补公共 video-review) |

| make-cover | brief.md(标题)+ storyboard 关键帧 | cover.jpg | Stage 14a(调 siliconflow-img-gen) |

> wrapper video-producer.sh 内部 exec python3 "$SCRIPT_DIR/scripts/<子命令>.py" "$@"——子命令名即脚本名,零路径拼接。

---

强制闸门与护栏

GATE A(Stage 6 后):文本闸门

文本产物全齐(脚本+分镜+机位+角色),停下发用户审

  • 呈交摘要:档位、场次数、镜数、角色数、关键决策(路径/模型/风格选择的备选+置信度+理由)
  • 结束本轮回复,不许在同条回复里进 Stage 7
  • 批准是逐闸门的——早先的一句"你继续"不覆盖本闸门
  • 用户要改哪段就重跑对应子命令(产物文件存在性即 checkpoint,不会重生成未改的)

GATE B(Stage 9 后):素材闸门

素材齐 + 计划过 slideshow_risk + delivery_promise 锁,停下发用户看 contact sheet

  • 呈交:slot 总数、素材就绪率、slideshow_risk 六维分与 verdict、delivery_promise 八类与 motion_ratio 预估、素材 contact sheet
  • 同 GATE A 收尾纪律

返工与耗时上限

  • 每阶段最多返工 3 次
  • 全片最多 3 次 send-back
  • 每阶段 wall-time 默认上限 20 分钟——卡住要报,不要反复撞

不许声称没做过的事

没有 tool result 或产物文件证明,不许声称已渲染/已生成/已改动。

模糊意图不算确认

  • 用户说"做个短片""帮我策划"不算确认,必须先问清楚走哪条 workflow(故事讲述型/纯画面动效型/蒙太奇剪接型)、时长、受众
  • 起草/讨论脚本属对话协助,不许调 render 工具
  • 默认小规模:1 场 3–5 镜,不许把模糊想法擅自扩成多场多镜;用户要扩才扩

决策审计链

每个选择(路径/模型/风格/音色/任何 fallback)记 备选 + 置信度 + 理由,跨阶段累积进 script/decisions.json

---

依赖

| 依赖 | 来源 | 用在哪 |

|------|------|------|

| python3 / ffmpeg / ffprobe | 系统 | 各阶段脚本 |

| 公共 aigc-video-gen | skills/ | Stage 8/10 视频片段生成(百炼/火山声画同出,i2v 首尾帧插值) |

| 公共 siliconflow-img-gen | skills/ | Stage 6 角色三视图 / Stage 10 静帧 / Stage 14 封面 |

| 公共 awk-tts | skills/ | Stage 11B 旁白一次性 TTS(OpenClaw 内置 TTS 优先 → awk-tts fallback;加 --enable-subtitle 让火山单向流式 HTTP 原生返回字级时间戳,落 narration.subtitle.json) |

| 火山 ASR 凭据 VOLC_ASR_* | 实例 env | Stage 11b narration-align 回退路径 + Stage 11D 用户口播录音转写拿时间戳(复用 viral-chaser 同池:旧控制台双头 VOLC_ASR_APP_ID+VOLC_ASR_ACCESS_KEY,或新控制台单头 VOLC_ASR_APP_KEY) |

| 公共 pexels-footage / pixabay-footage | skills/ | Stage 8 Stock Footage 素材补充 / Stage 11C BGM 搜 |

| 公共 bgm-library | skills/ | Stage 11C BGM 搜(ccMixter 免版税 + 自动 TASL 署名,免 key,商用安全;与 pexels/pixabay 并列,优先用) |

| 公共 video-review | skills/ | Stage 13a 成片技术自检闸门 |

| requests | 仓根 requirements.txt | 各脚本 HTTP 调用 |

---

子命令清单(wrapper 视角)

| 子命令 | 用途 | 退出码 |

|--------|------|--------|

| video-producer intent-router | 意图路由三档 | 0 成功 / 1 参数错 / 2 env 未配 |

| video-producer reference-concepts | 吃 viral-chaser 报告出概念 | 0 成功 / 1 参数错 |

| video-producer story-develop | idea → 故事 | 0 成功 / 1 参数错 |

| video-producer script-write | 故事 → 分场剧本 | 0 成功 / 1 参数错 |

| video-producer script-self-eval | 脚本自评 N 维 | 0 成功 / 1 参数错 |

| video-producer storyboard-build | 剧本 → 镜头表 | 0 成功 / 1 参数错 |

| video-producer shot-decompose | 每镜拆首尾帧+运动 | 0 成功 / 1 参数错 |

| video-producer character-register | 角色三视图 + features | 0 成功 / 1 参数错 |

| video-producer slot-plan | 素材 slot 规划 | 0 成功 / 1 参数错 |

| video-producer asset-resolve | 按 slot 拉素材 | 0 成功 / 1 参数错 / 2 env 未配 |

| video-producer slideshow-risk | 六维幻灯风险打分 | 0 成功 / 1 参数错 |

| video-producer delivery-promise-lock | 八类承诺锁定 | 0 成功 / 1 参数错 |

| video-producer render-shot | 按 slot 渲染 | 0 成功 / 1 参数错 / 2 env 未配 |

| video-producer mix-audio | 三场景分流占位 | 0 成功 / 1 参数错 |

| video-producer narration-align | 旁白 ASR 对齐时间戳 | 0 成功 / 1 参数错 / 2 env 未配 |

| video-producer assemble | 按序拼接成片 | 0 成功 / 1 参数错 |

| video-producer add-silent-audio | 给无音频视频补静音轨 | 0 成功 / 1 参数错 |

| video-producer scene-compose | 单 Scene 分段合成 | 0 成功 / 1 参数错 |

| video-producer make-outro | 片尾制作 | 0 成功 / 1 参数错 |

| video-producer clip-trim | 切素材段 | 0 成功 / 1 参数错 |

| video-producer audio-mix | 多轨混音 | 0 成功 / 1 参数错 |

| video-producer timeline-compose | 时间轴合成 | 0 成功 / 1 参数错 |

| video-producer motion-audit | motion_led 抽查 | 0 成功 / 1 参数错 |

| video-producer make-cover | 封面(必含标题) | 0 成功 / 1 参数错 / 2 env 未配 |

---

Stage 12 工具箱(场景化组合,不写死 Workflow)

Stage 12 段不规定固定 Workflow——下面四个原子工具 agent 按实际场景灵活组合。

原子工具清单

| 工具 | 干什么 | 关键参数 |

|------|--------|---------|

| clip-trim | 精确切素材段(入点/出点/倍速/前置缓冲,视频和音频分别处理) | --input/--output/--start/--end/--speed/--sync-audio/--pre-buffer |

| audio-mix | 多轨混音(每轨独立延时和音量) | --track(可重复)/--delay/--volume/--output/--duration |

| timeline-compose | 按时间轴 JSON 调 clip-trim + audio-mix 合成片段 | <project_dir> --timeline timeline.json [--transition ...] |

| assemble | 按序拼接已就绪的段 + 可选转场 + 自动分辨率归一化 + 自动统一音频格式 | <project_dir> [--transition hard/fade/dissolve/xfade] [--width 1080] [--fps 30] [--audio-format 24000/mono] [--low-memory] [--preview-duration 30] |

| add-silent-audio | 给无音频视频片段补静音音轨(concat 前置,assemble 内部也自动调) | --input/--output/--duration/--sample-rate 24000/--channels mono |

| scene-compose | 单 Scene 分段合成(片段+旁白+对白 → 一个 Scene 片段) | <project_dir> --scene scene.json [--output scene-01.mp4] |

| make-outro | 片尾制作(形象图+黑边+烧字幕+静音轨 → 标准比例片尾) | <project_dir> --image <形象图> --slogan <文本> [--color color.json] [--duration 5] [--width 1080] [--fps 30] |

场景化组合示例(非强制,agent 按实际判断)

场景 A:无旁白直拼

段就绪、无需切素材、无需混音——assemble <project_dir> --transition fade 一把过。

场景 B:有旁白走时间轴

旁白一次性 TTS 生成 + narration-align 拿字级时间戳后,按时间戳把各段素材对齐旁白:

1. agent 据 narration-segments.json 各段 start/end 冡素材入点/出点,写 timeline.json

2. timeline-compose <project_dir> --timeline timeline.json → 调 clip-trim 切段 + audio-mix 把旁白按延时叠到各段

3. 全段 BGM 走 timeline.json 的 audio_globals 字段混入

场景 C:分段先合再合(scene-compose 两阶段)

长片或某些段需独立预合(如先合 shot-01~03 为一场 Scene,再合 shot-04~06 为另一场,最后两场 concat):

1. 写 scene-01.json(clips 片段列表 + narration 旁白 + dialogue 对白),跑 scene-compose <project_dir> --scene scene-01.json --output scene-01.mp4

2. 同样出 scene-02.mp4

3. 把 scene-01.mp4 / scene-02.mp4 当段素材,再跑 assemble <project_dir> --source-dir scenes --transition fade 合片

scene-compose 内部调 clip-trim 切段 + audio-mix 混旁白/对白 + assemble 拼段,一步出单 Scene 完整片段。

场景 D:素材尺寸不一

AIGC 720x1280、录屏 1080x2384、片尾 784x1176 混拼——assemble--width 1080 --fps 30 归一化(scale + pad 16:9 + sar + fps 统一)后再 concat。

场景 E:精确调速某段

某段需 2x 快放——clip-trim --input <段> --output <快放段> --speed 2 --sync-audio 切好后,把快放段当段素材再拼。

场景 F:低内存机器

机器内存吃紧(< 4G 或容器限额)——assemble <project_dir> --transition fade --low-memory,preset 切 ultrafast、crf 放宽到 28,避免 x264 缓冲爆内存。打印里会标注 低内存模式:preset=ultrafast, crf=28

场景 G:先试听再合成

长片合成前想先听前 30 秒验证旁白/BGM 平衡——assemble <project_dir> --preview-duration 30,成片照常落,额外产 video-preview.mp4(前 30 秒,-c copy 秒切)。试听满意后再决定是否重混。

场景 H:AIGC 无音频段混拼 + 旁白切段吞首字

AIGC i2v 产物常无音频流,与有音频段直拼会断续;旁白用 clip-trim --ss 切 MP3 会吞第一个字。assemble 现在自动统一音频格式(默认 24000/mono,无音频段补静音,规格不符段重采样)+ 不传 --width/--fps 时自动探测各段分辨率/帧率、不一时统一到最低公共规格。旁白切段走 clip-trim --pre-buffer 0.5,实际入点提前 0.5s 保留段头音频,逻辑入点不变。

agent 据剧本实际选场景组合,可混合多场景(如 B+E:旁白时间轴 + 某段快放)。脚本不预设顺序。

---

禁止事项(强制)

  • 禁止跳过 GATE A/B 交付:两闸门是工作流的一部分,呈交摘要后必须结束本轮回复等用户批
  • 禁止声称没做过的事:没有 tool result 或产物文件证明,不许声称已渲染/已生成/已改动
  • 禁止把模糊想法擅自扩成多场多镜:默认 1 场 3–5 镜,用户要扩才扩
  • 禁止跳过 video-review 交付:Stage 13a 强制闸门,verdict=pass 才进 Stage 14
  • 禁止直接写 ffmpeg 命令:所有 ffmpeg 调用走本技能子命令脚本或公共 video-edit 子命令
  • 禁止自己做视频下载/转写/抽帧:那是 viral-chaser 的活,本技能只吃 main 喂入的报告
  • 禁止引入 CLIP / torch 系本地模型:素材匹配走 Fast path 人核缩略图
  • 禁止扩充图库源:保 Pexels + Pixabay 两源
  • 禁止批量生成:逐条精做,不批量撞运气