使用<track>标签为HTML视频添加字幕,需正确设置kind、src、srclang、label和default属性,并确保WebVTT文件格式正确、路径无误、服务器MIME类型配置恰当,同时可通过line、position等参数控制字幕样式,实现多语言支持与无障碍功能,提升用户体验。

要在HTML中为视频添加字幕,最直接且标准的方式就是利用
<video>
<track>
为视频添加字幕的核心在于正确使用
<track>
首先,你的HTML结构大概是这样的:
<video controls width="640" height="360"> <source src="your-video.mp4" type="video/mp4"> <track kind="subtitles" src="subtitles-zh.vtt" srclang="zh" label="中文"> <track kind="subtitles" src="subtitles-en.vtt" srclang="en" label="English"> <!-- 还可以添加其他语言的字幕 --> 您的浏览器不支持视频播放。 </video>
这里,
<track>
kind
subtitles
captions
descriptions
chapters
metadata
src
srclang
label
default
default
接下来,就是你的WebVTT文件了。它是一个纯文本文件,内容格式如下:
WEBVTT 1 00:00:01.000 --> 00:00:03.500 这是一段示例字幕。 2 00:00:04.000 --> 00:00:07.000 你可以在这里添加更多内容。 甚至可以分行。 NOTE 这是一个注释,不会显示。 3 00:00:08.000 --> 00:00:10.000 line:80% 还可以为字幕指定样式,比如位置。
WebVTT文件以
WEBVTT
开始时间 --> 结束时间
HH:MM:SS.mmm
line:80%
编写WebVTT文件,基础格式我刚才已经提到了,就是
WEBVTT
首先,时间戳的精确性是关键。
00:00:01.000 --> 00:00:03.500
其次,字幕块的标识符(可选)。虽然我上面的例子里写了
1
2
3
cue-intro
WEBVTT cue-intro 00:00:01.000 --> 00:00:03.500 欢迎来到我们的频道! cue-main-point 00:00:04.000 --> 00:00:07.000 今天我们将讨论WebVTT的高级用法。
再来,样式和位置控制。这是WebVTT最吸引我的地方之一。你可以在时间戳后面添加各种设置,来控制字幕的显示方式:
line
line:80%
line:2
position
position:50%
align
start
middle
end
size
vertical
WEBVTT 00:00:01.000 --> 00:00:03.000 line:10% align:end 这段字幕会显示在视频顶部,右对齐。 00:00:04.000 --> 00:00:06.000 position:10% size:30% 这段字幕会在左侧显示,宽度较窄。
这些样式属性在处理复杂的视频布局,或者需要突出某些信息时,能提供很大的灵活性。我曾经用
line
最后,WebVTT文件中的HTML标签。你可以在字幕文本中嵌入部分HTML标签,比如
<b>
<i>
<u>
<c>
<v>
WEBVTT 00:00:01.000 --> 00:00:04.000 <v John Doe><b>大家好!</b></v> 欢迎收看。 00:00:05.000 --> 00:00:08.000 <v Jane Smith><i>今天天气真好。</i></v>
结合
<c.className>
我遇到过无数次这样的问题:“我的
<track>
src
src
src="subtitles.vtt"
./assets/subtitles/
src="assets/subtitles/subtitles.vtt"
WEBVTT
HH:MM:SS.mmm --> HH:MM:SS.mmm
.vtt
Content-Type
text/vtt
.htaccess
nginx.conf
kind
kind
metadata
descriptions
kind="subtitles"
kind="captions"
<track>
default
track
default
<video>
track
default
<video>
controls
<video>
controls
在我看来,排查这类问题,最有效的方法就是“分步验证”。先确保WebVTT文件本身没有语法错误,再检查
src
<track>
kind
captions
用途:与
subtitles
[狗叫声]
[音乐响起]
[门铃声]
示例:
<track kind="captions" src="captions-en.vtt" srclang="en" label="English Captions">
WebVTT文件内容可能包含:
WEBVTT 00:00:01.000 --> 00:00:03.000 [鸟鸣声] 00:00:03.500 --> 00:00:06.000 <v Alice>早上好!</v>
在我看来,
captions
descriptions
用途:为视障用户提供视频内容的文本描述。当视频中出现视觉信息(如画面切换、人物动作、场景变化)而没有语音解释时,
descriptions
示例:
<track kind="descriptions" src="descriptions-en.vtt" srclang="en" label="Audio Description">
WebVTT文件内容:
WEBVTT 00:00:01.000 --> 00:00:04.000 [画面:一个男人走进房间,手里拿着一束鲜花,脸上带着微笑。] 00:00:05.000 --> 00:00:08.000 [画面:他把花递给坐在沙发上的女人,女人惊喜地接过。]
这个功能在很多教育、新闻或电影内容中都非常有价值。它确保了即便无法看到画面,用户也能理解视频传达的信息。
chapters
用途:将视频内容分割成逻辑章节,方便用户在播放器中快速跳转到感兴趣的部分。这对于长视频,如讲座、教程或纪录片,特别有用。
示例:
<track kind="chapters" src="chapters.vtt" srclang="en" label="Chapters">
WebVTT文件内容:
WEBVTT 00:00:00.000 --> 00:00:30.000 引言:什么是WebVTT? 00:00:30.000 --> 00:01:45.000 基础用法:track标签详解 00:01:45.000 --> 00:03:00.000 高级技巧:样式与位置
我在观看一些技术分享视频时,如果能有章节功能,体验会好很多,可以快速回顾某个知识点,而不用拖动进度条碰运气。
metadata
用途:提供与视频内容相关的额外数据,这些数据通常不会直接显示给用户,而是供脚本(JavaScript)读取和处理。它可以用于同步视频中的事件、触发动画、显示补充信息等。
示例:
<track kind="metadata" src="metadata.vtt" srclang="en">
WebVTT文件内容:
WEBVTT
00:00:05.000 --> 00:00:05.001
{"event": "highlight", "id": "section-intro"}
00:00:10.000 --> 00:00:10.001
{"event": "show_quiz", "question_id": "q1"}通过JavaScript监听
track
cuechange
<track>
总的来说,
<track>
kind
以上就是track标签怎么添加字幕的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号