基于大数据的直播视频流调度方法、系统

文档序号:1173040 发布日期:2020-09-18 浏览:7次 >En<

阅读说明:本技术 基于大数据的直播视频流调度方法、系统 (Live video stream scheduling method and system based on big data ) 是由 郑琨 张晓卫 肖友能 侯卫华 张彪 于 2020-05-26 设计创作,主要内容包括:本发明提供一种基于大数据的直播视频流调度方法、系统,所述方法包括以下步骤:基于大数据处理模块接收播放器探针模块发送的心跳信息;基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽;基于大数据处理模块发送各个CDN的实时带宽至调度模块;基于大数据处理模块判断各个CDN的实时带宽是否超过预设带宽阈值;当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN;当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。本发明的基于大数据的直播视频流调度方法、系统,用于通过大数据的实时统计精确计算CDN的实时带宽并实现CDN的调度,节约带宽计费成本,实现直播运营成本的降低。(The invention provides a live video stream scheduling method and system based on big data, wherein the method comprises the following steps: receiving heartbeat information sent by a player probe module based on a big data processing module; calculating real-time bandwidth of each CDN based on a big data processing module according to the heartbeat information; sending the real-time bandwidth of each CDN to a scheduling module based on a big data processing module; judging whether the real-time bandwidth of each CDN exceeds a preset bandwidth threshold value or not based on a big data processing module; when the real-time bandwidth of the CDN does not exceed a preset bandwidth threshold, continuously scheduling the playing request of the player to the original CDN; and when the real-time bandwidth of the CDN exceeds a preset bandwidth threshold, scheduling the playing request of the player to the standby CDN. The live video stream scheduling method and system based on the big data are used for accurately calculating the real-time bandwidth of the CDN through real-time statistics of the big data and achieving scheduling of the CDN, so that bandwidth charging cost is saved, and live operation cost is reduced.)

基于大数据的直播视频流调度方法、系统

技术领域

本发明涉及直播视频流技术领域,特别是涉及一种基于大数据的直播视频流调度方法、系统。

背景技术

现在随着互联网直播流媒体的越发繁荣,以广电为代表的主流媒体也在互联网上传输各种直播视频流。为了保证直播系统的故障灾备,直播流媒体服务提供商通常会建立两路(即主备)信号源,在主信号源故障的情况下,将信号源切换到备份信号源,以实现系统的故障灾备。但这个过程通常是通过运维人员手动切换CDN(Content Delivery Network)配置中的源站地址来实现。而人工操作会带来额外操作失误的风险,尤其是在一种故障需要立刻得到解决的紧张环境下。为解决这个问题本发明提出了一种基于大数据的直播视频流调度方法。

CDN服务提供商通常会有两种计费策略:分别是按照流量以及峰值带宽计费,而通常按照峰值带宽计费会有大幅度的计费优惠。另一方面,由于用户观看直播的时间段大致相同,这导致直播视频流量通常在每天不同的时间段有着规律性的波动,例如工作日的上班时间通常是低谷,每天晚上6点到9点以及节假日是峰值。在这种情况下,如果能实现按照CDN实际发生的流量进行调度,实现流量的削峰平谷使带宽在不同的时间段的变化尽量平缓,并通过采用带宽优惠计费方式,使得大幅降低CDN流量成本成为可能。对于在多个CDN中流量调度的方法,通常采用的方式是根据历史的波动数据来对流量进行调度,首先这种方法非常不精确,并且要经常调整流量阈值,流量调度效果有限。如果要实现精准的流量调度,需要建立在对流量分布数据的精确掌握上。

因此,希望能够解决如何在节约带宽计费成本的情况下,实现对于直播视频流的调度的问题。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于大数据的直播视频流调度方法、系统,用于解决现有技术中如何在节约带宽计费成本的情况下,实现对于直播视频流的调度的问题。

