| name | slide-video-delivery |
| description | 将标准 HTML 幻灯片包、TTS 音频和 tts-manifest.json 制作为完整视频交付包,固定包含逐页渲染、MP4 合成、ASS 字幕与烧录、横竖双封面以及逐片段 QA。用于幻灯片视频的最终生产和交付,不限制上游使用 frontend-slides、Hyperframes 或其他 HTML 生成器。 |
幻灯片视频交付
这是不可拆分的交付阶段。成功必须同时产出视频、字幕、横屏封面、9:16 竖屏封面和 QA 结果。
输入契约
deck-manifest.json:生成器无关的渲染清单。
- 清单中的
entry 指向 HTML;HTML 必须实现 window.__SLIDE_VIDEO__.showSlide(slideId),可选实现 ready(slideId)。
tts-manifest.json:必须包含与 deck 完全一致的 slide_id 集合。
voiceover.wav:TTS manifest 对应的完整音频。
voiceover.md:用于提取封面标题与副标题;若需要精确副标题,可通过 env.json 的 COVER_SUBTITLE 或 --subtitle 参数覆盖。
执行前验证两份 manifest 的 schema version、画布尺寸和 slide_id 集合。禁止按页面数量猜测映射。
固定流程
- 使用
scripts/render_slides.js 按 deck manifest 逐页渲染到 frames/。
- 使用
scripts/make_video.py 按 TTS 实际时长生成 final.mp4。
- 使用
scripts/make_ass_subtitles.py 直接从 TTS manifest 生成 subtitles.ass。
- 使用
scripts/burn_subtitles.py 生成 final-subtitled.mp4。
- 使用
scripts/generate_covers.py 调用 imagegen CLI(skills/.system/imagegen/scripts/image_gen.py)分别生成横屏 cover.png 和竖屏 cover-portrait.png。
- 禁止用 HTML 截图、浏览器渲染、同一张图机械裁切或任何非 imagegen 方式生成封面。
- 脚本从
voiceover.md 提取标题和副标题;调用前读取本 Skill 的 env.json,只把非空的 OPENAI_BASE_URL 和 OPENAI_API_KEY 注入 imagegen 子进程。
- 生成失败时立即停止,不得用截图、占位图或跳过封面兜底。
- 使用
scripts/qa_video.py 检查媒体参数、封面尺寸并为每个正文片段抽取代表帧。
- 必须传入
--cover-landscape 和 --cover-portrait 参数,脚本会校验封面文件存在、非空且尺寸与 env.json 一致。
- 尺寸校验失败时
delivery-report.json 中对应封面状态为 failed,不会进入视觉检查。
- 逐张查看
qa-frames/,核对错页、黑屏、裁切、重叠、溢出和渲染缺失;分别检查横竖封面的中心安全区、文字遮挡、可读性和缩略图效果。
- 写入
delivery-report.json,记录视频参数、字幕、两张封面、检查片段数和修复情况。
双封面规则
- 横屏封面固定命名
cover.png,默认尺寸读取 COVER_LANDSCAPE_SIZE,保持 16:9;关键文字集中在中心 4:3 安全区,兼容平台横图裁切。
- 竖屏封面固定命名
cover-portrait.png,默认尺寸读取 COVER_PORTRAIT_SIZE,保持 9:16;采用原生竖向层级,标题优先放在上半部或视觉中心,主体和辅助信息按纵向重新排布。
- 竖屏封面四周保留安全边距,标题、副标题、系列编号不得贴近顶部、底部或左右边缘,不能依赖横图裁切后再补边。
- 竖屏封面关键内容(标题、主视觉、核心标识)必须保证在 9:16 画布中央 3:4 安全区域内可完整查看,兼容平台将缩略图裁切为 3:4 或 1:1 时的显示;生成后需检查中央 3:4 区域无截断、无遮挡、无关键文字贴边。
- 两张封面保持相同主题、系列识别、标题和核心视觉语言,但允许为了各自比例采用不同构图。
- 生成后逐字检查中文标题、副标题和系列编号。发现乱码、错字、多余文字、比例错误、中心安全区不满足或缩略图不可读时必须重新生成。
delivery-report.json 分别记录 cover_landscape_status 和 cover_portrait_status;两者都为 passed 才算交付完成。
禁止事项
- 严禁用
cover-render.html 等 HTML 模板直接截图生成封面。
- 严禁用同一张封面图通过机械裁切、补边、缩放代替独立构图。
- 严禁在 imagegen 调用失败时退回到截图、纯色占位图或无封面交付。
执行脚本前先取得加载结果中显示的本 Skill 根目录,并始终使用其绝对路径调用 scripts/*;加载 Skill 不代表 shell 会自动切换目录。
所有配置从 Skill 根目录 env.json 读取,运行时同名环境变量可以覆盖。