如何更改 html5 中的视频字幕字体大小?

How to change video subtitles font size in html5?

我的html看起来像这样:

<!DOCTYPE html>

<html>
    <head>
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
        <video controls="" autoplay="" name="media">
            <source src="videoPath" type="video/mp4">
            <track label="English" kind="subtitles" srclang="en" src="subs.vtt" default>
        </video>
    </body>
</html>

因为subs.vtt是字幕文件

如何更改附加到 track 元素的字幕大小?

我尝试创建一个 css 文件,然后给 track 一个 id 并指定它的 font-sizecss 中,当然将 css 链接到 html,但是尺寸没变。

我还尝试在 .vtt 文件内部设置样式:

WEBVTT

1
00:00:43.889 --> 00:00:46.949 size:200%
<i>Introduction...</i>

而且它没有改变大小。

我也尝试过在网上找到的类似方法:

WEBVTT
<link href="style.css" rel="stylesheet" type="text/css" />
1
00:00:43.889 --> 00:00:46.949
<c vIntro><i>Introduction...</i></c>

css中:

.vIntro{
  font-size: 5em;
}

但这也没有改变大小。

我更喜欢不触及 .vtt 文件的方法。

更新:现在是 2021 年,距离最初的答案已经写了六年多了,Shadow DOM has much wider support with a changed spec.


原始答案

browsers that support Shadow DOM中,您可以设置字幕样式。它可能因浏览器而异,但在 Chrome 42(撰写本文时为当前版本)中,您可以使用此 CSS:

video::-webkit-media-text-track-display {
  font-size: 200%;
}

鉴于其中有供应商前缀,我想其他浏览器可能需要额外的规则。话又说回来,支持 Shadow DOM 的浏览器并不多。在撰写本文时,它只是 Chrome、Opera 和 Android/Chrome-for-Android。

这是一个老话题,但在 google 中仍然排在第一位。所以这是我的答案。

对于 firefox(我不知道其他浏览器),你可以把它放在你的 css :

::cue {
  font-size: 1.2em;
}