为实现上述目的及其他相关目的,本发明提供一种基于大数据的直播视频流调度方法,包括以下步骤:基于大数据处理模块接收播放器探针模块发送的心跳信息;基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽;基于大数据处理模块发送各个CDN的实时带宽至调度模块;基于所述大数据处理模块判断各个CDN的实时带宽是否超过预设带宽阈值;当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN;当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。

于本发明的一实施例中,在所述基于大数据处理模块接收播放器探针模块发送的心跳信息,所述心跳信息包括:用户标识、播放地址和时间戳之前还包括:基于信号源监测模块按照预设频率监测信号源是否故障;当所述信号源发生故障时,所述信号源监测模块向配置管理模块发送发生故障的信号源标识和频道号;基于配置管理模块判断所述发生故障的信号源标识对应的信号源是否正在使用,当正在使用时,选择可用的信号源作为替代发生故障的信号源成为主信号源,将所述主信号源的配置信息发送至调度模块;基于调度模块根据所述主信号源的配置信息更新配置表,基于所述配置表为用户配置信号源。

于本发明的一实施例中,所述心跳信息包括:用户标识、播放地址和时间戳。

于本发明的一实施例中,所述基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽包括:基于用户标识、播放地址和时间戳计算预设时间间隔内各个CDN的独立用户数;基于所述独立用户数和平均码率计算得到各个CDN的实时带宽。

于本发明的一实施例中,所述基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽包括:通过消息队列实时获取心跳信息;由实时计算引擎基于所述消息队列的心跳信息计算得到各个CDN的实时带宽;将所述各个CDN的实时带宽缓存。

为实现上述目的,本发明还提供一种基于大数据的直播视频流调度系统,包括:播放器探针模块、大数据处理模块和大数据处理模块;所述基于大数据处理模块用于接收播放器探针模块发送的心跳信息;所述大数据处理模块用于根据所述心跳信息计算各个CDN的实时带宽;基于大数据处理模块发送各个CDN的实时带宽至调度模块;所述大数据处理模块用于判断各个CDN的实时带宽是否超过预设带宽阈值;当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN;当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。

于本发明的一实施例中,还包括:信号源监测模块和配置管理模块;所述信号源监测模块用于按照预设频率监测信号源是否故障;当所述信号源发生故障时,所述信号源监测模块向配置管理模块发送发生故障的信号源标识和频道号;所述配置管理模块用于判断所述发生故障的信号源标识对应的信号源是否正在使用,当正在使用时,选择可用的信号源作为替代发生故障的信号源成为主信号源,将所述主信号源的配置信息发送至调度模块;所述调度模块用于根据所述主信号源的配置信息更新配置表,基于所述配置表为用户配置信号源。

于本发明的一实施例中,所述心跳信息包括:用户标识、播放地址和时间戳。

于本发明的一实施例中,所述大数据处理模块用于根据所述心跳信息计算各个CDN的实时带宽包括:基于用户标识、播放地址和时间戳计算预设时间间隔内各个CDN的独立用户数;基于所述独立用户数和平均码率计算得到各个CDN的实时带宽。

于本发明的一实施例中,所述大数据处理模块用于根据所述心跳信息计算各个CDN的实时带宽包括;通过消息队列实时获取心跳信息;由实时计算引擎基于所述消息队列的心跳信息计算得到各个CDN的实时带宽;将所述各个CDN的实时带宽缓存。

如上所述,本发明的一种基于大数据的直播视频流调度方法、系统,具有以下有益效果:用于通过大数据的实时统计精确计算CDN的实时带宽并实现CDN的调度,节约带宽计费成本,实现直播运营成本的降低。

附图说明

图1a显示为本发明的基于大数据的直播视频流调度方法于一实施例中的流程图;

图1b显示为本发明的基于大数据的直播视频流调度方法于又一实施例中的流程图;

图2a显示为本发明的基于大数据的直播视频流调度系统于一实施例中的结构示意图;

图2b显示为本发明的基于大数据的直播视频流调度系统于一实施例中的结构示意图;。

元件标号说明

