流媒体调度方法、装置及可读存储介质与流程

文档序号:34136943发布日期:2023-05-12 18:30阅读:65来源:国知局
流媒体调度方法、装置及可读存储介质与流程

本发明涉及通信,尤其涉及流媒体调度方法、装置及可读存储介质。


背景技术:

1、基于超文本传输协议的自适应码率流媒体传输协议(hyper text transferprotocol live streaming,hls)是一种流媒体网络传输协议。hls允许将一个流媒体数据切分为多个流媒体分片。例如,在直播业务中,通过hls可以将一路流媒体直播切分成多个分片以及相对应的流媒体播放列表。流媒体客户端在开始一个流媒体会话时,首先会通过内容分发网络(content delivery network,cdn)服务器获取流媒体播放列表文件,之后流媒体客户端依据播放列表内容请求相应的分片,然后在本地通过流媒体的分片完成流媒体播放。

2、然而,在流媒体访问集中度较高的场景中(如大型发布会直播)大量流媒体客户端会同时获取流媒体的分片,由于cdn服务器可承载用户规模有限,大量流媒体客户端同时获取流媒体的分片会造成流媒体客户端播放流媒体内容出现卡顿掉帧等现象,十分影响用户体验。


技术实现思路

1、本发明提供了流媒体调度方法、装置及可读存储介质,能够降低流媒体客户端播放流媒体内容时出现卡顿掉帧现象的概率。为达到上述目的,本发明采用如下技术方案:

2、第一方面,本发明提供了一种流媒体调度方法,该方法包括:首先流媒体服务端接收客户端发送的针对一路流媒体的播放请求。然后流媒体服务端从缓存有流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点。之后,流媒体服务端向客户端发送流媒体播放列表。其中,m大于n,在n为1的情况下,所选择的1个流媒体缓存节点缓存有流媒体的所有分片,在n大于1的情况下,所选择的n个流媒体缓存节点分别缓存有流媒体的部分分片,流媒体播放列表包括n个流媒体缓存节点的地址,流媒体播放列表用于指示客户端从n个流媒体缓存节点的地址获取流媒体的分片以播放流媒体。

3、例如,一个时长为60分钟的视频公开课可以切分为60个时长为1分钟的分片,这60个切片可以存储在流媒体服务端和100个流媒体缓存节点中。流媒体服务端接收客户端发送的针对该视频公开课的播放请求后,可以先从缓存该视频公开课的分片的100个流媒体缓存节点中选择10个流媒体缓存节点,然后向客户端发送流媒体播放列表以指示客户端从这10个流媒体缓存节点的地址获取视频公开课的60个分片以播放视频公开课。

4、在流媒体访问集中度较高的场景中(如大型发布会直播)大量流媒体客户端会同时获取流媒体的分片,由于流媒体服务端(如cdn服务器)可承载用户规模有限,大量流媒体客户端同时获取流媒体的分片会造成流媒体客户端播放流媒体内容出现卡顿掉帧等现象。而在本发明提供的方法中,流媒体服务端在收到客户端发送的针对一路流媒体的播放请求后,不再直接指示客户端从流媒体服务端的地址获取流媒体的分片,而是会先从缓存有该流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,然后向客户端发送流媒体播放列表指示客户端从n个流媒体缓存节点的地址获取流媒体的分片以播放流媒体。从而避免发生大量客户端同时从流媒体服务端获取流媒体的分片造成流媒体客户端播放流媒体内容出现卡顿掉帧并且流媒体服务端选择流媒体缓存节点的过程中,流媒体服务端与客户端之间无需交互额外的信令,使得客户端无感,由此提升了用户体验。

5、在一种可能的实现方式中,所述方法还可以包括:所述流媒体服务端确定缓存有所述流媒体的其他分片的k个其他客户端,则所述流媒体播放列表还包括所述k个其他客户端的地址,所述流媒体播放列表用于指示所述客户端从所述n个流媒体缓存节点的地址和所述k个其他客户端的地址获取所述流媒体的全部分片以播放所述流媒体。

6、例如,一个时长为60分钟的视频公开课可以切分为60个时长为1分钟的分片,这60个切片可以存储在流媒体服务端、100个流媒体缓存节点和300个客户端中。流媒体服务端接收客户端发送的针对该视频公开课的播放请求后,可以先从缓存该视频公开课的分片的100个流媒体缓存节点中选择10个流媒体缓存节点,之后从除发送请求外且缓存该视频公开课的分片的300个其他客户端中选择20个其他客户端,然后向客户端发送流媒体播放列表以指示客户端从这10个流媒体缓存节点和20个其他客户端的地址获取视频公开课的60个分片以播放视频公开课。

