字幕覆盖层原则
覆盖层原则——补充上游
embedded-captions技能。在其之上应用;不要期望它已合并到上游技能中。
这里结合了两个概念。首先,字幕模型——每个口语短语分为 drop(丢弃),rail(轨道),或 embed(嵌入),嵌入是稀缺的、挣得的高潮点,而非默认值。其次,覆盖层法则——字幕行作为覆盖层叠加在影片之上;它不是预留区域,因此你永远不需要上移内容或留下死区来“腾出空间”放置它。两者相互强化:因为字幕作为覆盖层呈现(在前景的逐字轨道,偶尔在主体后方的嵌入),构图保持完整画面,并以真实垂直中心为基准。
字幕模型——丢弃 / 轨道 / 嵌入
每个口语短语属于以下三类之一(直接引自 embedded-captions):
| 含义 | 显示方式 | |
|---|---|---|
| drop | 填充词——嗯/呃、口吃、自我修正 | 不显示 |
| rail | 默认状态——普通口语内容(逐字) | 整洁的底部三分之一字幕,在前景,可读。重点词可以内联 emphasis 高亮(强调色/活动词弹出)——它仍保留在轨道上。 |
| embed | 提升后的高潮——头条节拍 | 一个大的词在主体后方合成(遮罩遮挡),设计有进场+退场效果 |
轨道承载大部分文本;嵌入是稀缺的、挣得的高潮点——每个节拍 ≤1 个,不能相邻或同时可见,间隔 ≥ 一个节拍。短片段 → 通常一个嵌入;长解释 → 大约每部分一个。嵌入每个词是常见错误。
这是标准模式形状(轨道 = 逐字底部三分之一字幕;嵌入 = 在主体后方合成的合成高潮)。电影模式移除轨道,所有内容变为嵌入风格——仅用于纯电影请求,切勿用于解释/画外音等必须清晰阅读文字的场景。
轨道优先、嵌入稀缺(负载规则)
引自 embedded-captions 的不可协商点:
- 发言人/解释类内容轨道优先。 不要嵌入整个转录文本——大部分文本属于轨道;仅嵌入高潮点。嵌入所有内容是默认错误。
- 嵌入稀缺且间隔。 每个句子/节拍 ≤1 个嵌入,不能两个相邻或同时可见,间隔 ≥ 一个节拍,最多一个
apex。高潮 = 每个节拍的高潮点,不是“整个片段的唯一亮点”。
覆盖层法则——字幕不是保留区域
在生成的启动构图中,当启用字幕时,合成器最终会生成一个小的、最小的逐字字幕行,作为覆盖层叠加在整个影片之上(单行文本,底部居中,约占画布高度的底部 5-8%)。它是覆盖层,不是保留区域(直接引自产品发布视频场景智能体的约束 #13):
- 以真实垂直中心为基准——y = H / 2(横屏 540,竖屏 960)。不要为了“腾出空间”放置字幕而上移内容;以 0.42 × H 为中心并留下底部死区的构图是问题,不是解决方案。
- 内容可以延伸到画布底部。全出血主体、轨道和背景均允许。
- 一条软性礼节规则: 避免将_关键的小字可读文本_(如 URL 行、法律声明行、副字幕)正好停在字幕行所在的底部 ~80px 中心区域——覆盖层会与之冲突。字幕下方的大型图像/卡片/环境内容没问题;字幕皮肤设计为覆盖内容可读。
- 没有机械的保留区门控(旧的
captions.mjs keepout检查已淘汰)。最终合成快照 QA 通过视觉判断字幕-内容可读性。
当字幕禁用时: 相同的定位自由度——覆盖层 simply 不存在。
为什么这两个规则是一个原则
该模型指出轨道位于前景,嵌入是在主体后方合成的罕见词语——两者都是添加到未经修改的原始素材上的层。覆盖层法则指出字幕行是叠加在整个影片之上的层,不是从布局中挖出的区域。因此,在字幕处理流程和启动视频流程中,字幕是你添加的覆盖层,而不是你预留的区域:
- 保持完整画幅;以真实中心为基准;让内容延伸到边缘。
- 让轨道(或小覆盖层字幕行)承载逐字文本。
- 仅在真正的高潮点将词语提升为嵌入——稀缺、有间隔、绝不同时出现。
- 什么都不预留;通过视觉而非保留区门控来判断字幕-内容可读性。