21 信号源监测模块

22 配置管理模块

23 调度模块

24 大数据处理模块

25 播放器探针模块

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,故图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明的基于大数据的直播视频流调度方法、系统,在CDN网络的上层建立了调度层,并结合基于大数据技术的统计分析,实现了精确的流量调度。

如图1a所示,于一实施例中,本发明的基于大数据的直播视频流调度方法,包括以下步骤:

步骤S11、基于大数据处理模块接收播放器探针模块发送的心跳信息;基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽;基于大数据处理模块发送各个CDN的实时带宽至调度模块。

具体地,所述播放器探针模块基于Android Library程序采集心跳信息。集成在播放器的客户端程序中,在开始播放和播放状态下每分钟自动发送一次心跳消息到大数据数据采集程序。

具体地,所述心跳信息包括:用户标识、播放地址和时间戳。所述用户标识是指用于识别用户身份的唯一标识。所述播放地址是指所述用户当前正在观看的直播视频流的地址。所述时间戳是指获取所述心跳信息的实时时间。所述用户使用播放器进行直播视频流的观看。

具体地,所述基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽包括:基于用户标识、播放地址和时间戳计算预设时间间隔内各个CDN的独立用户数;基于所述独立用户数和平均码率计算得到各个CDN的实时带宽。因为基于用户标识就可以统计出当前正在使用播放器的用户数量,基于时间戳就可以计算预设时间间隔内各个CDN的独立用户数。例如所述预设时间间隔为1分钟,就可以基于用户标识、播放地址和时间戳计算每分钟内各个CDN的独立用户数。而每个用户需要的码率都是恒定的都为平均码率,那么基于各个CDN的独立用户数和平均码率的乘积就是各个CDN的实时带宽。

具体地,所述基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽包括:通过消息队列实时获取心跳信息;由实时计算引擎基于所述消息队列的心跳信息计算得到各个CDN的实时带宽;将所述各个CDN的实时带宽缓存。具体地,通过消息队列(Kafka)实时获取心跳信息。由实时计算引擎(Spark)基于所述消息队列的心跳信息计算得到各个CDN的实时带宽。实时计算引擎(Spark)定时从消息队列(Kafka)拉取所述消息队列的心跳信息,基于用户标识、播放地址和时间戳计算预设时间间隔内各个CDN的独立用户数;基于所述独立用户数和平均码率计算得到各个CDN的实时带宽。将所述各个CDN的实时带宽缓存至Redis上。

步骤S12、基于所述调度模块判断各个CDN的实时带宽是否超过预设带宽阈值:当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN;当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。

具体地,CDN服务提供商通常会有两种计费策略:分别是按照流量以及峰值带宽计费,而通常按照峰值带宽计费会有大幅度的计费优惠。另一方面,由于用户观看直播的时间段大致相同,这导致直播视频流量通常在每天不同的时间段有着规律性的波动,例如工作日的上班时间通常是低谷,每天晚上6点到9点以及节假日是峰值。在这种情况下,如果能实现按照CDN实际发生的流量进行调度,实现流量的削峰平谷使带宽在不同的时间段的变化尽量平缓,并通过采用带宽优惠计费方式,使得大幅降低CDN流量成本成为可能。即通过降低各个CDN的带宽峰值的方式,有大幅度的计费优惠。因为,按照峰值带宽计费比按照流量带宽收费便宜,而峰值带宽计费的费用是由峰值决定的,那么降低峰值能够更进一步降低收费。因此,当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN;就是使原CDN未超过预设带宽阈值的情况下继续接受播放器的播放请求。当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。以防止CDN的实时带宽超过预设带宽阈值,而增大了带宽的峰值而增加了收费。

具体地,所述调度模块采用Spring Cloud Web程序来实现,根据用户请求的直播频道号以及CDN实时带宽数据通过HTTP 302响应将播放请求调度到指定的CDN上。

