字幕叠加原则
叠加原则——补充上游
embedded-captions技能。在其之上应用;不要期望它被合并到上游技能中。
这里结合了两个概念。第一,字幕模型——每个口语短语分为 drop、rail 或 embed,且 embed 是稀缺的、需挣得的高峰,而非默认选项。第二,叠加法则——字幕行作为叠加层合成在影片之上;它不是预留区域,因此你永远不需要上移内容或留下死区来“为它腾出空间”。两者相互强化:因为字幕以叠加层方式呈现(逐字轨道在前,偶尔的嵌入在后),组合保持完整画幅并以真正垂直中心居中。
字幕模型——drop / rail / embed
每个口语短语是三类之一(直接引用自 embedded-captions):
| 含义 | 如何显示 | |
|---|---|---|
| drop | 填充词——嗯/呃、口吃、自我纠正 | 不显示 |
| rail | 默认——普通口语内容(逐字) | 干净的下三分之一字幕,在前,可读。一个重音词可以获得内联 emphasis 高亮(强调色/活动词弹出)——它仍留在轨道上。 |
| embed | 提升的高峰——头条节拍 | 一个大的词合成在主体之后(遮罩遮挡),带有设计的入场和退场效果 |
轨道承载大部分文本;embed 是稀缺的、需挣得的高峰——每个节拍 ≤1 个,从不两个相邻/同时可见,间隔 ≥ 一个节拍。短片段→通常一个 embed;长解释视频→每个部分大约一个。每个词都嵌入是常见错误。
这是标准模式形状(rail = 逐字下三分之一;embed = 合成在主体后的高潮)。电影模式去掉轨道并使所有内容变为 embed 风格——仅用于纯电影化要求,绝不要用于需要文字可读的解释/画外音。
轨道优先,embed 稀缺(承载规则)
引用自 embedded-captions 的不可协商项:
- 人物访谈/解释视频轨道优先。 不要嵌入整个转录——大多数文本是轨道;仅嵌入高峰。嵌入所有内容是默认错误。
- Embed 稀缺且间隔。 每个句子/节拍 ≤1 个 embed,从不两个相邻或同时可见,间隔 ≥ 一个节拍,最多一个
apex。climax = 每个节拍的高峰,而非 "整个片段的唯一高潮点"。
叠加法则——字幕不是预留区域
在生成的发布组合中,当启用字幕时,finalize 会合成一个小的、最小化的逐词字幕行作为叠加层位于整个影片之上(单行文本,底部居中,大约占画布高度的底部 ~5-8%)。它是叠加层,不是预留区域(直接引用自 product-launch-video 场景代理的约束 #13):
- 将组合居中在真正垂直中心——y = H / 2(横屏 540,竖屏 960)。不要上移内容来"为字幕腾出空间";居中在 0.42 × H 并留有底部死区是 bug,不是修复。
- 内容可以延伸到画布底部。全出血的主体、轨道和背景都欢迎。
- 一条软性礼貌规则: 避免将_关键的小可读文本_(URL 行、法律行、副字幕)正好放置在字幕行所在的底部 ~80px 中心区域——叠加层会与之冲突。字幕下方的大图像/卡片/环境内容没有问题;字幕皮肤设计为在内容之上可读。
- 没有机器禁止门(旧的
captions.mjs keepout检查已弃用)。Finalize 快照 QA 通过视觉判断字幕在内容之上的可读性。
当字幕禁用时: 相同的定位自由——叠加层根本不存在。
为何这两条规则构成一个原则
该模型规定轨道在前,而 embed 是一个罕见的词合成在主体之后——两者都是添加到原始素材上的图层。叠加法则规定字幕行是合成在整个影片之上的图层,而不是从布局中切出的带状区域。因此,在字幕流程和发布视频流程中,字幕都是你添加的叠加层,而不是你预留的区域:
- 保持完整画幅;居中在真正中心;让内容延伸到边缘。
- 让轨道(或小的叠加字幕行)承载逐字词。
- 仅在真正的高峰处将一个词提升为 embed——稀缺、间隔、从不两个同时出现。
- 不预留任何东西;通过视觉判断字幕在内容之上的可读性,而不是通过禁止门。