7、可以看出,流媒体服务端不仅可以指示客户端从流媒体缓存节点的地址获取流媒体的分片以播放流媒体,还可以指示客户端从其他客户端的地址获取流媒体的分片以播放流媒体,从而进一步避免发生大量客户端同时从流媒体服务端获取流媒体的分片造成流媒体客户端播放流媒体内容出现卡顿掉帧。

8、在一种可能的实现方式中,所述n个流媒体缓存节点缓存有所述流媒体的所有分片,所述流媒体播放列表用于指示所述客户端从所述n个流媒体缓存节点的地址获取所述流媒体的全部分片以播放所述流媒体。

9、可选地,所述m、所述n和所述k均为正整数。

10、例如,m可以为100,n可以为10,k可以为300。

11、在一种可能的实现方式中,所述从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,包括:根据所述m个流媒体缓存节点的状态信息,从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,其中,所述状态信息包括负载信息、内存利用率、可用内存量、存储空间利用率、可用存储空间量、网络类型或流媒体分片存储信息中的至少一项。网络类型用于表示流媒体缓存节点的网络类型(如专网),流媒体分片存储信息用于表示流媒体缓存节点存储有哪些流媒体的分片。

12、可以看出,流媒体服务端在选择流媒体缓存节点可以根据流媒体缓存节点的状态信息选择状态较好的流媒体缓存节点,以使客户端从状态较好的流媒体缓存节点的地址获取流媒体的分片以播放流媒体,从而避免客户端从状态较差的流媒体缓存节点的地址获取流媒体的分片以播放流媒体而造成客户端播放流媒体内容出现卡顿掉帧。

13、在另一种可能的实现方式中,所述从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,包括:从缓存有所述流媒体的分片的m个流媒体缓存节点中,选择负载率最低的n个流媒体缓存节点,其中,在n为1的情况下,所选择的1个流媒体缓存节点的负载率为m个流媒体缓存节点中最低,在n大于1的情况下,所选择的n个流媒体缓存节点中每一流媒体缓存节点的负载率在缓存有所述流媒体的部分分片的流媒体缓存节点中最低。

14、例如,一个时长为60分钟的视频公开课可以切分为60个时长为1分钟的分片,这60个切片可以存储在流媒体服务端和100个流媒体缓存节点中,流媒体缓存节点a为这100个流媒体缓存节点中负载率最低的节点。流媒体服务端接收客户端发送的针对该视频公开课的播放请求后,可以先从缓存该视频公开课的分片的100个流媒体缓存节点中选择负载率最低的节点即流媒体缓存节点a,然后向客户端发送流媒体播放列表以指示客户端从媒体缓存节点a的地址获取视频公开课的60个分片以播放视频公开课。

15、可以理解的是,指示客户端从负载率最低的n个流媒体缓存节点的地址获取流媒体的分片以播放流媒体,可以避免客户端通过负载率较高的流媒体缓存节点获取流媒体的分片而导致流媒体客户端播放流媒体内容出现卡顿掉帧等现象发生,从而进一步提升了用户体验。

16、在又一种可能的实现方式中,所述从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,包括:根据所述m个流媒体缓存节点的状态信息和所述m个流媒体缓存节点的属性信息,从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点。

17、可选地,上述属性信息包括节点间地址、属性参数信息或流媒体分片内容信息中的至少一项。其中,节点间地址可以包括网际协议版本4(internet protocol version 4,ipv4)及端口和网际协议版本6(internet protocol version 6,ipv6)及端口。属性参数信息可以包括网络地址转换(network address translation,nat)类型、运营商、网络类型、内存与磁盘可用空间。流媒体分片内容信息可以包括流媒体分片的更新时间和节点的负载。

18、例如,一个时长为60分钟的视频公开课可以切分为60个时长为1分钟的分片,这60个切片可以存储在流媒体服务端和100个流媒体缓存节点中。流媒体服务端接收客户端发送的针对该视频公开课的播放请求后,可以先从缓存该视频公开课的分片的100个流媒体缓存节点中选择网络类型为专网的30个流媒体缓存节点,然后再从网络类型为专网的30个流媒体缓存节点选择负载率最低的10个流媒体缓存节点,然后向客户端发送流媒体播放列表以指示客户端从这10个流媒体缓存节点的地址获取视频公开课的60个分片以播放视频公开课。

19、又例如,一个时长为60分钟的视频公开课可以切分为60个时长为1分钟的分片,这60个切片可以存储在流媒体服务端和100个流媒体缓存节点中。流媒体服务端接收客户端发送的针对该视频公开课的播放请求后,可以先从缓存该视频公开课的分片的100个流媒体缓存节点中选择支持ipv6的70个流媒体缓存节点,然后再从支持ipv6的70个流媒体缓存节点选择负载率最低的20个流媒体缓存节点,然后向客户端发送流媒体播放列表以指示客户端从这20个流媒体缓存节点的地址获取视频公开课的60个分片以播放视频公开课。