具体地,在所述基于大数据处理模块接收播放器探针模块发送的心跳信息,所述心跳信息包括:用户标识、播放地址和时间戳之前还包括:

基于信号源监测模块按照预设频率监测信号源是否故障。具体地,每个信号源都设有信号源监测模块,所述信号源监测模块用于按照预设频率监测信号源是否故障,例如预设频率为一分钟,即所述信号源监测模块每间隔一分钟监测信号源是否故障。所述故障包括:信号源是否断流,是否有花屏、断流等故障。

具体地,信号源监测模块部署在所有信号源上,实时监测信号源的直播码流是否有断流、花屏以及马赛克等故障。如果检测到故障则通知配置管理模块更换信号源。

当所述信号源发生故障时,所述信号源监测模块向配置管理模块发送发生故障的信号源标识和频道号。具体地,所述信号源标识是指用于识别所述信号源的身份标识信息,所述频道号是指所述信号源能够提供直播的频道的频道号。

基于配置管理模块判断所述发生故障的信号源标识对应的信号源是否正在使用,当正在使用时,选择可用的信号源作为替代发生故障的信号源成为主信号源,将所述主信号源的配置信息发送至调度模块。具体地,所述发生故障的信号源标识对应的信号源是否正在使用是指所述发生故障的信号源是否正在用于为播放器提供直播,若正在提供直播,那么如果发生故障就需要选择可用的信号源作为替代发生故障的信号源成为主信号源。如果没有为播放器提供直播,那即使发生故障,现在也不需要立刻处理。这样可以做到信号源故障的及时处理。在直播视频的信号源发生故障的情况下,实现信号源的自动快速切换,尽快恢复直播服务,实现直播系统的高可靠性。

具体地,配置管理模块由一套Spring Cloud Web程序来实现,是一套为操作人员提供参数配置操作界面的网络应用程序。主要实现的配置功能包括:CDN厂家配置、直播频道库配置、信源来源的配置、信号源和直播频道的关联管理、信号源源自动切换优先级配置、信号源人工切换、CDN的流量分配配置以及推送配置信息等功能。

基于调度模块根据所述主信号源的配置信息更新配置表,基于所述配置表为用户配置信号源。所述主信号源的配置信息是指信号源标识和频道号,那么基于用户的请求就可以为用户配置相应的信号源。所述根据所述主信号源的配置信息更新配置表是指,选择可用的信号源作为替代发生故障的信号源成为主信号源,并在配置表中更新,那么后续接收用户的请求时,就可以根据配置表为用户配置相应的信号源。

如图1b所示,于一实施例中,本发明的基于大数据的直播视频流调度方法,包括以下步骤:

具体地,步骤1、基于信号源监测模块按照预设频率监测信号源。

步骤2、基于信号源监测模块按照预设频率监测信号源并判断是否故障。当所述信号源没有故障时继续按照预设频率监测信号源并判断是否故障。

步骤3、当所述信号源发生故障时,所述信号源监测模块向配置管理模块发送发生故障的信号源标识和频道号。

步骤4、基于配置管理模块判断所述发生故障的信号源标识对应的信号源是否正在使用.

步骤5、当正在使用时,选择可用的信号源作为替代发生故障的信号源成为主信号源.

步骤6、将所述主信号源的配置信息发送至调度模块。

步骤7、基于调度模块根据所述主信号源的配置信息更新配置表,基于所述配置表为用户配置信号源。

步骤8、基于大数据处理模块接收播放器探针模块发送的心跳信息。

步骤9、基于心跳信息对各个CDN的用户去重统计。

步骤10、基于心跳信息计算预设时间间隔内各个CDN的独立用户数。

步骤11、基于大数据处理模块根据所述心跳信息计算各个CDN的实时带宽。

步骤12、基于大数据处理模块发送各个CDN的实时带宽至调度模块。

步骤13、基于所述调度模块判断各个CDN的实时带宽是否超过预设带宽阈值。

步骤14、当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。

步骤15、当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN。

