返回博客

程序化视频字幕:词级时间、重点高亮与版式

使用内联词数组、字幕素材、外部 JSON、批次模式和逐词展示,生成清晰且数据驱动的字幕。

2026年9月3日RenderingVideo 团队RenderingVideo 团队
程序化视频字幕:词级时间、重点高亮与版式

程序化视频字幕:词级时间、重点高亮与版式

字幕能提高理解效率、无障碍体验和静音自动播放效果,但自动字幕不能只提供一段纯文本。渲染器还需要词级时间、布局策略,以及在不同背景下都清晰可读的样式。

使用词级时间

每个字幕词包含标准化单词、带标点的显示文本、开始时间和结束时间。

{
  "word": "build",
  "punctuated_word": "Build",
  "start": 0.2,
  "end": 0.56
}

词级时间让渲染器可以高亮当前发音词、按语音逐步显示文字,并让画面变化与旁白保持同步。

选择字幕数据来源

RenderingVideo 支持三种常用形式:

  • 小型、自包含 Schema 可以直接内联词数组。
  • 可复用字幕数据可以放进 assets,并使用 { "$ref": "subtitle-main" } 引用。
  • 独立字幕服务可以通过 { "src": "https://..." } 提供外部 JSON。

外部接口应直接返回词数组,或返回包含 words 数组的对象。公开预览流程会在播放前统一处理数据。

Batch 与 Stream 模式

Batch 模式按短语分组,并高亮当前发音词,适合精致的社媒短片。

Stream 模式按顺序逐词显示,更接近实时转录,适合演示或对话内容。

通过 wordsPerBatch 控制信息密度。竖屏短视频通常比桌面讲解视频更适合较少的单批词数。

为可读性设计

先确定位置、最大文本宽度、字号和对比度。半透明背景或阴影可以避免字幕淹没在复杂画面中。字幕也要避开手机播放器控件和平台覆盖区。

{
  "type": "subtitle",
  "start": 0,
  "duration": 8,
  "words": { "$ref": "subtitle-main" },
  "config": {
    "mode": "batch",
    "wordsPerBatch": 4,
    "position": "bottom",
    "fontSize": 60,
    "textColor": "#FFFFFF",
    "highlightColor": "#7DD3FC",
    "backgroundColor": "rgba(0,0,0,0.45)"
  }
}

测试时要使用预期最长短语,而不只是平均文案。多语言文本可能明显变长,姓名和数字的换行位置也可能出乎预期。

区分整体动画与逐词高亮

config.fadeInAnimation 控制字幕批次内部的淡入;clip 层的 animationskeyframestransition 控制整个字幕容器。区分这两个层次,可以避免入场动画干扰逐词强调。

建立可重复的字幕流程

  1. 把旁白转写成带时间戳的词数组。
  2. 统一标点并确认时间单调递增。
  3. 将数据保存为字幕素材或公开 JSON。
  4. 套用品牌字幕预设。
  5. 生成预览,检查每种目标比例下的换行。
  6. 时序与安全区域审核通过后再正式渲染。

完整字段请查看字幕元素文档,也可以在首页查看真实引擎渲染的字幕样片。