首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查HLS提要是否仍在运行

如何检查HLS提要是否仍在运行
EN

Stack Overflow用户
提问于 2018-12-02 04:06:41
回答 1查看 2.1K关注 0票数 2

我有一个m3u8提要,我正在寻找一种方法来检测它是否仍在工作或不使用Javascript。当我取到url时,我仍然会得到所有块的列表,但是很久以前就停止了。玩家不玩这个游戏。因此,我想知道是否有一种方法来检查m3u8提要是否还在运行,而无需在播放器上试用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-12 11:23:50

常见的活动流行为是,每隔一秒钟就有一个新段可用,即在播放列表的末尾添加。

所以,您可以做的是加载播放列表一次,然后等待x秒,然后再加载它。如果活动流仍在运行,则播放列表中的最后一个段应该已经更改(即向上移动)。

关于等待的时间:当您最初加载播放列表时,您将在播放列表中看到一个指定最大段持续时间的EXT-X-TARGETDURATION标记。因此,如果我们在重新加载之前等待至少一个目标持续时间,那么必须至少添加一个新段。

示例:

  1. 初始载荷: #EXTM3U #EXT-X-版本:3 #EXT-X-TARGETDURATION:8 #EXT-X-媒体-序列:0 #EXTINF:8.0,https://priv.example.com/0.ts #EXTINF:8.0,https://priv.example.com/1.ts #EXTINF:8.0,https://priv.example.com/2.ts
  2. 等待8秒,因此#EXT-X-TARGETDURATION:8
  3. 第二负荷: #EXTM3U #EXT-X-版本:3 #EXT-X-TARGETDURATION:8 #EXT-X-媒体-序列:1 #EXTINF:8.0,https://priv.example.com/1.ts #EXTINF:8.0,https://priv.example.com/2.ts #EXTINF:8.0,https://priv.example.com/3.ts

侧纹

上面的例子是一个滑动窗口活动流,即播放列表顶部的段退出,EXT-X-MEDIA-SEQUENCE被递增。在这种情况下,检查EXT-X-MEDIA-SEQUENCE更改是否是一个选项。但是,如果播放列表指定了一个EXT-X-PLAYLIST-TYPE of EVENT,那么在前1位EXT-X-MEDIA-SEQUENCE中不会有任何段不发生变化。然而,检查最后一段的方法在任何情况下都有效。

1

编辑

HLS规范进一步指出:

如果媒体播放列表不包含EXT-X标记,则服务器必须使播放列表文件的新版本可用,其中至少包含一个新的媒体段。它必须相对于以前版本的播放列表文件可用的时间:不早于该时间之后目标持续时间的一半,不迟于目标持续时间的1.5倍。这使得客户端能够有效地利用网络。

因此,实际上,我们必须等待至少1.5倍的目标持续时间,直到我们重新加载。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53577307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档