如图2a所示,于一实施例中,本发明的基于大数据的直播视频流调度系统,包括播放器探针模块、大数据处理模块和大数据处理模块。

所述基于大数据处理模块用于接收播放器探针模块发送的心跳信息;所述大数据处理模块用于根据所述心跳信息计算各个CDN的实时带宽;基于大数据处理模块发送各个CDN的实时带宽至调度模块;所述大数据处理模块用于判断各个CDN的实时带宽是否超过预设带宽阈值;当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN;当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。

具体地,还包括:信号源监测模块和配置管理模块;所述信号源监测模块用于按照预设频率监测信号源是否故障;当所述信号源发生故障时,所述信号源监测模块向配置管理模块发送发生故障的信号源标识和频道号;所述配置管理模块用于判断所述发生故障的信号源标识对应的信号源是否正在使用,当正在使用时,选择可用的信号源作为替代发生故障的信号源成为主信号源,将所述主信号源的配置信息发送至调度模块;所述调度模块用于根据所述主信号源的配置信息更新配置表,基于所述配置表为用户配置信号源。

具体地,所述心跳信息包括:用户标识、播放地址和时间戳。

具体地,所述大数据处理模块用于根据所述心跳信息计算各个CDN的实时带宽包括:基于用户标识、播放地址和时间戳计算预设时间间隔内各个CDN的独立用户数;基于所述独立用户数和平均码率计算得到各个CDN的实时带宽。

具体地,所述大数据处理模块用于根据所述心跳信息计算各个CDN的实时带宽包括;通过消息队列实时获取心跳信息;由实时计算引擎基于所述消息队列的心跳信息计算得到各个CDN的实时带宽;将所述各个CDN的实时带宽缓存。

如图2b所示,于一实施例中,本发明的基于大数据的直播视频流调度系统,包括:播放器探针模块25、大数据处理模块24、调度模块23、信号源监测模块21和配置管理模块22。由在每个信号源站设置信号源检测模块,信号源监测模块21按照预设频率监测信号源站的信号源是否故障。当所述信号源发生故障时,所述信号源监测模块21向配置管理模块22发送发生故障的信号源标识和频道号。基于配置管理模块22判断所述发生故障的信号源标识对应的信号源是否正在使用,当正在使用时,选择可用的信号源作为替代发生故障的信号源成为主信号源,将所述主信号源的配置信息发送至调度模块23。所述配置管理模块22为操作人员提供配置操作界面,并将配置信息推送给调度模块23。主要包含功能包括:CDN厂家配置、直播频道库配置、信源来源的配置、信号源和直播频道的关联管理、信号源源自动切换优先级配置、信号源人工切换以及CDN的流量分配配置等功能。而调度服务器的调度模块23根据所述主信号源的配置信息更新配置表,基于所述配置表为用户配置信号源。基于大数据处理模块24接收播放器的播放器探针模块25发送的心跳信息;基于大数据处理模块24根据所述心跳信息计算各个CDN的实时带宽;基于大数据处理模块24发送各个CDN的实时带宽至调度服务器的调度模块23。基于所述大数据处理模块24判断各个CDN的实时带宽是否超过预设带宽阈值:当CDN的实时带宽未超过预设带宽阈值时,继续将播放器的播放请求调度到原CDN;当CDN的实时带宽超过预设带宽阈值时,将播放器的播放请求调度到备用CDN。

需要说明的是,播放器探针模块25、大数据处理模块24、调度模块23、信号源监测模块21和配置管理模块22的结构和原理与上述基于大数据的直播视频流调度方法中的步骤一一对应,故在此不再赘述。

需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Micro Processor Uint,简称MPU),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

于本发明一实施例中,本发明还包括一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一所述基于大数据的直播视频流调度方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

综上所述,本发明基于大数据的直播视频流调度方法、系统,用于在CDN网络的上层建立了调度层,并结合基于大数据技术的统计分析,实现了精确的流量调度。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:连麦时长确定方法、装置、服务器、终端及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类