基于树表双索引结构的直播服务器的HLS会话管理方法与流程
- 国知局
- 2024-08-02 14:34:37
本发明属于视频直播领域,尤其涉及一种基于树表双索引结构的直播服务器的hls会话管理方法。
背景技术:
1、目前常用于视频直播中的流媒体传输协议包括rtmp(real time messagingprotocol,实时消息传输协议)、hls(http live streaming,基于http的媒体流传输协议)、dash(dynamic adaptive streaming over http,基于http的动态自适应流)和webrtc(webreal-time communication,网页即时通信)等。相对于常见的流媒体协议,hls最大的不同之处在于它并不是一次请求完整的数据流,而是在服务端将整个视频分割成连续的时长较短的小ts(transport stream,传送流)文件,客户端通过m3u8索引文件按序访问ts文件,不断请求和下载这些小文件来播放视频,因此客户发起的一次hls视频播放过程(即一次hls会话)包含多次连续的http请求。
2、hls会话管理可实现对客户端的播放信息统计,是直播服务器的一个重要部分。其方式为在接收到客户端的主m3u8请求时为其生成唯一的会话号(sessionid),并通过m3u8索引文件内容的修改使得该会话中后续的http请求均携带该sessionid参数,若长时间无携带某sessionid的请求则标记该会话失效。因此hls会话管理包含对各会话的信息更新、对失效会话的内存清除两个方面。
3、在hls会话的多次http请求中,直播服务器侧无法预知当前会话是否在本次请求后结束,且客户端不会主动发出退出信号,因此难以直接清理session,需要后续定时检测并清空失效的会话节点。
4、已有的hls会话管理方法,虽然对session节点的检索能力较强,但在清除过期失效的session信息时,通常需要遍历所有session节点进行判断,在海量客户端的直播服务器侧会对系统整体提性能有较大影响,因此亟需一种兼具检索与删除高效性的hls会话管理方法。
技术实现思路
1、鉴于以上现有技术的不足,发明的目的在于提供一种基于树表双索引结构的直播服务器的hls会话管理方法,可以实现hls会话的快速搜索、及时清除,减小对系统性能的影响。
2、本发明的提出了一种基于树表双索引结构的直播服务器的hls会话管理方法,包括:
3、s1,创建hls会话管理索引结构,其中,所述hls会话管理索引结构采用树表双索引结构,所述树表双索引结构为红黑树结构与双向链表结构相结合的结构;每个所述hls会话节点支持红黑树结构和双向链表结构两种索引方式;
4、s2,在直播服务器中添加频道时,为每个频道创建并初始化hls会话树,并创建定时清理任务,所述定时清理任务用于每间隔预设时间对所述hls会话树进行一次失效会话节点的清除;
5、s3,创建会话节点,包括:直播服务器在接收到用户的主m3u8请求时,开启hls会话,为所述hls会话随机生成会话id,创建会话节点,将所述会话节点插入hls会话树的红黑树结构中;将所述会话节点插入到双向链表的头部;
6、s4,更新会话节点,包括:直播服务器接收到用户的子m3u8和ts分片请求时,根据会话id在红黑树结构中定位到会话节点,更新会话相关信息,并对双向链表进行调整,以保证被访问的节点在双向链表的最头部位置;
7、s5,清除会话节点,包括:每间隔预设时间执行所述定时清理任务,在清除失效会话节点时,由双向链表结构的尾部节点开始依次清除失效节点,无需遍历所有节点。
8、进一步地,在所述s1中,所述hls会话节点通过left指针和right指针支持红黑树结构,用于指示所述hls会话节点在红黑树结构中的左右子节点;
9、所述hls会话节点通过prev指针和next指针支持双向链表结构,用于指示所述hls会话节点在所述双向链表结构中的前后节点。
10、进一步地,在所述s2中,所述hls会话树包括红黑树结构体tree以及双向链表的头head指针和尾tail指针;
11、所述hls会话节点包括红黑树节点node和会话id信息、双向链表中的前后节点指针的信息。
12、进一步地,在所述s3中,所述红黑树结构采用会话id为关键值,双向链表采用最近访问时间为排序依据。
13、进一步地,在所述s3中,所述会话id包括:固定标识、时间戳和多位随机数。
14、进一步地,在所述s3中,将所述会话节点插入到双向链表的头部,设置该会话节点为头部head、该会话节点的前节点prev为空、后节点next为原头部head。
15、进一步地,在所述s4中,根据请求携带的会话id在所述红黑树结构中查找对应会话节点,若无该会话节点,则判断该请求属于非法请求,返回拒绝响应;如果找到该会话节点,依据访问时间判断是否已失效,若失效则返回拒绝,若没有失效,则依据此次请求来更新对应会话节点中的相关信息。
16、进一步地,在所述s5中,定时清理任务中,直播服务器每隔一段时间t,会检测链表的尾部节点的最近访问时间,判断该会话节点是否失效;若没有失效,则判断目前无失效节点,等待下一次定时清理;若失效,则清除该会话节点,并继续访问链表中的下一个节点,重复上述判断与操作,直到当前会话节点未失效,本次清理结束。
17、进一步地,所述清除会话节点,包括:从所述红黑树结构和双向链表结构中删除该会话节点,释放节点内存。
18、进一步地,在所述s5中,所述双向链表结构的尾部节点为最久未被访问的会话。
19、本发明有益效果如下:
20、1)本发明提出了一种树表双索引结构,每一个会话节点支持不同的两种索引,既可以在红黑树中依据某种关键字快速查找、又可以依据某种属性在双向链表中快速排序遍历操作,在不增加重复冗余信息的情况下,实现对节点的灵活管理。
21、2)针对hls会话管理,本发明提出了树表双索引结构的更新方式,客户端请求时依据sessionid在红黑树中查找到会话节点的基础上,修改会话节点中的链表前后指针,同步更新双向链表,将最新访问的会话节点移动到链表头,实现了链表结构以时间序排列,保证失效节点的集中分布,便于后续查找。
22、3)针对hls会话管理,本发明提出了树表双索引结构的清除方式,在基于最近访问时间排序的双向链表中从尾部快速定位失效节点,并在双索引结构中进行节点清除。在海量客户端接入的直播服务器侧,避免遍历检测失效节点,大幅提高了失效会话清除效率。这种树表双索引结构的hls会话管理在更新时具有红黑树的快速检索能力,在删除时具有双向链表的灵活重塑能力,兼具检索与删除的高效性,可以实现hls会话的快速搜索、及时清除。
技术特征:1.一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,包括:
2.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s1中,所述hls会话节点通过left指针和right指针支持红黑树结构,用于指示所述hls会话节点在红黑树结构中的左右子节点;
3.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s2中,所述hls会话树包括红黑树结构体tree以及双向链表的头head指针和尾tail指针;
4.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s3中,所述红黑树结构采用会话id为关键值,双向链表采用最近访问时间为排序依据。
5.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s3中,所述会话id包括:固定标识、时间戳和多位随机数。
6.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s3中,将所述会话节点插入到双向链表的头部,设置该会话节点为头部head、该会话节点的前节点prev为空、后节点next为原头部head。
7.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s4中,根据请求携带的会话id在所述红黑树结构中查找对应会话节点,若无该会话节点,则判断该请求属于非法请求,返回拒绝响应;如果找到该会话节点,依据访问时间判断是否已失效,若失效则返回拒绝,若没有失效,则依据此次请求来更新对应会话节点中的相关信息。
8.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s5中,定时清理任务中,直播服务器每隔一段时间t,会检测链表的尾部节点的最近访问时间,判断该会话节点是否失效;若没有失效,则判断目前无失效节点,等待下一次定时清理;若失效,则清除该会话节点,并继续访问链表中的下一个节点,重复上述判断与操作,直到当前会话节点未失效,本次清理结束。
9.根据权利要求8所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,所述清除会话节点,包括:从所述红黑树结构和双向链表结构中删除该会话节点,释放节点内存。
10.根据权利要求1所述的一种基于树表双索引结构的直播服务器的hls会话管理方法,其特征在于,在所述s5中,所述双向链表结构的尾部节点为最久未被访问的会话。
技术总结本发明涉及一种基于树表双索引结构的直播服务器的HLS会话管理方法,属于视频直播领域,该方法包括:HLS会话管理索引结构采用红黑树结构与双向链表结构相结合的结构;在直播服务器中添加频道时,为每个频道创建并初始化HLS会话树,并创建定时清理任务;创建会话节点,将会话节点插入HLS会话树的红黑树结构中;将会话节点插入到双向链表的头部;更新会话节,根据会话id在红黑树结构中定位到会话节点,更新会话相关信息,并对双向链表进行调整,以保证被访问的节点在双向链表的最头部位置;每间隔预设时间执行定时清理任务,清除失效会话节点。本发明的方法,可以实现HLS会话的快速搜索、及时清除,减小对系统性能的影响。技术研发人员:陈宏,潘星羽,马杨受保护的技术使用者:天翼云科技有限公司技术研发日:技术公布日:2024/7/25本文地址:https://www.jishuxx.com/zhuanli/20240801/243224.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表