OpenMontage 视频制作技能
OpenMontage 不是"投主题、出视频"的机器,而是视频工作室 + 操作手册:
它把你变成导演,由助手读手册、选流水线、调 100+ 工具、在每个阶段等你拍板。
没有独立服务端,助手本身就是编排器。
本技能额外包含一套本机验证过的部署流水线——把 OpenMontage 从裸仓库
一路装到能真实渲染 MP4,全过程可复现、可幂等重跑。
快速决策:我该怎么开始?
| 你的情况 | 做什么 |
|---|---|
| 第一次用 / 不确定环境是否就绪 | python scripts/om_status.py --doctor |
| 环境没装好 | python scripts/om_setup.py all(首次建议加 --minimal) |
| 只想看能不能出片 | 直接跳到出片五步 |
| 要读懂 OpenMontage 本身的流水线体系 | 读 {repo}/AGENT_GUIDE.md 与 PROJECT_CONTEXT.md |
默认路径(已在 config.json,可用 --repo-root / --data-root 覆盖):
- 仓库:E:\Workbuddy\OpenMontage
- 数据根:D:\WorkBuddyData
- Python:C:\Users\Administrator\.workbuddy\binaries\python\versions\3.13.12\python.exe
- Node:C:\Users\Administrator\.workbuddy\binaries\node\versions\22.22.2-3
> 不要用 python -m golden_key... 直接调用,依赖会因缺 .pylibs 而报错。
> 用仓库里的 om_cli.py 启动器,或本技能的脚本。
阶段一:部署(一次装好,长期可用)
PY=C:/Users/Administrator/.workbuddy/binaries/python/versions/3.13.12/python.exe
S=C:/Users/Administrator/.workbuddy/skills/openmontage/scripts
# 体检(只读,随时可跑)
"$PY" $S/om_status.py --doctor
# 全量部署;首次建议 minimal 版(跳过付费云 SDK,快很多)
"$PY" $S/om_setup.py all --minimal
# 只补某个阶段
"$PY" $S/om_setup.py pydeps ffmpeg
"$PY" $S/om_setup.py remotion sync
八个阶段
| stage | 做什么 | 落地位置 |
|---|---|---|
repo |
校验仓库完整性 | {repo} |
pydeps |
Python 依赖 → 隔离目录 | {repo}/.pylibs |
ffmpeg |
探测/落位 ffmpeg+ffprobe | {data}/Runtime/FFmpeg/bin |
remotion |
从 package-lock 并发提取依赖 | {repo}/remotion-composer/node_modules |
sync |
同步到运行时路径 | {data}/Runtime/Composition/Remotion |
hyperframes |
npm 装 HyperFrames + sharp | {data}/Runtime/Composition/HyperFrames |
browser |
下载并校验无头 Chrome | {data}/Runtime/Browsers/HyperFrames |
finalize |
写生产 marker,令 doctor 翻绿 | 各组件目录 |
幂等:任何时候中断都能重跑,已完成的阶段会自动跳过(--force 可强制重装)。
部署完成标志
om_status.py 全部 OK,且 om_status.py --doctor 输出:
status: pass · complete_production_environment: ready · warnings/errors 均为空。
> claims.install_ready 保持 false 是正常的——那是 WorkBuddy 主流程在
> 显式人工确认后才置位的产品准入位,不要伪造,也不影响出片。
出片五步
详细命令见 references/production-runbook.md。概要:
1. 改数据 — 编辑 scripts/narrate.py 顶部的 AGENTS / DIMENSIONS / SCENES
2. 生成配音 + 分镜
"$PY" $S/narrate.py --project-dir E:/Workbuddy/OpenMontage/projects/my-video
用 edge-tts 合成中文配音,再用 ffprobe 量真实时长反推帧数——这是音画对齐的关键。
3. 素材进渲染工程(工程必须放 {data}/Runtime/Composition/Remotion/<项目名>/,
Node 向上解析父级 node_modules,免 npm install)
4. 渲静帧验证(十几秒每种场景各抽一帧,确认中文与版式)
5. 渲染成片
node .../@remotion/cli/remotion-cli.js render src/index.tsx CNCompare out.mp4 \
--browser-executable=".../chrome-headless-shell.exe" \
--codec=h264 --audio-codec=aac --crf=18 --concurrency=4 --overwrite
模板:templates/remotion-project/ 是已渲染成片的真实工程
(对比类视频,7 种场景类型,967 行),换数据即可复用。
无 API key 的替代方案(本机默认状态)
仓库没有 .env,所以所有云能力都不可用。已验证的零密钥路径:
| 需求 | 方案 |
|---|---|
| 配音 | edge-tts(免 key,质量很高)。zh-CN-YunxiNeural 男声科技解说 / XiaoxiaoNeural 女声 / YunjianNeural 男声浑厚 |
| 画面 | Remotion 程序化动效(数据驱动,纯本地,无版权风险) |
| 音乐 | ❌ 无 key,只能出无 BGM 版 |
配了 key 后在 {repo}/.env 里写入即可解锁 OpenAI / Google / DashScope / Kling 等。
MPT vs OpenMontage
- MPT(
money-printer-turbo技能):独立服务,主题进→mp4 出。封闭、快、适合批量草稿。 - OpenMontage:指令集 + 手册,助手自行编排,每阶段可审查。慢、可控、适合精品成片。
- 可协同:MPT 出粗剪 → OpenMontage 精修。
📚 参考资料
references/pitfalls.md— 踩坑全录(含 P0 级 junction 误删事故、pip/npm 沙箱限制)。
遇到报错先看这里,每条都有现象/原因/解法。references/production-runbook.md— 出片完整命令、性能预期、渲染后校验、竖屏适配。templates/remotion-project/— 可直接套用的 Remotion 工程骨架。
⚠️ 三条硬规则
- 任何递归删除必须走
omlib.safe_rmtree()—— 普通rmtree会穿过 junction
删掉真实源目录,曾因此丢失 210 个包并被迫重提。 - 依赖只装进
{repo}/.pylibs,绝不动托管 Python 本体 ——
在托管 embeddable 运行时上卸载包会让它彻底报废。 - pip 必须前台跑,且 TEMP 与 target 同盘 —— 后台 + 跨盘必然失败。
已知边界
- 4 核机器 1080p 渲染约 2 fps,2 分钟片子需 30–36 分钟。
去掉backdrop-filter基本不提速——CPU 光栅化是硬瓶颈,别为此牺牲画面。 - 竖屏需要重排
Compare.tsx的 padding 与卡片布局,改宽高参数不会自动适配。 narrate.py里的评分数据属编辑主观评估,成片务必保留免责说明。