Chengfeng Export
把剪好的口播烧成一个成片文件:账本切片段、推近、字幕、HTML 画面层,一次全部烧进...
Install
npx skills add Agentchengfeng/chengfeng-videocut-skills --skill chengfeng-export -g -a claude-code -y- Repository
- Agentchengfeng/chengfeng-videocut-skills3.2k
- Category
- Engineering
- Updated
- 25d ago
- License
- Apache-2.0
- Context cost
- Lightabout 1,178 tokens
- Runs scripts
- No, instructions only
What it does
把剪好的口播烧成一个成片文件:账本切片段、推近、字幕、HTML 画面层,一次全部烧进 mp4。用户说导出、出成片、烧字幕、渲染、导出视频、生成最终文件时使用。不要用于生成删词候选、写字幕、做画面动画。
导出(成片)
这是链条最后一段,也是整个产品里唯一一个真正画出像素的地方。
在它之前全部是标注:账本记「播哪些词」,字幕记「屏上写什么」,画面记「盖什么层」, 预览把这三样实时拼给人看,不落盘。导出把它们烧成一个文件。
需要 edit-list.json(必须)、subtitles.json、visuals.json + modules/
产出 成片.mp4
前提工具:机器上有 Google Chrome(用来把字幕和动画画成图)。桌面安装来源的
FFmpeg / FFprobe 已随 App 进入 Product 受管目录;纯 CLI 安装仍要求系统
ffmpeg ≥ 6。缺 Chrome 会明确报错,不要试图绕过, , 没有它就没有字幕层和动画层。
先读取并执行 业务 Skill 的阶段合同 里的「结论等级」一节。导出不进剪辑状态机:它不改任何项目文件、不做 CAS 写入、 不推进 stage,产出是一个新文件,重跑一次就覆盖。所以它不需要确认卡。
0. 就绪
先执行 检查更新 的「就绪检查」, , skills 是否
最新、Runtime 是否配套;插件根也在那里定位(本文命令里的 <插件根> 都代入
那个字面路径)。只有「就绪」才继续;「需新会话」或「停」按它的处置执行
(含「禁止自制替代界面」禁令),业务 Skill 不自带环境逻辑。
若就绪结果为 runtime.kind=desktop-managed,直接复用桌面 App 已安装的稳定 CLI、
媒体工具与同一 launchd/windows-task 服务;不要解析 Electron 路径、另装
FFmpeg/Bun 或起第二个 Runtime。
命令
node "<插件根>/scripts/ensure-running.cjs" --json
node "<插件根>/scripts/videocut-cli.cjs" export <project> --dry-run --json # 先看计划,不编码
node "<插件根>/scripts/videocut-cli.cjs" export <project> --json # 出成片(默认 2 倍、源帧率)
node "<插件根>/scripts/videocut-cli.cjs" export <project> --out /path/成片.mp4 --json
node "<插件根>/scripts/videocut-cli.cjs" export <project> --scale 1 --json # 只要源尺寸
node "<插件根>/scripts/videocut-cli.cjs" export <project> --keep-work --json # 留下中间片和逐帧 PNG,供排查
ensure-running 身份不匹配、端口冲突或服务不健康时立即停止;不允许用 foreground
临时顶替后继续导出。
两步,别只跑第二步
① --dry-run 先报计划 片长、帧数、字幕屏数、画面层数、推近段数、输出尺寸
念给用户听。数字不对就是上游不对,编码十分钟不会修好它
② 真跑 assemble → overlay → compose → verify 四段进度
--dry-run 里的 warnings 必须原样转述。它只报一类事:某些字幕屏或画面层的词
已经被剪掉了,所以它们不会出现在成片里。这是上游要决定的事,不是导出该替人吞掉的。
清晰度:源片是天花板,先看源再谈放大
导出前看一眼源分辨率(--dry-run 的 source 字段就有):
