首页 > 解决方案 > 用于无尽流的 hls ext-x-discontinuity-sequence

问题描述

在无穷无尽的 HLS 流中,我不确定如何实现 EXT-X-DISCONTINUITY-SEQUENCE 标记。RFC 规定:

如果服务器从媒体播放列表中删除了一个 EXT-X-DISCONTINUITY 标记,它必须增加 EXT-X-DISCONTINUITY-SEQUENCE 标记的值,以便仍然在媒体播放列表中的片段的不连续序列号保持不变。EXT-X-DISCONTINUITY-SEQUENCE 标签的值不得减少或换行。如果每个媒体段没有一致的不连续序列号,客户端可能会发生故障。

我创建的媒体播放列表始终具有相同数量的片段,并且在添加新片段时会删除旧片段。有时,两个段之间可能存在不连续性,因此我在该段中添加了一个 EXT-X-DISCONTINUITY。然而,一段时间后,当播放列表中不再有不连续性时,我删除了这个标签并应该增加 EXT-X-DISCONTINUITY-SEQUENCE。

由于流是无穷无尽的,它必须在某个时候换行。人们通常如何实现这一点?

标签: http-live-streamingexoplayerhls.js

解决方案


的值EXT-X-DISCONTINUITY-SEQUENCE定义为decimal-integer0 - 2^64 - 1 范围内的数字(参见https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-09#section -4.2 )

即使您每秒增加EXT-X-DISCONTINUITY-SEQUENCE很多次(问题暗示您不是),您似乎也极不可能需要处理此值的包装。

考虑到一般情况下可能的范围和相对缓慢的增量,我严重怀疑是否有人担心包装这个值,但我有兴趣被证明是错误的。


推荐阅读