HLS直播流媒体字幕?

时间:2016-09-22 06:02:02

标签: live-streaming http-live-streaming hls webvtt

我正在使用rtmp将流广播到服务器并使用HLS将视频流式传输到我的设备。 是否有字幕协议,我可以实时更新字幕, 例如,服务器中有一个字幕文件,我可以继续写入该文件,我的播放器也可以继续读取该文件。

我知道WebVTT适用于录制的流媒体视频,但是它适用于直播视频吗?我可以将播放器链接到webVTT文件,我可以通过写入来更新字幕吗?

1 个答案:

答案 0 :(得分: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

等等。您可能需要编写一些自定义代码来更新字幕播放列表。