首先先看一下原生HTML5 video對字幕的支援顯示情況:
HTML5允許我們使用
<video id="video" controls>
<source src="./step.mp4" type="video/mp4">
<track label="中文字幕" kind="subtitles" chapters metadata srclang="zh" src="./caption.vtt" default>
<track label="ABC" kind="subtitles" srclang="de" src="./caption1.vtt">
<track label="Number" kind="subtitles" srclang="es" src="./caption2.vtt">
</video>
複製程式碼
track的屬性介紹:
-
kind被賦予一個值subtitles,表示檔案包含的內容的型別
-
label被賦予一個值,指示該字幕集所用的語言 - 例如English或Deutsch- 這些標籤將出現在使用者介面中,以允許使用者容易地選擇他們想要看到的字幕語言。
-
src 在每種情況下都會分配一個指向相關WebVTT字幕檔案的有效URL。
-
srclang 指示每個字幕檔案的內容所在的語言。
-
該default屬性在英語
WebVTT 字幕檔案
包含實際字幕資料的檔案是遵循指定格式的簡單文字檔案,在這種情況下是Web視訊文字軌道(WebVTT)格式。該WebVTT插入規範仍在開發中,但它的主要部分是穩定的,所以我們今天可以使用它。
視訊提供商(如Blender Foundation)以其視訊的文字格式提供字幕和副標題,但通常採用SubRip Text(SRT)格式。可以使用線上轉換器(如srt2vtt)將這些轉換為WebVTT。
檔案格式規範:
檔案的字尾名為 .vtt
.vtt檔案的MIME type是text/vtt
在Chrome和Firefox瀏覽器下,.vtt字幕是可以無障礙載入顯示的,但是對於IE10+瀏覽器,雖然也支援.vtt字幕,但是卻需要定義MIME type,否則會無視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
- outline
- font
- line-height
- white-space
注意::: cue的線索樣式目前適用於Chrome,Opera和Safari,但尚未在Firefox上使用。
WebVTT還支援一些HTML標籤進行樣式控制,常見的有聲音 v 標籤,顏色 c 標籤,加粗b標籤,傾斜i標籤,下劃線u標籤,還有ruby和lang標籤等。
//設定字幕的樣式
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);
}
複製程式碼
瀏覽器相容
- IE
預設情況下,Internet Explorer 10+字幕是啟用的,並且預設控制元件包含一個按鈕和一個選單,該選單提供與我們剛剛構建的選單相同的功能。該default屬性也受支援。
注意:除非您定義MIME型別,否則IE將完全忽略WebVTT檔案。這可以通過將.htaccess檔案新增到包含的相應目錄輕鬆完成AddType text/vtt .vtt
- 蘋果瀏覽器
Safari 6.1+對Internet Explorer 10+具有類似支援,顯示帶有不同可用選項的選單,並增加了一個“自動”選項,允許瀏覽器進行選擇。
- Chrome和Opera
這些瀏覽器也有類似的實現:預設情況下,字幕是啟用的,預設控制集包含一個'cc'按鈕,可以開啟和關閉字幕。Chrome和Opera忽略元素default上的屬性,
案例展示:demo
參考資料
如果覺得還不錯,還請給我一個贊鼓勵一下!