Install
$ agentstack add skill-stoneyang0213-demo-video-maker-demo-video-maker ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
demo-video-maker
把一个产品/案例,变成一支专业的演示视频。核心是一份 config.json 驱动一个可复用的 Remotion 引擎:你(或用户)描述内容 + 选风格,引擎产出带配音/BGM/音效/动效的 MP4。
它怎么工作(心智模型)
像"填一张表就出片"。视频 = 若干幕(scene)串起来,每一幕从幕类型库里选一种(标题/引用/要点/拆解/打分/对抗/卡片/派单/数据/规模…),填内容;全局配主题配色、配音音色语速、背景音乐、画幅。引擎负责动效、配音对齐、音乐起伏、音效卡点、渲染。
三层资产:①配音(硅基流动 TTS,逐幕生成)②BGM(自带 2 条 + 可下载,音量随情节起伏)③SFX 音效(自带 6 个,按幕类型自动卡点)。
触发后的工作流
第 1 步 · 写脚本(照 references/script-gen-prompt.md 产出)
这是唯一靠创作判断、不自动化的一步。先读 references/script-gen-prompt.md,按它的「生成程序」把源材料写成 scenes:定位 → 选叙事弧 → 排幕 → 填内容 → 写旁白 → 自检。
- 内容只用源材料里的真实事实/数字,没有的标
[待确认]不臆造。 - 叙事弧只是骨架起点,服从源材料,该增删就增删。
- 命名/核心主张/归类先给候选让用户拍板,不替他定调(见用户全局规则)。
- 重要片子可先产出一份独立分镜脚本 md 让用户审,再落 config;内容已清楚可直接写 config。
第 2 步 · 脚手工程
python /scripts/new_project.py --node-modules-from
--node-modules-from 复用另一个已装好依赖的 Remotion 工程的 node_modules(快,免 npm 网络/代理坑);首次没有可复用的就 cd && npm install。
第 3 步 · 写 config.json
编辑 /src/config.json。顶层字段见下方"配置速查";每种幕的字段见 references/scene-types.md;主题/音色/画幅见 references/style-and-assets.md。 起始可参考 src/config.example.json(虚构产品 AutoClip · 完整 7 幕范例)。
第 4 步 · 生成资产
python /scripts/tts.py # 逐幕配音 + 写 vo_manifest.json(读 config 的 voice/speed)
python /scripts/synth_sfx.py # (可选)重生成音效,模板已自带 6 个
python /scripts/fetch_bgm.py # (可选)下载更多 BGM,自带 inspired/the_complex
配音依赖 SILICONFLOW_API_KEY(设环境变量,或在 skill 根建 .env)。TTS 是国内端点,脚本已 trust_env=False 绕 Clash 代理。
第 5 步 · 渲染
cd
npx remotion render Video out/video.mp4 --concurrency=2
--concurrency=2 规避 Windows 上偶发的临时文件 ENOENT(exit 2 就重试一次)。渲染前先渲 1~2 帧静帧自检(npx remotion still Video out/chk.png --frame=N),用 Read 看图确认排版,再跑全片。
第 5.5 步 · 自动质检(必跑,别靠人工审低级 bug)
python /scripts/qc.py /out/video.mp4
渲完必须跑 qc.py,它自动查 6 类低级 bug(任一 FAIL 退出码 1,必须修完再交):
- config 合法 + 幕类型有效 + 无 emoji 图标(反 AI 味)
- vo 文件与 manifest 齐全
- 旁白无尾字截断(ASR 验每条 vo 尾字——CosyVoice2 会随机吞尾字,tts.py 已带验尾重试,qc 再兜底)
- 时长匹配:每幕留够尾白,末句在片尾前收完(防"最后一句被切")
- 音频中段无掉音(防"声音突然断掉";BGM 恒定垫音≥0.09)
- 成片含视频+音频流、分辨率符画幅、总时长≈预期
FAIL 就按提示修(截断→重跑 tts;掉音→提高 bgmVolume;末句被切→加末幕 endPad),再重渲重检。
第 6 步 · 交付 + 可选加速版
python /scripts/make_2x.py out/video.mp4 out/video_2x.mp4 2.0 # 快进 teaser,音调不变
把成片给用户看,按反馈迭代 config(改文案/换主题/调 BGM 音量/加删音效)。
配置速查(config.json 顶层)
| 字段 | 说明 | 例 | |---|---|---| | brand | 左上角顶标(留空则不显) | "KROX AI" | | watermark | 右下角角标(合规/概念演示标注) | "产品概念演示" | | aspect | 画幅 | "16:9" / "9:16" / "1:1" | | fps | 帧率 | 30 | | theme | 主题预设 | "warm-dark" / "midnight" / "clean-light" | | themeOverrides | 覆盖任意主题色 | {"accent":"#FF6A00"} | | voice | 配音音色(CosyVoice2) | "alex"(男沉稳)见 style-and-assets | | speed | 语速 | 0.9(沉稳)~ 1.1 | | bgm | 背景音乐文件名(public/bgm/,不含.mp3)或 "none" | "inspired" | | bgmVolume | BGM 恒定垫音音量(0~1,常用 0.09~0.12,别 写完 config 自检:有没有 emoji 图标?有没有超过 2 处 accent 色?有没有能删的装饰?——有就删。
⑤ 音效准则(反"每页一个大 whoosh"的 AI 幻灯片味):
- ❌ 差:每幕开场放一个
rise上扬音当"切换声"——满片都是 whoosh,吵、廉价。 - ✅ 好:幕切换默认静音;音效只留给内容动作(节点点亮 ping、盖章 stamp、落板和弦),且音量压很低(默认 0.18,响的≤0.28)。进入声用清脆短击不用噪音扫。引擎已按此调好,写 config 时不用额外配,
sfx:false可整关。
⑥ 视觉深度(引擎已自带,别改平):每幕背景有氛围层(BgFx:渐变光晕+隐约网格+暗角+颗粒),大标题走电影感 blur 入场,kicker 带 accent 短线——这些是"不平底 PPT"的关键。别把背景改回纯色平底。想换氛围强度调 theme 或 BgFx。
关键坑(踩过的)
- TTS 模型名大小写:
FunAudioLLM/CosyVoice2-0.5B(大写 B),错了报"缺 input"。脚本已固定。 - 代理:硅基流动/本地是国内端点要绕代理(脚本已处理);下 BGM 是国外站要走代理(fetch_bgm 已处理)。
- 字体:大标题用自带的思源宋体(
public/fonts/,fonts.tsx组件内 delayRender 加载——顶层模块加载会崩 bundle),正文用系统 sans;别退回系统雅黑当大标题(AI 味)。 - BGM 版权:自带 inspired/the_complex 是 Kevin MacLeod CC-BY,对外发布需片尾署名;要零署名让用户下 Pixabay CC0 换进 public/bgm/。
- staticFile 中文名:配音/资源文件名用 ASCII(vo0.mp3),别用中文,避免编码问题(脚本已按幕序号命名)。
- 竖屏 9:16:v0 各幕排版按 16:9 调优,竖屏能出但可能要收窄某些幕的
w;先渲静帧看。
参考
references/script-gen-prompt.md— 第 1 步写脚本的提示词:源材料→分幕脚本;含叙事弧库、节拍→幕映射、旁白规则、真实性红线、自检清单、可复制 PROMPT(任一大模型可独立跑)references/scene-types.md— 10 种幕类型的字段与用法(写 config 前必读)references/style-and-assets.md— 主题预设、音色清单、BGM 来源、音效清单、画幅references/config-schema.md— 完整 config 结构 + 校验要点assets/remotion-template/src/config.example.json— 完整范例(虚构 AutoClip 7 幕)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: stoneyang0213
- Source: stoneyang0213/demo-video-maker
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.