20、可选地,上述n可以与流媒体的分片的数量相同。

21、例如,视频公开课包括60个分片,则流媒体服务端需要从缓存该视频公开课的分片的m个流媒体缓存节点中选择60个流媒体缓存节点。

22、可以理解的是,在n与流媒体的分片的数量相同的情况下,客户端通过不同的流媒体缓存节点并行下载不同的分片,可以缩短客户端下载分片所需时间,从而进一步提升用户体验。例如,直播视频包括3个1兆(mb)大小的分片,如果客户端从同一个带宽为10兆(mbps)的流媒体缓存节点同时下载这3个分片,需要的下载时间为2.4秒。而如果客户端从不同的3个带宽均为10mbps的流媒体缓存节点分别下载1个分片,所需的下载时间仅为0.8秒,可以看出下载分片所需时间显著降低。

23、可选地,流媒体缓存节点可以采用分布式存储的方式存储流媒体的分片。例如,每个流媒体缓存节点或每个流媒体缓存节点集可以仅存储同一个流媒体内容的一个分片。流媒体缓存节点包括流媒体缓存节点a、流媒体缓存节点b和流媒体缓存节点c,流媒体内容1包括分片1、分片2和分片3。每个分片为1mb。如果每个流媒体缓存节点都存储流媒体内容1的所有分片所需的存储空间为3mb。而如果每个流媒体缓存节点仅存储流媒体内容1的一个分片所需的存储空间仅为1mb。例如,流媒体缓存节点a存储流媒体的分片1,流媒体缓存节点b存储流媒体的分片2,流媒体缓存节点c存储流媒体的分片3。

24、第二方面,本发明还提供了另一种流媒体调度方法,该方法包括:首先客户端接收流媒体服务端发送的目标信息,目标信息包括m个流媒体缓存节点的属性信息;然后客户端根据所述m个流媒体缓存节点的属性信息下载流媒体的多个分片。

25、相关技术中,客户端仅能通过流媒体播放列表指示的流媒体缓存节点的地址下载流媒体的分片。而在本发明提供的流媒体调度方法中,客户端可以根据获取流媒体缓存节点的属性信息自主选择流媒体缓存节点的属性信息下载流媒体的分片。由此避免了客户端在流媒体缓存节点状态较差时通过该流媒体缓存节点下载流媒体的分片导致流客户端播放流媒体内容出现卡顿掉帧。

26、可选地,上述属性信息包括节点间地址、属性参数信息或流媒体分片内容信息中的至少一项。其中,节点间地址可以包括网际协议版本4(internet protocol version 4,ipv4)及端口和网际协议版本6(internet protocol version 6,ipv6)及端口。属性参数信息可以包括网络地址转换(network address translation,nat)类型、运营商、网络类型、内存与磁盘可用空间。流媒体分片内容信息可以包括流媒体分片的更新时间和节点的负载。

27、在一种可能的实现方式中,所述目标信息还包括流媒体播放列表,所述根据所述m个流媒体缓存节点的属性信息下载流媒体的多个分片,包括:根据所述流媒体播放列表和所述m个流媒体缓存节点的属性信息下载所述多个分片。其中,所述流媒体播放列表包括所述n个流媒体缓存节点的地址,所述流媒体播放列表用于指示所述客户端从所述n个流媒体缓存节点的地址获取所述流媒体的分片以播放所述流媒体。

28、在一种可能的实现方式中,所述根据所述流媒体播放列表和所述m个流媒体缓存节点的属性信息下载所述多个分片,包括:根据所述流媒体播放列表获取所述客户端与所述n个流媒体缓存节点之间的时延;在所述客户端与所述n个流媒体缓存节点中的任一流媒体缓存节点之间的时延大于时延阈值的情况下,根据所述m个流媒体缓存节点的属性信息下载所述多个分片。

29、在一种可能的实现方式中,所述目标信息还包括k个其他客户端的属性信息,所述根据所述m个流媒体缓存节点的属性信息下载多个流媒体分片,包括:根据所述m个流媒体缓存节点和所述k个其他客户端的属性信息下载所述多个分片。

30、可选地,所述m、所述n和所述k均为正整数。

31、例如,m可以为100,n可以为10,k可以为300。

32、第三方面,本发明还提供了一种流媒体调度装置,该装置包括处理单元,所述处理单元用于:接收客户端发送的针对一路流媒体的播放请求;从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,其中,m大于n,在n为1的情况下,所选择的1个流媒体缓存节点缓存有所述流媒体的所有分片,在n大于1的情况下,所选择的n个流媒体缓存节点分别缓存有所述流媒体的部分分片;向所述客户端发送流媒体播放列表,所述流媒体播放列表包括所述n个流媒体缓存节点的地址,所述流媒体播放列表用于指示所述客户端从所述n个流媒体缓存节点的地址获取所述流媒体的分片以播放所述流媒体。

