PPT 逐元素讲解

16:9 把现成的 .pptx 变成带解说的视频。每页一个场景,页面元素按「拍」随旁白逐个出现,画面从原稿一比一还原,旁白优先用 PPT 备注页。

· Markdown

直接这样说

  • 用 ppt-to-video 把这份 PPT 做成讲解视频,旁白用备注页
  • 把这个 pptx 的第 3 到第 6 页做成一段口播视频

什么时候选它

你已经有一份 PPT:课程讲义、方案汇报、培训材料,想把它变成可以发出去的讲解视频,而不是重新做一遍。

画面不用你描述:形状、文本、图标、坐标、配色都由渲染管线直接从 .pptx 里抽取并还原。你只需要提供文件,确认旁白。

规格

项值
画幅16:9(只有横屏,1920×1080)
时长5–600 秒
内容语言中文、英文
场景结构一页 PPT = 一个场景,最多 120 个场景
旁白需要(音频);每一拍对齐一句旁白
字幕默认开
需要的素材.pptx 源文件 URL + 旁白音频

旁白从哪来

  1. 优先用 PPT 的备注页。它本来就是「说给人听的话」,agent 只做重排和口语化:切成与拍数对齐的句子,去掉「如图所示」「(翻页)」这类现场指代,不加原稿没有的事实。
  2. 备注为空时,从页面正文扩写。原则是讲要点背后的意思,不是把屏幕上的字再念一遍。这部分旁白是 agent 写的,会请你过目。

每页怎么动

抽取时会为每一页判定一个档位,判定理由写在 slide.modeReason:

  • static:整页第 0 帧就位,不做逐元素动画,和原稿一致。判不出结构时就用它。
  • spotlight:整页就位,随旁白提亮当前块、压暗其余,只改透明度不动位置。
  • sequenced:按块逐个入场。

原则是「宁愿不动,也不能错」。元素只增不减、已有内容永不移动。

关键参数

customPayload.slide(元素清单与时间轴)由管线自动填入,不需要也不应该手写。你能调的是下面这些。

参数位置类型 / 取值默认说明
source_document_urlgen-script 参数(CLI --source-document-url).pptx 的 URL—必传,与给 doc-parse 的是同一个 URL。管线据此抽取每页画面
scenesgen-script 参数(CLI --scenes)整数,上限 120—传 PPT 页数
slideIndexcustomPayload.slideIndex整数,1-based按场景顺序取第 i 页只讲其中几页、跳过某几页时才写
modecustomPayload.modestatic / spotlight / sequenced用抽取判定只能把判定往下压(sequenced → spotlight → static),不能往上抬
trustMeModecustomPayload.trustMeMode布尔false允许 mode 越过判定往上抬。只在人工核对过这一页重绘无误时用
defaultAnimcustomPayload.defaultAnimfade / up / down / left / right / scale / grow-x / grow-yup全局默认入场动画。细长条自动走 grow-x / grow-y
revealDurationSeccustomPayload.revealDurationSec秒0.45单个元素的入场动画时长
minBeatHoldSeccustomPayload.minBeatHoldSec秒1.2每拍最短停留,只影响推荐时长,不会把后面的拍往后推
tailPadSeccustomPayload.tailPadSec秒0.6旁白结束后的静音尾巴
showSubtitlescustomPayload.showSubtitles布尔true底部字幕条
fontFitcustomPayload.fontFitshrink / overflowshrink单行文字超框时等比缩字号塞回去,还是任其溢出。渲染环境装了原稿字体时应切 overflow
slide.beats[].atSeccustomPayload.slide.beats秒对齐第 i 句旁白起点显式起始秒,一般不用写

什么时候别选它

  • 手上没有 PPT,要从零讲一个概念 → 知识看板,版式是现成的。
  • 想要课堂板书风格 → 黑板粉笔。
  • 要竖屏 → 只有 16:9。
  • 想重新设计画面。本模板忠实还原原稿,不改版式。

常见坑

  • 没传源文件 URL。漏了 --source-document-url,要到写完全部旁白、准备素材时才会被整份拒绝。
  • 场景数没对上页数。用 doc-parse 摘要里的页数传 --scenes,生成后以 DSL 里实际的场景数为准。
  • 旁白句数和拍数对不上。句数少于拍数时,剩下的拍会在末尾均分,能跑但节奏会散。
  • 自己给 mode 往上抬。不写 trustMeMode 不生效;写了又没人工核对,可能出现画面错位。
  • 时长自己拍一个数。每页时长要同时满足「旁白说得完」和「每拍看得清」,让管线按估算器排。
  • 旁白把屏幕上的字原样念一遍。画面文字、字幕、语音三重重复,观感很差。
  • 备注里混着出处、TODO、提醒。这些不是讲稿,确认旁白时留意是否已被剔掉。

下一步

  • 文档抽取(doc-parse) — 把一份 .pptx 拆成结构化数据——每页的标题、正文、备注页讲稿,以及一比一还原原稿版式的形状/坐标/配色和动画分拍。
  • 脚本生成(gen-script) — 输入一个主题,产出结构化的视频 DSL:分几个场景、每个场景讲什么、要哪些素材。这是整条流水线的第一步,出稿后会停下来等你确认。
  • 配音(gen-voice) — 文字转语音(Minimax)。返回可直接播放的音频 URL,JSON 输出时附带音频时长和字幕时间轴,不需要下载。
  • 素材准备(prepare-video-assets) — 拿一份 DSL,把里面引用的每张图、每段音频、每个视频和数字人都真的生成出来,落成一个渲染计划,返回 job_id。
  • 视频渲染(render-video) — 按 job_id 取出渲染计划,交给 Remotion 渲染引擎出片并上传。它不生成任何素材——素材必须已经准备好并经你确认。
  • 知识看板 — 16:9 横屏概念讲解模板。26 种内置幻灯片版式、7 种背景预设,卡片随旁白逐项点亮,适合科普、白板风格的讲解。
  • 黑板粉笔 — 16:9 横屏黑板课程模板。木框 + 墨绿板面 + 粉笔字,版式与知识看板完全同名,多了课程名页眉、章节号和标题两色分词,适合成系列的课程讲解。