2016-09-22 1279 views
0

我正在使用rtmp向服務器廣播流並使用HLS將視頻流式傳輸到我的設備。 是否有字幕協議,我可以實時更新字幕,例如, 例如,在服務器中有一個字幕文件,我可以保持寫入該文件,我的播放器也可以保持讀取該文件。HLS直播字幕?

我知道WebVTT適用於錄製的流媒體視頻,但它可以用於直播視頻嗎?我可以將我的播放器鏈接到webVTT文件嗎?我可以通過寫下來更新字幕嗎?

回答

1

您可以使用WebVTT到add subtitles to a live HLS stream。您可以通過使用實況字幕播放列表來完成此操作。它就像一個現場播放列表 - 您可以隨着時間的推移添加和刪除條目。

首先創建一個主播放列表,併爲其添加對您的字幕播放列表(subtitles.m3u8)的引用。這裏有一個(簡化的)例子:

#EXTM3U 
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",URI="subtitles.m3u8",LANGUAGE="en" 
#EXT-X-STREAM-INF:BANDWIDTH=500000,RESOLUTION=1920x1080,SUBTITLES="subs" 
prog_index.m3u8 

下一步是更新實況廣播期間的字幕播放列表。比方說,你的字幕播放列表看起來像這樣開始:

#EXTM3U 
#EXT-X-TARGETDURATION:10 
#EXT-X-VERSION:3 
#EXT-X-MEDIA-SEQUENCE:1 
#EXTINF:10, 
1.webvtt 
#EXTINF:10, 
2.webvtt 
#EXTINF:10, 
3.webvtt 

注意,#EXT-X-ENDLIST標籤從播放列表中缺少。這將導致玩家繼續檢索播放列表。

然後一段時間後(時間段),它看起來就像這樣:

#EXTM3U 
#EXT-X-TARGETDURATION:10 
#EXT-X-VERSION:3 
#EXT-X-MEDIA-SEQUENCE:2 
#EXTINF:10, 
2.webvtt 
#EXTINF:10, 
3.webvtt 
#EXTINF:10, 
4.webvtt 

等。您可能需要編寫一些自定義代碼來更新字幕播放列表。

+0

非常感謝!對於有同樣問題的其他人應該是非常有幫助的,但不幸的是,我無法寫入m3u8文件,我應該尋求其他解決方案。 – ywj7931