先记住这个答案
<track> 给 <video> 或 <audio> 提供随播放时间同步的文本轨道。subtitles 常用于对白翻译或转写;captions 给听不到音频的人提供更完整的信息,除了对白还应包括重要音效和说话人变化。其他 kind 还有 descriptions、chapters、metadata。轨道文件和播放器支持之外,完整文字稿仍有独立价值。
subtitles偏向语言翻译captions包括重要非语音声音srclang标记轨道语言default指定默认启用候选
教学视频需要哪种轨道
英文讲座给中文用户翻译时,可提供中文 subtitles;为听力受限的英文用户提供文本时,captions 应写出关键声音线索,不只是逐字对白。
<video controls src="lesson.mp4">
<track kind="subtitles" src="lesson-zh.vtt"
srclang="zh" label="中文翻译">
<track kind="captions" src="lesson-en.vtt"
srclang="en" label="English captions" default>
</video>浏览器会根据轨道设置和用户选择显示相应文本。src 指向有时间轴的 WebVTT 文件;label 是用户在播放器菜单里看到的名称。
default 不等于强制所有用户都看到该轨道,播放器和用户偏好仍会影响最终选择。多条同类轨道的默认设置也应仔细管理。
章节和描述不是普通字幕
chapters 可提供可跳转的章节标题,descriptions 用于补充画面中无法从声音获知的信息,metadata 面向脚本而非直接显示。不能把所有文本轨道都写成 subtitles,否则播放器和辅助技术难以正确解释。
视频关键内容最好另有文字稿入口,便于不使用播放器的人浏览和检索。字幕与文字稿可以共享内容来源,但呈现方式和需求不同。
为同一语言制作轨道时,要先想清楚用户缺少的究竟是什么信息。若“门铃响了”推动剧情,只写说话人的台词,听不到声音的人仍会漏掉情节;这正是 captions 要补非语音线索的原因。翻译轨道则应把原语言内容译成目标语言,不能把英文字幕文件标成中文 srclang。
发布前至少在播放器里检查切换轨道、时间点和文字覆盖画面的情况。轨道文件格式正确只说明能加载,不代表文字出现的时机和阅读速度合理;特别是镜头变化很快的片段,需要人工跟着播放一次。
容易答错的地方
- 把 captions 当成纯翻译字幕
- captions 应包含理解内容所需的非语音声音信息;单纯语言翻译通常用 subtitles。
- 认为有轨道文件就不用检查内容
- 文件可能时间轴不准、漏译或缺重要音效,仍需人工验收。
面试官还会怎么问?
srclang 写什么?
写轨道文本的语言标记,例如 zh 或 en,让用户和浏览器知道文本语言。
章节轨道有什么用?
给播放进度提供有名称的片段,方便用户跳转和理解结构。
音频也能使用 <track> 吗?
可以使用文本轨道,但具体用户界面支持要在目标播放器中检验。
参考资料
示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。