Code前端首页关于Code前端联系我们

HTML5视频视频字幕的使用和制作

terry 2年前 (2023-09-27) 阅读数 65 #数据结构与算法

原生HTML5视频对字幕的支持表现在: HTML5 video视频字幕的使用和制作

元素

HTML5允许我们使用元素来指定视频的字幕。该元素的各种属性允许我们指定诸如要添加的内容的类型、其使用的语言,当然还有对包含实际字幕信息的文本文件的引用。

<video id="video"  controls>
    <source  type="video/mp4">
    <track label="中文字幕" kind="subtitles" chapters metadata srclang="zh"  default>
    <track label="ABC" kind="subtitles" srclang="de" >
    <track label="Number" kind="subtitles" srclang="es" >
 </video>
复制代码

track 的属性介绍:

  • type 分配一个值 subtitles,表示该文件包含的内容类型
  • label 分配一个值,表示这组字幕使用的语言 - 例如英语或德语 - 这些标签显示在用户界面中,以允许用户轻松选择他们想要查看的字幕语言。
  • src 在每种情况下都会分配一个指向相关 WebVTT 字幕文件的有效 URL。
  • srclang 表示每个字幕文件内容所在的语言。
  • 在 English 元素上设置默认属性,以向浏览器指示这是打开字幕且用户未进行特定选择时使用的默认字幕文件定义。

WebVTT 字幕文件

包含实际字幕数据的文件是遵循指定格式的简单文本文件,在本例中为网络视频文本轨道 (WebVTT) 格式。 WebVTT插件规范仍在开发中,但主要部分已经稳定,所以我们今天就可以使用它。

Blender Foundation 等视频提供商为其视频提供字幕和文本格式的字幕,但通常采用 SubRip 文本 (SRT) 格式。可以使用 srt2vtt 等在线转换器将它们转换为 WebVTT。

文件格式规范:

文件的后缀为.vtt

.vtt该文件的MIME类型在浏览器text/vttFirefox下为text/vtt。 subtitles 可以毫无障碍地加载和显示,但是对于 IE10+ 浏览器,虽然也支持 .vtt 字幕,但是必须定义 MIME 类型,否则 WebVTT 格式将被忽略。更简单的方法是在字幕所在文件夹下添加一个.htaccess文件,在里面写入AddType-text/vtt .vtt。

//文件开头下必须先声明 **WEBVTT**
WEBVTT
// 起始时间  -->  结束时间,单位为毫秒
00:00:00.001 --> 00:00:03.000
// 对应上面的时间显示字幕,可以单独设置样式,aa类似class类名
<v aa>九幽阴灵1111</v>
00:00:03.001 --> 00:00:06.000
<v bb>诸天神魔2222</v>
00:00:06.001 --> 00:00:09.000
以我血躯3333
00:00:09.001 --> 00:00:12.000
奉为牺牲4444
00:00:12.001 --> 00:00:15.000
三生七世5555
复制代码

这个文件规范非常简单。可以自己手写,也可以使用张鑫旭开发的webvtt.vtt文件生成器生成

字幕css样式设置

::cue 使用伪元素是使用信号在 VTT 轨道媒体中。只有几个CSS属性可以应用于文本提示:

  • color
  • opacity
  • visibility
  • text-decoration
  • text-shadow♿background♿backgroundline
  • font
  • line - height
  • white-space

注意:::cues 提示样式目前适用于 Chrome、Opera 和 Safari,但尚不适用于 Firefox。

WebVTT 还支持一些 HTML 代码进行样式控制。常见的包括声音v标签、颜色c标签、粗体b标签、det标签、下划线u rubylong 标签等。

//设置字幕的样式
video::cue{
    background-color:transparent;
    color:white;
    font-size:20px;
    line-height: 100px;
}

// 设置单行字幕的样式 
video::cue(v[voice=aa]){
    color:green;
}

video::cue(v[voice=bb]){
    color:rgb(0, 26, 128);
}
复制代码

兼容浏览器

  • 0 默认情况下 Internet Explorer 是 字幕 IE 默认情况下包含一个按钮和一个菜单,提供与我们刚刚构建的菜单相同的功能。还支持默认属性。

    注意:除非您定义 MIME 类型,否则 IE 将完全忽略 WebVTT 文件。这可以通过将 .htaccess 文件添加到包含 AddType text/vtt 的相应目录中轻松完成。vtt

    • Safari

    Safari 6.1+ 对 Internet Explorer 10+ 具有类似的支持,它显示不同可用选项的菜单,并添加了一个“自动”选项让浏览器进行选择。

    • Chrome 和 Opera

    这些浏览器具有类似的实现:默认情况下启用字幕,默认控件集包括用于打开和关闭字幕的“cc”按钮。 Chrome 和 Opera 会忽略元素的默认属性,而是尝试将浏览器的语言与字幕的语言进行匹配

    Kassak 演示:demo

    作者:Z 不明白
    来源:掘金

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门