【问题标题】:HLS live streaming subtitle?HLS 直播字幕?
【发布时间】:2016-09-22 06:02:01
【问题描述】:

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

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

【问题讨论】:

    标签: live-streaming http-live-streaming 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
    

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

    【讨论】:

    • 非常感谢!对于遇到同样问题的其他人应该真的很有帮助,但不幸的是,我无权写入 m3u8 文件,我应该寻求其他解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2018-11-17
    • 2017-08-31
    • 2014-02-12
    • 2020-05-15
    • 1970-01-01
    • 2013-08-30
    相关资源
    最近更新 更多