33、在一种可能的实现方式中,所述处理单元还用于:确定缓存有所述流媒体的其他分片的k个其他客户端,则所述流媒体播放列表还包括所述k个其他客户端的地址,所述流媒体播放列表用于指示所述客户端从所述n个流媒体缓存节点的地址和所述k个其他客户端的地址获取所述流媒体的全部分片以播放所述流媒体。

34、在一种可能的实现方式中,所述n个流媒体缓存节点缓存有所述流媒体的所有分片,所述流媒体播放列表用于指示所述客户端从所述n个流媒体缓存节点的地址获取所述流媒体的全部分片以播放所述流媒体。

35、可选地,所述m、所述n和所述k均为正整数。

36、例如,m可以为100,n可以为10,k可以为300。

37、在一种可能的实现方式中,所述处理单元具体用于:根据所述m个流媒体缓存节点的状态信息,从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,其中,所述状态信息包括负载信息、内存利用率、可用内存量、存储空间利用率、可用存储空间量、网络类型或流媒体分片存储信息中的至少一项。

38、在另一种可能的实现方式中,所述处理单元具体用于:从缓存有所述流媒体的分片的m个流媒体缓存节点中,选择负载率最低的n个流媒体缓存节点,其中,在n为1的情况下,所选择的1个流媒体缓存节点的负载率为m个流媒体缓存节点中最低,在n大于1的情况下,所选择的n个流媒体缓存节点中每一流媒体缓存节点的负载率在缓存有所述流媒体的部分分片的流媒体缓存节点中最低。

39、在又一种可能的实现方式中,所述处理单元具体用于:根据所述m个流媒体缓存节点的状态信息和所述m个流媒体缓存节点的属性信息,从缓存有所述流媒体的分片的m个流媒体缓存节点中选择n个流媒体缓存节点,其中,所述状态信息包括负载信息、内存利用率、可用内存量、存储空间利用率、可用存储空间量、网络类型或流媒体分片存储信息中的至少一项,所述属性信息包括节点间地址、属性参数信息或流媒体分片内容信息中的至少一项。

40、第四方面,本发明还提供了另一种流媒体调度装置,该装置包括处理单元,所述处理单元用于:接收流媒体服务端发送的目标信息,所述目标信息包括m个流媒体缓存节点的属性信息;根据所述m个流媒体缓存节点的属性信息下载流媒体的多个分片,所述属性信息包括节点间地址、属性参数信息或流媒体分片内容信息中的至少一项。

41、在一种可能的实现方式中,所述目标信息还包括流媒体播放列表,所述处理单元具体用于:根据所述流媒体播放列表和所述m个流媒体缓存节点的属性信息下载所述多个分片。其中,所述流媒体播放列表包括所述n个流媒体缓存节点的地址,所述流媒体播放列表用于指示所述客户端从所述n个流媒体缓存节点的地址获取所述流媒体的分片以播放所述流媒体。

42、在一种可能的实现方式中,所述处理单元具体用于:根据所述流媒体播放列表获取所述客户端与所述n个流媒体缓存节点之间的时延;在所述客户端与所述n个流媒体缓存节点中的任一流媒体缓存节点之间的时延大于时延阈值的情况下,根据所述m个流媒体缓存节点的属性信息下载所述多个分片。

43、在一种可能的实现方式中,所述目标信息还包括k个其他客户端的属性信息,所述处理单元具体用于:根据所述m个流媒体缓存节点和所述k个其他客户端的属性信息下载所述多个分片。

44、可选地,所述m、所述n和所述k均为正整数。

45、例如,m可以为100,n可以为10,k可以为300。

46、第五方面,本发明还提供一种流媒体调度装置,该装置包括:至少一个处理器,当所述至少一个处理器执行程序代码或指令时,实现上述第一方面或其任意可能的实现方式中所述的方法。

47、可选地,该电子设备还可以包括至少一个存储器,该至少一个存储器用于存储该程序代码或指令。

48、第六方面,本发明还提供一种芯片,包括:输入接口、输出接口、至少一个处理器。可选地,该芯片还包括存储器。该至少一个处理器用于执行该存储器中的代码,当该至少一个处理器执行该代码时,该芯片实现上述第一方面或其任意可能的实现方式中所述的方法。

49、可选地,上述芯片还可以为集成电路。

50、第七方面,本发明还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于实现上述第一方面或其任意可能的实现方式中所述的方法。

51、第八方面,本发明还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述第一方面或其任意可能的实现方式中所述的方法。

52、本实施例提供的流媒体调度装置、计算机存储介质、计算机程序产品和芯片均用于执行上文所提供的流媒体调度方法,因此,其所能达到的有益效果可参考上文所提供的流媒体调度方法中的有益效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1