【问题标题】:Videojs, How to update m3u8 playlist dynamicallyVideojs,如何动态更新 m3u8 播放列表
【发布时间】:2019-10-18 16:23:08
【问题描述】:

我想将来自后端的新传入块添加到已经播放“实时”m3u8 播放列表的播放器

这是一个现有的播放列表(已设置并播放)

#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2018-10-19T16:39:07Z
#EXTINF:6.000,
56-06000.ts
#EXTINF:6.000,
56-06000.ts
#EXTINF:6.000,
56-06000.ts
#EXTINF:6.000,
56-06000.ts
#EXT-X-ENDLIST

这是一个更新的播放列表,我想用下一个替换旧的播放列表(列在下面),但我不想用命令 (player.src(...)) 重新加载 videojs 播放器

#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2018-10-19T16:39:07Z
#EXTINF:6.000,
56-06000.ts
#EXTINF:6.000,
56-06000.ts
#EXTINF:6.000,
56-06000.ts
#EXTINF:6.000,
56-06000.ts
....
....
many another chunks
....
....
#EXT-X-ENDLIST

我该怎么做?或者是否存在其他更新播放列表的好方法?

【问题讨论】:

    标签: http-live-streaming video.js m3u8 http-streaming


    【解决方案1】:

    将播放列表类型更改为 EVENT,不要写结束标签。然后播放器将继续请求更新的播放列表。有关更多信息,请阅读规范。 https://www.rfc-editor.org/rfc/rfc8216

    【讨论】:

    • 您知道是否有任何 python(或任何其他语言)库可以执行播放列表更新工作,我有一个 m3u8 文件,但似乎请求服务器更新播放列表的过程是我不清楚。
    • 将事件类型更改为“EVENT”确实会使videojs重新加载清单文件,但是,如果您的HLS服务器是nginx + rtmp模块,那么这也会使nginx保留.ts片段,这使得此解决方案与直播场景无关。
    猜你喜欢
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2014-12-18
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2013-09-09
    相关资源
    最近更新 更多