概覽
Web視頻文本軌道(WebVTT)文件是一個簡單的文本文件,用於將標題,字幕,說明等與視頻中的時間段相關聯。
WEBVTT
00:00:03.50 --> 00:00:05.000 align:middle line:84%
In this video, you'll learn
about how Video Cloud Studio is
有關添加 WebVTT 文件的詳細信息,請參閱為視頻添加字幕文檔。
添加元數據標題
作為 HLS 規範的一部分,您需要添加一個X-TIMESTAMP-MAP
每個 WebVTT 標頭的元數據標頭,以便將音頻和視頻與字幕之間的時間戳同步。
如果您缺少此標頭或MPEGTS
值不正確,您可能會看到字幕與視頻不同步。這是因為當X-TIMESTAMP-MAP
缺少標頭,客戶端假定默認時間戳偏移量為0 .例如,使用值之間的區別900000和0會導致您的字幕延遲 10 秒。
X-TIMESTAMP-MAP
格式:
X-TIMESTAMP-MAP=MPEGTS:<MPEG-2 time>,LOCAL:<cue time>
這是一個示例WebVTT文件:
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000
1
00:00:03.500 --> 00:00:05.000 align:middle line:84%
In this video, you'll learn
about how Video Cloud Studio is
有關詳細信息,請參閱字幕片段 Apple 的 HLS 協議文檔的一部分。
確定偏移值
如果您使用 Brightcove 的 Dynamic Ingest 或 Zencoder 來轉碼您的內容,請使用偏移值MPEGTS:900000
.
如果您使用的不是Zencoder編碼系統,則最好獲取所需的值。Apple建議您設置偏移量以匹配編碼的視頻。
這MPEGTS
值對應於給定的 MPEG 幀的呈現時間戳 (PTS) 值LOCAL
時間。如果您使用的是 Brightcove 的遺留攝取系統,您可能會發現您可以使用以下值MPEGTS:0
.
如果您的帳戶啟用動態交付,並且您正在與我們一起託管字幕(非遠程字幕),然後我們將使一切自動神奇地工作(PTS 需要為零,我們將確保它是。)
如果您的帳戶啟用了動態交付並且您正在使用偏僻的字幕,您需要將 PTS 值設置為零。
例如,要獲取偏移值,您可以執行以下操作:
請求1:
在終端中,獲取HLS視頻並將其存儲在本地文件中。在這種情況下,我們將其命名為seg.ts
.
curl -o seg.ts "http://brightcove.vo.llnwd.net/v1/unsecured/media/4360108595001/201507/1154/4360341622001/4360108595001_4360341622001_s-1.ts?pubId=4360108595001&videoId=4360283683001"
要求2:
然後,使用ffprobe
命令獲取偏移值。ffprobe
是一個多媒體流分析器,它是FFmpeg框架 .您將需要下載並將其安裝在計算機上。
ffprobe -show_frames seg.ts
回應:
您的回應看起來應該類似於這樣:
pkt_pts=900000
pkt_pts_time=10.000000
pkt_dts=900000
pkt_dts_time=10.000000
最佳實務
當使用字幕開發應用程序時,以下準則應會有所幫助。
字幕時長
建議字幕時長不要超過視頻時長。這將防止字幕顯示或視頻播放完成後進度條中看不到的區域出現。