一种数据发送方法、装置、设备及存储介质
文献发布时间:2024-04-18 19:52:40
技术领域
本发明涉及通信技术领域,特别是涉及一种数据发送方法、装置、设备及存储介质。
背景技术
随着5G网络的推广,5G视频业务逐渐成为移动通信领域备受关注的业务。在视频业务中,手机、摄像机等具有视频采集功能的推流节点采集视频,然后通过基站以及移动网络向视频业务的后台服务器发送所采集的视频。
现有技术中,各推流节点一般按照固定的数据发送速率发送视频帧,然而,由于移动网络带宽有限,同时接入移动网络的推流节点又可能较多,这时易导致各推流节点发送视频帧出现网络拥塞。
发明内容
本发明实施例的目的在于提供一种数据发送方法、装置、设备及存储介质,以降低推流节点发送视频帧时出现网络拥塞的概率。具体技术方案如下:
第一方面,本发明实施例提供了一种数据发送方法,应用于多接入移动边缘计算MEC设备,所述方法包括:
获得接入所述MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量;
响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量;
根据所述理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息;
根据所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数;
通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
本发明的一个实施例中,所述根据所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数,包括:
获得各推流节点在当前周期内发送视频帧的第一理论帧数;
若所述表征信息达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之和确定为各推流节点在下一周期发送视频帧的目标帧数;
若所述表征信息未达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之差确定为各推流节点在下一周期发送视频帧的目标帧数。
本发明的一个实施例中,所述根据所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数,包括:
获得所有推流节点在当前周期内发送关键帧的第二理论帧数;
获得所有推流节点在下一周期内发送关键帧的第三理论帧数;
若所述第二理论帧数与所述第三理论帧数之间的差异满足预设的第一帧数变化条件,基于所述第二理论帧数、所述第三理论帧数以及所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数。
本发明的一个实施例中,所述根据所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数,包括:
分别获得各推流节点在当前周期内发送关键帧的第四理论帧数;
分别获得各推流节点在下一周期内发送关键帧的第五理论帧数;
针对第一类推流节点,根据该推流节点对应的第四理论帧数、第五理论帧数以及所述表征信息,确定该推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数,其中,所述第一类推流节点对应的第四理论帧数与第五理论帧数间差异满足预设的第二帧数变化条件;
针对第二类推流节点,根据所述表征信息,对该推流节点在当前周期内发送视频帧的第一理论帧数进行调整,确定该推流节点在下一周期发送视频帧的目标帧数,其中,所述第二类推流节点对应的第四理论帧数与第五理论帧数间差异不满足预设的第二帧数变化条件。
本发明的一个实施例中,所述根据所述理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息,包括:
计算所述实际数据量与理论数据量的比值,将计算得到的比值确定为用于表征网络带宽是否充裕的表征信息。
第二方面,本发明实施例提供了一种数据发送装置,应用于多接入移动边缘计算MEC设备,所述装置包括:
理论数据量获得模块,用于获得接入所述MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量;
实际数据量获得模块,用于响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量;
表征信息确定模块,用于根据所述理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息;
目标帧数确定模块,用于根据所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数;
目标帧数通知模块,用于通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
本发明的一个实施例中,所述目标帧数确定模块,包括:
第一理论帧数获得子模块,用于获得各推流节点在当前周期内发送视频帧的第一理论帧数;
第一目标帧数确定子模块,用于若所述表征信息达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之和确定为各推流节点在下一周期发送视频帧的目标帧数;
第二目标帧数确定子模块,用于若所述表征信息未达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之差确定为各推流节点在下一周期发送视频帧的目标帧数。
本发明的一个实施例中,所述目标帧数确定模块,包括:
第二理论帧数获得子模块,用于获得所有推流节点在当前周期内发送关键帧的第二理论帧数;
第三理论帧数获得子模块,用于获得所有推流节点在下一周期内发送关键帧的第三理论帧数;
第三目标帧数确定子模块,用于若所述第二理论帧数与所述第三理论帧数之间的差异满足预设的第一帧数变化条件,基于所述第二理论帧数、所述第三理论帧数以及所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数。
本发明的一个实施例中,所述目标帧数确定模块,具体用于分别获得各推流节点在当前周期内发送关键帧的第四理论帧数;分别获得各推流节点在下一周期内发送关键帧的第五理论帧数;针对第一类推流节点,根据该推流节点对应的第四理论帧数、第五理论帧数以及所述表征信息,确定该推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数,其中,所述第一类推流节点对应的第四理论帧数与第五理论帧数间差异满足预设的第二帧数变化条件;针对第二类推流节点,根据所述表征信息,对该推流节点在当前周期内发送视频帧的第一理论帧数进行调整,确定该推流节点在下一周期发送视频帧的目标帧数,其中,所述第二类推流节点对应的第四理论帧数与第五理论帧数间差异不满足预设的第二帧数变化条件。
本发明的一个实施例中,所述表征信息确定模块,具体用于计算所述实际数据量与理论数据量的比值,将计算得到的比值确定为用于表征网络带宽是否充裕的表征信息。
第三方面,本发明实施例提供了一种MEC设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的数据发送方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的数据发送方法步骤。
第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述上述第一方面所述的数据发送方法步骤。
由以上可见,本发明实施例提供的方案中,MEC(Multi-access Mobile EdgeComputing,多接入移动边缘计算)设备不仅获得所有接入的推流节点在当前周期内发送视频帧的理论数据量,还在当前周期结束后,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量,然后,根据上述理论数据量和实际数据量确定网络带宽是否充裕,得到表征信息,在此基础上,根据上述表征信息来确定推流节点下一周期发送视频帧的目标帧数,使得推流节点在下一周期依据MEC设备确定的帧数发送视频帧。这样各推流节点在各个不同的周期内不再按照固定的数据发送速率发送视频帧,而是结合网络带宽的充裕情况在各个周期内不断调整所发送视频帧的帧数,从而能够使得推流节点在各个周期内所发送视频帧的帧数与网络带宽相匹配,有利于防止推流节点在网络带宽不足的情况下发送过多视频帧导致数据堆积,进而有利于降低推流节点发送视频帧时出现网络拥塞的概率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种组网架构示意图;
图2为本发明实施例提供的第一种数据发送方法的流程示意图;
图3为本发明实施例提供的第二种数据发送方法的流程示意图;
图4为本发明实施例提供的第三种数据发送方法的流程示意图;
图5为本发明实施例提供的第四种数据发送方法的流程示意图;
图6为本发明实施例提供的一种数据发送流程的示意图;
图7为本发明实施例提供的一种滑动窗口的示意图;
图8为本发明实施例提供的第一种数据发送装置的结构示意图;
图9为本发明实施例提供的第二种数据发送装置的结构示意图;
图10为本发明实施例提供的第三种数据发送装置的结构示意图;
图11为本发明实施例提供的一种MEC设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明实施例所提供方案的应用场景进行说明。
本发明实施例所提供方案的应用场景可以为:直播场景、视频监控场景等。
下面以直播场景为例,结合图1所示的组网架构,说明本发明实施例在直播场景下的应用。
参见图1,图1为本发明实施例提供的一种组网架构示意图,该组网架构中包括前端视频设备、5G基站、承载网、MEC设备以及中心云,其中,MEC设备通过UPF(User PlaneFunction,用户面功能)服务(图1中的边缘UPF和中心UPF)与承载网连通。
在直播场景下,同一时间可能有多个主播在直播平台直播,该场景下,这些开启直播的主播拍摄视频所用的摄像机对应图1所示的摄像机1-摄像机N,这些摄像机作为推流节点通过5G基站与承载网接入到MEC设备,将采集到的视频帧发送至MEC设备,MEC设备通过视频帧数据采集服务接收上述视频帧,接收到上述视频帧之后,由于MEC设备具有数据存储服务,因此其自身可以存储视频帧,也可以将视频帧存储到中心云,上述中心云可以包括直播平台的后台存储服务器。其中,中心云除了具有数据存储功能外,还可以具有视频画面的AI分析功能等其他功能。
类似的,在视频监控场景下,同一时间可以有多个监控摄像机拍摄监控视频,这些监控摄像机对应图1所示的摄像机1-摄像机N,这些监控摄像机作为推流节点通过5G基站与承载网接入到MEC设备,将采集到的监控视频帧发送至MEC设备,MEC设备自身可以存储监控视频帧,也可以将监控视频帧存储到中心云,上述中心云可以包括监控系统的后台存储服务器。
下面对本发明实施例所提供的数据发送方案进行具体说明。
参见图2,图2为本发明实施例提供的第一种数据发送方法的流程示意图,应用于MEC设备,上述方法包括以下步骤S201-步骤S205。
步骤S201:获得接入MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量。
上述推流节点可以是视频采集设备,例如,可以是摄像机。一个推流节点对应于一条向MEC设备发送视频帧的视频发送链路。
各推流节点可以通过不同的方式接入MEC设备,一种情况下,各个推流节点可以通过基站和承载网直接接入MEC设备;另一种情况下,各个推流节点可以将视频帧统一发送至一台能够处理大量数据的电子设备上,也可以理解为,上述电子设备设置有多个推流节点,上述电子设备通过基站和承载网接入MEC设备,这种情况下可以认为各推流节点通过上述电子设备间接接入MEC设备。
各推流节点采集视频后,不断的向MEC设备发送视频帧,MEC设备为及时掌握所接收到视频帧的情况,可以按照一定的周期进行数据统计。
一种情况下,一个周期的时长可以由工作人员根据经验设定。另一种情况下,上述周期的时长可以与MEC设备缓存接收到的视频帧的缓存时长相同。例如,在直播场景下,用户一般对于延迟比较敏感,因此,视频帧的缓存时长不能过长,往往要求视频帧的缓存时长在100-200ms,例如,MEC采用的缓存时长可以是200ms,这时上述周期的时长也可以为200ms。
具体的,可以通过以下方式获得上述理论数据量。
首先,可以分别获得各推流节点在当前周期内要发送的视频帧中各类型视频帧的理论帧数,然后,按照以下两种实现方式中的一种,根据各类型视频帧的理论帧数以及各类型视频帧的理论帧大小,计算上述理论数据量。
一种实现方式中,针对每一推流节点,可以计算该推流节点各类型视频帧的理论帧数与各类型视频帧的理论帧大小的乘积,将不同类型对应的乘积相加得到该推流节点对应的理论子数据量,将各推流节点对应的理论子数据量之和确定为上述理论数据量。
另一种实现方式中,针对视频帧的每一类型,可以先获得所有推流节点当前周期内要发送的视频帧中该类型视频帧的帧数之和,然后计算该类型视频帧的帧数之和与该类型视频帧的理论帧大小之积,得到该类型视频帧的理论子数据量,将上述各类型视频帧对应的理论子数据量之和确定为上述理论数据量。
各类型视频帧的理论帧大小可以通过实验预先确定,也可以由MEC设备实时统计所接收到的不同类型视频帧的数量以及不同类型视频帧的总数据量,将上述总数据量与数量的比值确定为不同类型视频帧的理论帧大小。
上述理论数据量可以在前一周期结束后且当前周期结束前的任何时刻获得。
每一推流节点在当前周期内发送视频帧的帧类型以及各类型视频帧的理论帧数的具体获得方式详见后续实施例,这里暂不详述。
步骤S202:响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量。
虽然各个推流节点不断向MEC设备发送视频帧,但是受网络带宽的影响,MEC设备可能能够全部接收到各推流节点发送的视频帧,也可能不能全部接收到各推流节点发送视频帧。
具体的,针对每一推流节点,在网络带宽充裕的情况下,MEC设备在当前周期内能够接收到该推流节点发送的全部视频帧;而在网络带宽资源不充裕的情况下,MEC设备在当前周期内难以接收到该推流节点所发送的全部视频帧。
鉴于此本步骤中,响应于当前周期结束,MEC设备统计实际接收到的所有推流节点所发送视频帧的数据量之和,将上述和值确定为上述实际数据量。
步骤S203:根据理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息。
由于上述理论数据量表征了所有推流节点在当前周期内理论上应该发送至MEC设备的视频帧的数据量,也就是,MEC设备理论上应该接收到的视频帧的数据量,上述实际数据量表征了MEC设备在当前周期内实际接收到的视频帧的数据量,MEC设备接收到的视频帧的数据量不仅受推流节点所发送视频帧数量的影响,还会受网络带宽的影响,因此,本步骤中,选择基于上述理论数据量和实际数据量评判网络带宽是否充裕,也就是,网络带宽是否足够各个推流节点向MEC设备发送视频帧。
具体的,可以通过以下方式确定上述表征信息。
一种实施方式中,可以将上述理论数据量和实际数据量之差作为用于表征网络带宽是否充裕的表征信息。
这种情况下,若上述表征信息为0,则表示实际数据量等于理论数据量,即网络带宽可以承载推流节点的数据发送速率,网络带宽资源充裕;若上述表征信息大于0,则表示实际数据量小于理论数据量,即网络带宽不能承载推流节点的数据发送速率,网络带宽资源不足。本实施方式中,上述差值越大,表征实际数据量与理论数据量间的差距越大,进而表征网络带宽资源越不足。
另一种实施方式中,可以计算实际数据量与理论数据量的比值,将计算得到的比值确定为用于表征网络带宽是否充裕的表征信息。
这种情况下,若上述表征信息为1,则表示实际数据量等于理论数据量,即网络带宽可以承载推流节点的数据发送速率,网络带宽资源充裕;若上述表征信息小于1,则表示实际数据量小于理论数据量,即网络带宽不能承载推流节点的数据发送速率,网络带宽资源不足。
本实施方式中,上述比值越小,表征实际数据量与理论数据量间的差距越大,进而表征网络带宽资源越不足。因此,上述理论数据量与实际数据量的比值作为上述表征信息时,不仅可以直观的表征网络带宽是否充裕,且上述比值大小还可以表征网络带宽资源的充裕程度。
步骤S204:根据表征信息,确定各推流节点在下一周期发送视频帧的目标帧数。
上述表征信息表征了网络带宽是否充裕,在上述表征信息表征网络带宽充裕时,可以通过调整各推流节点在下一周期发送视频帧的目标帧数,增加各推流节点在下一周期发送视频帧的数据量;反之,在上述表征信息表征网络带宽资源不足时,可以通过调整各推流节点在下一周期发送视频帧的目标帧数,减少各推流节点在洗衣周期发送视频帧的数据量。这样可以使得各推流节点在下一周期发送视频帧的目标帧数与网络带宽相匹配。
具体的,可以通过以下方式确定上述目标帧数。
一种实施方式中,可以通过判断上述表征信息是否达到预设指标来确定网络带宽是否充裕,然后根据网络带宽的充裕与否增大或减少确定各推流节点在下一周期发送视频帧的目标帧数,具体实施方式详见后续图3所示实施例中步骤S304-S306,这里暂不详述。
另一种实施方式中,由于关键帧的数据量较大,一个周期内MEC设备接收到的关键帧数量直接影响了周期内接收到的实际数据量的大小,因此在上述表征信息的基础上,还可以考虑关键帧数量的影响,可以获得所有推流节点在当前周期内发送关键帧的理论帧数以及所有推流节点在下一周期内发送关键帧的理论帧数,然后基于所有推流节点在下一周期内发送关键帧的理论帧数与当前周期发送关键帧的理论帧数的差异以及上述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数,具体实施方式详见后续图S404-S406所示实施例,这里暂不详述。
再一种实施方式中,由于各个推流节点在同一周期内的视频帧发送情况不相同,因此,在上述表征信息的基础上,对于各个推流节点,可以针对性的基于该推流节点在下一周期内发送关键帧的理论帧数与当前周期发送关键帧的理论帧数的差异,确定该推流节点在下一周期发送视频帧的目标帧数,具体实施方式详见后续图5所示实施例中步骤S504-S507,这里暂不详述。
步骤S205:通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
具体的,可以将所确定的各推流节点在下一周期发送视频帧的目标帧数发送至对应的各推流节点,这样各推流节点能够按照所确定的目标帧数在下一周期发送视频帧。
由以上可见,本发明实施例提供的方案中,MEC设备不仅获得所有接入的推流节点在当前周期内发送视频帧的理论数据量,还在当前周期结束后,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量,然后,根据上述理论数据量和实际数据量确定网络带宽是否充裕,得到表征信息,在此基础上,根据上述表征信息来确定推流节点下一周期发送视频帧的目标帧数,使得推流节点在下一周期依据MEC设备确定的帧数发送视频帧。这样各推流节点在各个不同的周期内不再按照固定的数据发送速率发送视频帧,而是结合网络带宽的充裕情况在各个周期内不断调整所发送视频帧的帧数,从而能够使得推流节点在各个周期内所发送视频帧的帧数与网络带宽相匹配,有利于防止推流节点在网络带宽不足的情况下发送过多视频帧导致数据堆积,进而有利于降低推流节点发送视频帧时出现网络拥塞的概率。
另外,由于本发明实施例提供的方案中能够不断的调整各推流节点在各个周期内发送视频帧的帧数,这样即使出现了各推流节点在同一周期内发送大量关键帧造成大量数据突发的情况,也能够动态的及时调整各推流节点在下一周期内发送视频帧的数据量,使得推流节点在后续周期内所发送视频帧的帧数与网络带宽重新匹配,减少网络堵塞的情况,有利于提高推流节点的数据发送效率。
下面对各推流节点在当前周期内发送视频帧的帧类型以及各类型视频帧的理论帧数的获得方式进行说明。
推流节点向MEC设备发送视频帧时,可以以视频流的形式发送,MEC设备可以通过自身的流媒体服务,解析推流节点发送的视频流,从上述视频流中解析得到推流节点发送视频帧的GOP(Group of picture,关键帧周期)。在一个周期结束后,MEC设备可以统计推流节点在该周期发送的视频帧数量,并更新推流节点发送的最新关键帧后非关键帧的目标数量。鉴于上述情况,MEC设备可以基于推流节点在上一周期发送的视频帧数量、上述目标数量以及GOP,确定推流节点在当前周期内发送视频帧的帧类型以及各类型视频帧的理论帧数。
具体的,可以基于GOP和目标数量确定当前GOP中还未发送的非关键帧,称为剩余帧数量,若上述剩余帧数量小于上一周期发送的视频帧数量,则确定当前周期内发送的视频帧类型中包括关键帧,且关键帧的理论帧数为1,当前周期内发送的视频帧类型中还包括非关键帧,且非关键帧的理论帧数等于上述视频帧数量-1。
若上述剩余帧数量大于等于上述视频帧数量,则确定当前周期内发送的视频帧类型中不包括关键帧,仅包括非关键帧,且非关键帧的理论帧数为上述视频帧数量。
例如,推流节点A发送视频帧时的GOP为60,上一周期结束后经确认,推流节点A在上一周期发送的视频帧数量为10,实时更新后目标数量为55,若推流节点A在当前周期发送的视频帧数量不变,仍然为10,由于当前GOP内还剩余60-1-55=4个非关键帧,4小于10,则推流节点A在当前周期内发送视频帧时,会发送下一GOP中的1个关键帧,并发送当前GOP内和下一GOP内的共计9个非关键帧,因此,推流节点A按照10个视频帧发送视频帧时,可以确定推流节点A在当前周期内发送的关键帧的理论帧数为1、发送的非关键帧的理论帧数为9。
又如,推流节点B发送视频帧时的GOP为60,上一周期结束后经确认,推流节点B在上一周期发送的视频帧数量为8,实时更新后目标数量为40,若推流节点B在当前周期发送的视频帧数量不变,仍然为8,由于当前GOP内还剩余60-1-40=19个非关键帧,19大于8,则推流节点B在当前周期内发送视频帧时,会发送当前GOP内的8个非关键帧,因此,推流节点B按照8个视频帧发送视频帧,可以确定出该推流节点在当前周期内发送的关键帧的理论帧数为0、发送的非关键帧的理论帧数为8。
其中,MEC设备可以采用自身的设备管理服务,根据推流节点的设备标识、IP地址、通信端口等信息区分各个推流节点。
由前述图2中步骤S204中的描述可知,根据表征信息,可以采用多种实施方式确定各推流节点在下一周期发送视频帧的目标帧数,以下结合图3-图5所示的实施例分别介绍确定各推流节点在下一周期发送视频帧的目标帧数的不同方式。
在图2所示实施例的基础上,确定目标帧数时,可以通过判断表征信息是否达到预设指标来确定网络带宽资源是否充裕,然后根据网络带宽的充裕与否增大或减少各推流节点在下一周期发送视频帧的目标帧数。鉴于上述情况,本发明实施例提供了第二种数据发送方法。
参见图3,图3为本发明实施例提供的第二种数据发送方法的流程示意图,上述方法包括以下步骤S301-步骤S307。
步骤S301:获得接入MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量。
步骤S302:响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量。
步骤S303:根据理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息。
上述步骤S301-步骤S303与前述图2所示实施例中步骤S201-S203相同,这里不再赘述。
步骤S304:获得各推流节点在当前周期内发送视频帧的第一理论帧数。
本步骤中,可以计算各推流节点在当前周期内发送的各类型视频帧的理论帧数之和,得到上述第一理论帧数。
其中,获得各推流节点在当前周期内发送的各类型视频帧的理论帧数的方式已在前述实施例中说明,具体可参见前述实施例中介绍的内容,这里不再赘述。
步骤S305:若表征信息达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之和确定为各推流节点在下一周期发送视频帧的目标帧数。
本步骤中,若表征信息达到预设指标,表示实际数据量与理论数据量接近,网络带宽可以承载推流节点的视频帧发送速率,即网络带宽充裕,为了充分利用网络带宽,提高网络带宽的利用率,可以增加各推流节点在下一周期发送视频帧的目标帧数。
其中,上述预设指标为确定网络带宽是否充裕的标准,具体的,预设指标的大小可以由工作人员根据经验设定。例如,预设指标可以是1,也可以是0.9等。
上述预设的调整步长可以由工作人员根据经验设定,例如,可以为1、2等。
当然,上述预设指标以及预设的调整步长的取值仅为举例,本发明实施例不限定预设指标以及预设的调整步长的具体数值。
步骤S306:若表征信息未达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之差确定为各推流节点在下一周期发送视频帧的目标帧数。
本步骤中,若表征信息未达到预设指标,表示实际数据量与理论数据量差距较大,网络带宽不能承载推流节点的视频帧发送速率,即网络带宽资源不足,为了防止出现网络拥塞,可以减少各推流节点在下一周期发送视频帧的目标帧数。
本发明的一个实施例中,上述预设的调整步长可以由工作人员根据经验设定的一个固定值,例如,可以为1、2等。
本发明的一个实施例中,若表征信息未达到预设指标,可以结合表征信息的大小选取不同预设的调整步长确定各推流节点在下一周期发送视频帧的目标帧数。也就是说,本实施例中,可以预先设定多个调整步长而非一个调整步长。
当上述表征信息为实际数据量与理论数据量比值时,由于表征信息可以表征网络带宽资源的充裕程度,因此可以基于网络带宽资源的充裕程度采用不同的调整力度确定各推流节点在下一周期发送视频帧的目标帧数。
具体的,可以预先设置多个调整步长,并且预设各调整步长与表征信息的对应关系,然后根据表征信息的大小,按照上述预设的对应关系选取对应的调整步长,然后计算各推流节点在当前周期对应的第一理论帧数与上述调整步长之差,将上述差值确定为各推流节点在下一周期发送视频帧的目标帧数。
例如,上述表征信息为0.9,按照上述预设的对应关系选取对应的调整步长为1,推流节点A在当前周期对应的第一理论帧数为10,第一理论帧数与上述调整步长之差为10-1=9,将9确定为推流节点A在下一周期发送视频帧的目标帧数。
又如,上述表征信息为0.5,按照上述预设的对应关系选取对应的调整步长为2,推流节点B在当前周期对应的第一理论帧数为8,第一理论帧数与上述调整步长之差为8-2=6,将6确定为推流节点A在下一周期发送视频帧的目标帧数。
当然,上述结合表征信息的大小与预设的调整步长确定各推流节点在下一周期发送视频帧的目标帧数的方式仅为举例,本发明实施例不限定结合表征信息的大小确定上述目标帧数的具体方式。
步骤S307:通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
上述步骤S307与前述步骤S205相同,这里不再赘述。
由以上可见,可以基于表征信息是否达到预设指标采用不同的方式确定各推流节点在下一周期发送视频帧的目标帧数,一方面,若表征信息达到预设指标,表示网络带宽资源充裕,可以增加各推流节点在下一周期发送视频帧的目标帧数,有利于充分利用网络带宽资源,降低推流节点的视频帧发送发送延迟,进而有利于提高推流节点的视频帧发送效率;另一方面,若表征信息未达到预设指标,表征网络宽带资源不足,可以减少各推流节点在下一周期发送视频帧的目标帧数,有利于降低推流节点发送视频帧时出现网络拥塞的概率。
综上,应用本发明实施例所提供的方案不仅有利于在降低推流节点发送视频帧时出现网络拥塞的概率,而且有利于提高网络带宽的利用率,进而提高了推流节点的数据发送效率。
在图2所示实施例的基础上,确定上述目标帧数时,可以获得所有推流节点在当前周期内发送关键帧的理论帧数以及所有推流节点在下一周期内发送关键帧的理论帧数,然后基于所有推流节点在下一周期内发送关键帧的理论帧数与当前周期发送关键帧的理论帧数的差异以及上述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数。鉴于上述情况,本发明实施例提供了第三种数据发送方法。
参见图4,图4为本发明实施例提供的第三种数据发送方法的流程示意图,上述方法包括以下步骤S401-步骤S407。
步骤S401:获得接入MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量。
步骤S402:响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量。
步骤S403:根据理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息。
上述步骤S401-步骤S403与前述图2所示实施例中步骤S201-S203相同,这里不再赘述。
步骤S404:获得所有推流节点在当前周期内发送关键帧的第二理论帧数。
本步骤中,可以计算各推流节点在当前周期内发送关键帧的理论帧数之和,得到上述第二理论帧数。
其中,各推流节点在当前周期发送关键帧的理论帧数的获得方式已在前述实施例中说明,具体参见前述实施例中介绍的内容,这里不再赘述。
步骤S405:获得所有推流节点在下一周期内发送关键帧的第三理论帧数。
本步骤中,可以计算各推流节点在下一周期内发送关键帧的理论帧数之和,得到上述第三理论帧数。
其中,可以通过以下方式获得各推流节点在下一周期内发送关键帧的理论帧数。
具体的,推流节点向MEC设备发送视频帧时,可以以视频流的形式发送,针对每一推流节点,MEC设备可以解析该推流节点发送的视频流,从上述视频流中解析得到该推流节点发送视频帧的GOP。在一个周期结束后,MEC设备可以统计该推流节点在该周期发送的视频帧数量,并更新该推流节点发送的最新关键帧后非关键帧的目标数量。鉴于上述情况,MEC设备可以基于该推流结点当前周期发送的视频帧数量、上述目标数量以及GOP,确定该推流节点在下一周期内是否会发送关键帧,进而确定出发送关键帧的第三理论帧数。
步骤S406:若第二理论帧数与第三理论帧数之间的差异满足预设的第一帧数变化条件,基于第二理论帧数、第三理论帧数以及表征信息,确定各推流节点在下一周期发送视频帧的目标帧数。
上述预设的第一帧数变化条件可以有以下形式。
第一种形式,上述预设的第一帧数变化条件可以是第三理论帧数与第二理论帧数的比值大于第一预设值。
第二种形式,上述预设的第一帧数变化条件可以是第三理论帧数与第二理论帧数间的差值大于第二预设值。
上述第一预设值和第二预设值可以由工作人员根据经验设定。
由于关键帧的帧大小较大,当上述第三关键帧数与上述第二关键帧数差异较大时,所有推流节点在下一周期内发送视频帧的数据量与所有推流节点在当前周期内发送视频帧的数据量往往会存在较大差异,例如,第三关键帧数大于第二关键帧数时,所有推流节点在下一周期内发送视频帧的数据量往往大于所有推流节点在当前周期内发送视频帧的数据量;第二关键帧数大于第三关键帧数时,所有推流节点在下一周期内发送视频帧的数据量往往小于所有推流节点在当前周期内发送视频帧的数据量。因此,为了防止推流节点在下一周期发送视频帧的数据量相较于当前周期发生较大波动,可以基于第二理论帧数、第三理论帧数以及表征信息,确定各推流节点在下一周期发送视频帧的目标帧数。
具体的,在确定各推流节点在下一周期发送视频帧的目标帧数时,可以首先基于表征信息是否达到预设指标获得各推流节点在下一周期发送视频帧的第一数量,然后计算第二理论帧数与第三理论帧数间的比值,将上述第一数量与上述比值的乘积确定为上述目标帧数。其中,基于表征信息是否达到预设指标获得各推流节点在下一周期发送视频帧的第一数量的方式可以参见前述图3所示实施例中步骤S304-S306,区别仅为将目标帧数替换为第一数量,这里不再赘述。
这样各推流节点基于自身在下一周期的视频帧排布情况按照上述目标帧数在下一周期发送视频帧时,有利于使得各推流节点在下一周期内发送的关键帧数量趋近于当前周期发送的关键帧数量。
例如,各推流节点在下一周期发送视频帧的第一数量均为8,第二理论帧数与第三理论帧数间的比值为0.5,上述第一数量与上述比值的乘积为8×0.5=4,即各推流节点在下一周期发送视频帧的目标帧数均为4,这样减少了各推流节点在下一周期发送视频帧的目标帧数,有利于减少所有推流节点在下一周期发送的关键帧的帧数。
步骤S407:通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
上述步骤S407与前述步骤S205相同,这里不再赘述。
由以上可见,获得所有推流节点在当前周期内发送关键帧的第二理论帧数以及所有推流节点在下一周期内发送关键帧的第三理论帧数,基于前述表征信息以及第二理论帧数、第三理论帧数确定各推流节点在下一周期发送视频帧的目标帧数,有利于使得各推流节点在下一周期发送的关键帧数量趋近于各推流节点在当前周期发送的关键帧数量,进而有利于防止因为各推流节点在下一周期防止发送的关键帧数量与当前周期发送的关键帧数量不同而导致下一周期的MEC设备接收到的实际数据量与当前周期的理论数据量差异较大,这样也就有利于防止推流节点发送视频帧时发送网络拥塞以及提高网络带宽资源的利用率。
另外,由于本实施例提供的方案可以使得各推流节点在各个周期内发送的关键帧数量趋于平稳,也就是,各个推流节点在各个周期内发送视频帧的数据量平稳,进而能够降低各推流节点在同一周期突然发送大量关键帧而造成关键帧碰撞的概率。又由于关键帧的帧大小相较于非关键帧更大,因此,能够降低各推流节点在同一周期突发大量视频帧而引起网络流量峰值剧烈波动的概率,从而提高了推流节点发送视频帧的稳定性。
在图2所示实施例的基础上,在确定上述目标帧数时,对于各个推流节点的,可以针对性的基于该推流节点在下一周期内发送关键帧的理论帧数与当前周期发送关键帧的理论帧数的差异,确定各推流节点在下一周期发送视频帧的目标帧数。鉴于上述情况,本发明实施例提供了第四种数据发送方法。
参见图5,图5为本发明实施例提供的第四种数据发送方法的流程示意图,上述方法包括以下步骤S501-步骤S508。
步骤S501:获得接入MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量。
步骤S502:响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量。
步骤S503:根据理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息。
上述步骤S501-步骤S503与前述图2所示实施例中步骤S201-S203相同,这里不再赘述。
步骤S504:分别获得各推流节点在当前周期内发送关键帧的第四理论帧数。
上述步骤S504中第四理论帧数的获得方式已在前述实施例中说明,具体参见前述实施例中介绍的内容,这里不再赘述。
步骤S505:分别获得各推流节点在下一周期内发送关键帧的第五理论帧数。
本步骤中分别获得各推流节点在下一周期内发送关键帧的第五理论帧数的具体方式已在前述图4所示实施例中步骤S405中说明,这里不再赘述。
步骤S506:针对第一类推流节点,根据该推流节点对应的第四理论帧数、第五理论帧数以及表征信息,确定该推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数。
其中,第一类推流节点对应的第四理论帧数与第五理论帧数间差异满足预设的第二帧数变化条件。
上述预设的第二帧数变化条件可以有以下形式。
第一种形式,上述预设的第二帧数变化条件可以是第五理论帧数与第四理论帧数的比值大于第三预设值。
第二种形式,上述预设的第二帧数变化条件可以是第五理论帧数与第四理论帧数间的差值大于第四预设值。
例如,预设的第二帧数变化条件可以是第五理论帧数与第四理论帧数间的差值大于1,若推流节点B在当前周期内发送关键帧的第四理论帧数为0,在下一周期内发送关键帧的第五理论帧数为1,那么可知推流节点为第一类推流节点。
具体的,针对第一类推流节点,可以首先基于表征信息是否达到预设指标获得该推流节点在下一周期发送视频帧的第一数量,将该推流节点在下一周期发送关键帧的目标帧数确定为第五目标帧数,并基于上述第一数量以关键帧与非关键帧间的数据量大小关系确定该推流节点在下一周期发送其他类型的视频帧的目标帧数。
例如,第一类推流节点B在当前周期内发送关键帧的第四理论帧数为0,又获得了推流节点B在下一周期内发送关键帧的第五理论帧数为1,推流节点B在下一周期内发送视频帧的第一数量为6,若关键帧的数据量为预测帧的3倍,那么可以将推流节点B在下一周期发送关键帧的目标帧数确定为1,并将推流节点在下一周期发送预测帧的目标帧数确定为6-1×3=3。
步骤S507:针对第二类推流节点,根据表征信息,对该推流节点在当前周期内发送视频帧的第一理论帧数进行调整,确定该推流节点在下一周期发送视频帧的目标帧数。
其中,第二类推流节点对应的第四理论帧数与第五理论帧数间差异不满足预设的第二帧数变化条件。
具体的,本步骤中,根据表征信息,对该推流节点在当前周期内发送视频帧的第一理论帧数进行调整,确定该推流节点在下一周期发送视频帧的目标帧数的具体方式可以参见前述图3所示实施例中步骤S304-步骤S306,这里不再赘述。
步骤S508:通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
具体的,将所确定的帧类型以及各帧类型对应的目标帧数发送至个推流节点,以使得各推流节点能按照所确定帧类型以及各帧类型对应的目标帧数在下一周期发送视频帧。
由以上可见,这样站在各个推流节点的角度,分别获得了各推流节点在当前周期内发送关键帧的第四理论帧数以及各推流节点在下一周期内发送关键帧的第五理论帧数,根据各个节点对应的第四理论帧数与第五理论帧数间差异是否满足预设的第二帧数变化条件,针对性的确定各推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数,这样可以使得各个推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数更加符合节点自身的视频帧发送情况,有利于防止各推流节点在下一周期发送的关键帧数量与当前周期发送的关键帧数量波动较大。
下面结合图6和图1,对本发明实施例提供的一种数据发送流程进行说明。
参见图6,图6为本发明实施例提供的一种数据发送流程的示意图。以下通过步骤S601-S608对图6所示数据发送流程进行说明。
步骤S601:MEC设备计算滑动窗口大小L。
上述滑动窗口大小L对应于前文的目标视频帧数量。
参见图7,图7为本发明实施例提供的一种滑动窗口的示意图,由图7可以看出滑动窗口L即为推流节点在一个周期内发送的数据帧的数量。
步骤S602:推流节点根据滑动窗口大小进行视频帧发送。
MEC设备告知推流节点滑动窗口的大小,这样推流节点根据滑动窗口大小进行视频帧发送。
步骤S603:MEC设备判断推流是否结束,若为是,数据发送流程结束,若为否,执行步骤S604。
本步骤中,MEC设备判断所有推流节点判断是否都已经推流结束,若为是,则数据发送流程结束,若为否,则继续后续流程。
步骤S604:MEC设备响应于当前周期结束,确定用于表征网络带宽是否充裕的表征信息Q。
本步骤对应前述图1所示组网架构示意图中MEC设备的数据发送质量检测服务。
具体的,可以参见前述实施例中介绍的采用实际数据量与理论数据量比值的方式确定表征信息Q,这里不再赘述。
步骤S605:MEC设备判断Q是否等于1,若为否,执行步骤S606,若为是,执行步骤S607。
步骤S606:MEC设备缩小下一周期的滑动窗口。
若Q小于1,表示网络带宽不能承载推流节点的视频帧发送速率,即网络带宽资源不足,为了防止出现网络拥塞,可以减少推流节点在下一周期发送视频帧的滑动窗口,以减少推流节点在下一周期发送的视频帧数。
步骤S607:MEC设备增大下一周期的滑动窗口。
若Q大于1,表示网络带宽可以承载推流节点的视频帧发送速率,即网络带宽资源充裕,为了充分利用网络带宽资源,提高网络带宽资源的利用率,可以增大推流节点在下一周期发送视频帧的滑动窗口,以增加推流节点在下一周期发送的视频帧数。
步骤S608:MEC设备判断滑动窗口内是否出现I帧(I frame,关键帧)增加或减少,若为是,执行步骤S601,若为否,执行步骤S602。
本步骤对应前述图1所示组网架构示意图中MEC设备的I帧数量检测服务。
在增大或缩小滑动窗口的大小之后,若滑动窗口内出现了I帧增加或减少,由于I帧的数据量相较于非I帧更大,因此需要执行步骤S601,重新计算滑动窗口大小L;若滑动窗口内没有出现I帧增加或减少,那么可以直接执行步骤S602,通知推流节点按照增大或缩小后的滑动窗口进行视频帧发送。
可见,本发明实施例提供的上述组网架构方式可以充分利用MEC设备的计算、存储等能力,通过在MEC设备上部署数据发送质量检测服务、I帧数量检测服务等功能服务,能够通过MEC设备控制前端视频设备的数据发送方式。
以下再通过步骤A-步骤I对上述步骤S601-S608所示的数据发送流程进行完整的举例说明。
步骤A:MEC设备获得第一周期内推流节点S发送的P帧(P frame,预测帧)的个数为b=3,关键帧个数为a=0,MEC设备根据第一周期内实际接收的数据量与推流节点发送视频帧的理论数据量计算出表征信息Q=1,说明当前网络带宽支持推流节点S以每周期发送3个P帧的速率发送数据,因此增大推流节点S在第二个发送周期的滑动窗口,滑动窗口L增加为4个P帧(b=4)。
步骤B:MEC设备判断该滑动窗口中没有出现I帧个数的变化,将确定的滑动窗口大小通知给推流节点。
步骤C:第二周期结束后,MEC设备根据第二周期内实际接收的数据量与推流节点发送视频帧的理论数据量,重新计算表征信息Q=1,表示当前网络带宽支持推流节点S以每周期发送4个P帧的速率发送视频帧,因此增大推流节点S在第三周期的滑动窗口,滑动窗口L增加为5个P帧(b=5)。
步骤D:MEC设备判断该滑动窗口中没有出现I帧个数的变化,将确定的滑动窗口大小通知给推流节点。
步骤E:第三周期结束后,MEC设备根据第三周期内实际接收的数据量与推流节点发送视频帧的理论数据量,重新计算表征信息Q<1,表示推流节点S每周期发送5个P帧的数据发送速率已经超出网络带宽的承载能力,因此缩小推流节点S在第四个发送周期的滑动窗口,滑动窗口L缩小为4个P帧(b=4)。
步骤F:MEC设备判断该滑动窗口出现I帧个数的变化,I帧个数增加为a=1,由于I帧的数据量为P帧的3倍,因此MEC设备重新计算第四周期的滑动窗口大小为:1个P帧(b=1),1个I帧(a=1),并将确定的滑动窗口大小通知给推流节点。
步骤G:第四周期结束后,MEC设备根据第四周期内实际接收的数据量与推流节点发送视频帧的理论数据量,重新计算表征信息Q=1,表示当前网络带宽支持推流节点S以每周期发送1个P帧以及1个I帧的速率发送数据,因此增大推流节点S在第五个发送周期的滑动窗口,滑动窗口L增加为1个I帧(a=1),2个P帧(b=2)。
步骤H:MEC设备判断该滑动窗口出现I帧个数的变化,I帧个数减少为a=0,由于I帧的数据量为P帧的3倍,因此MEC设备重新计算第五周期的滑动窗口大小为:5个P帧(b=5),并将确定的滑动窗口大小通知给推流节点。
步骤I:第五周期结束后,MEC设备判断推流节点推流完毕,数据发送流程结束。
由以上可见,本发明实施例提供的方案中,MEC设备不仅获得所有接入的推流节点在当前周期内发送视频帧的理论数据量,还在当前周期结束后,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量,然后,根据上述理论数据量和实际数据量确定网络带宽是否充裕,得到表征信息,在此基础上,根据上述表征信息来确定推流节点下一周期发送视频帧的目标帧数,使得推流节点在下一周期依据MEC设备确定的帧数发送视频帧。这样各推流节点在各个不同的周期内不再按照固定的数据发送速率发送视频帧,而是结合网络带宽的充裕情况在各个周期内不断调整所发送视频帧的帧数,从而能够使得推流节点在各个周期内所发送视频帧的帧数与网络带宽相匹配,有利于防止推流节点在网络带宽不足的情况下发送过多视频帧导致数据堆积,进而有利于降低推流节点发送视频帧时出现网络拥塞的概率。
与上述数据发送方法相对应的,本发明实施例还提供了一种数据发送装置。
参见图8,为本发明实施例提供的第一种数据发送装置,应用于多接入移动边缘计算MEC设备,上述装置包括以下模块801-模块805。
理论数据量获得模块801,用于获得接入所述MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量;
实际数据量获得模块802,用于响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量;
表征信息确定模块803,用于根据所述理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息;
目标帧数确定模块804,用于根据所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数;
目标帧数通知模块805,用于通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
由以上可见,本发明实施例提供的方案中,MEC设备不仅获得所有接入的推流节点在当前周期内发送视频帧的理论数据量,还在当前周期结束后,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量,然后,根据上述理论数据量和实际数据量确定网络带宽是否充裕,得到表征信息,在此基础上,根据上述表征信息来确定推流节点下一周期发送视频帧的目标帧数,使得推流节点在下一周期依据MEC设备确定的帧数发送视频帧。这样各推流节点在各个不同的周期内不再按照固定的数据发送速率发送视频帧,而是结合网络带宽的充裕情况在各个周期内不断调整所发送视频帧的帧数,从而能够使得推流节点在各个周期内所发送视频帧的帧数与网络带宽相匹配,有利于防止推流节点在网络带宽不足的情况下发送过多视频帧导致数据堆积,进而有利于降低推流节点发送视频帧时出现网络拥塞的概率。
本发明的一个实施例中,所述表征信息确定模块803,具体用于计算所述实际数据量与理论数据量的比值,将计算得到的比值确定为用于表征网络带宽是否充裕的表征信息。
上述理论数据量与实际数据量的比值作为上述表征信息不仅可以直观的表征网络带宽是否充裕,且上述比值大小还可以表征网络带宽资源的充裕程度。
参见图9,为本发明实施例提供的第二种数据发送装置,应用于多接入移动边缘计算MEC设备,上述装置包括以下模块901-模块907。
理论数据量获得模块901,用于获得接入所述MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量;
实际数据量获得模块902,用于响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量;
表征信息确定模块903,用于根据所述理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息;
第一理论帧数获得子模块904,用于获得各推流节点在当前周期内发送视频帧的第一理论帧数;
第一目标帧数确定子模块905,用于若所述表征信息达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之和确定为各推流节点在下一周期发送视频帧的目标帧数;
第二目标帧数确定子模块906,用于若所述表征信息未达到预设指标,则将各推流节点在当前周期对应的第一理论帧数与预设的调整步长之差确定为各推流节点在下一周期发送视频帧的目标帧数;
目标帧数通知模块907,用于通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
由以上可见,可以基于表征信息是否达到预设指标采用不同的方式确定各推流节点在下一周期发送视频帧的目标帧数,一方面,若表征信息达到预设指标,表示网络带宽资源充裕,可以增加各推流节点在下一周期发送视频帧的目标帧数,有利于充分利用网络带宽资源,提高了推流节点的数据发送效率;另一方面,若表征信息未达到预设指标,表征网络宽带资源不足,可以减少各推流节点在下一周期发送视频帧的目标帧数,有利于降低推流节点发送视频帧时出现网络拥塞的概率。
综上,应用本发明实施例所提供的方案不仅有利于在降低推流节点发送视频帧时出现网络拥塞的概率,而且有利于提高网络带宽的利用率,进而提高了推流节点的数据发送效率。
参见图10,为本发明实施例提供的第三种数据发送装置,应用于多接入移动边缘计算MEC设备,上述装置包括以下模块1001-模块1007。
理论数据量获得模块1001,用于获得接入所述MEC设备的所有推流节点在当前周期内发送视频帧的理论数据量;
实际数据量获得模块1002,用于响应于当前周期结束,获得当前周期内接收到的所有推流节点所发送视频帧的实际数据量;
表征信息确定模块1003,用于根据所述理论数据量和实际数据量,确定用于表征网络带宽是否充裕的表征信息;
第二理论帧数获得子模块1004,用于获得所有推流节点在当前周期内发送关键帧的第二理论帧数;
第三理论帧数获得子模块1005,用于获得所有推流节点在下一周期内发送关键帧的第三理论帧数;
第三目标帧数确定子模块1006,用于若所述第二理论帧数与所述第三理论帧数之间的差异满足预设的第一帧数变化条件,基于所述第二理论帧数、所述第三理论帧数以及所述表征信息,确定各推流节点在下一周期发送视频帧的目标帧数;
目标帧数通知模块1007,用于通知各推流节点按照所确定的目标帧数在下一周期发送视频帧。
由以上可见,获得所有推流节点在当前周期内发送关键帧的第二理论帧数以及所有推流节点在下一周期内发送关键帧的第三理论帧数,基于前述表征信息以及第二理论帧数、第三理论帧数确定各推流节点在下一周期发送视频帧的目标帧数,有利于使得各推流节点在下一周期发送的关键帧数量趋近于各推流节点在当前周期发送的关键帧数量,进而有利于防止因为各推流节点在下一周期防止发送的关键帧数量与当前周期发送的关键帧数量不同而导致下一周期的MEC设备接收到的实际数据量与当前周期的理论数据量差异较大,这样也就有利于防止推流节点发送视频帧时发送网络拥塞以及提高网络带宽资源的利用率。
另外,由于本实施例提供的方案可以使得各推流节点在各个周期内发送的关键帧数量趋于平稳,也就是,各个推流节点在各个周期内发送视频帧的数据量平稳,进而能够降低各推流节点在同一周期突然发送大量关键帧而造成关键帧碰撞的概率。又由于关键帧的帧大小相较于非关键帧更大,因此,能够降低各推流节点在同一周期突发大量视频帧而引起网络流量峰值剧烈波动的概率,从而提高了推流节点发送视频帧的稳定性。
本发明的一个实施例中,所述目标帧数确定模块804,具体用于分别获得各推流节点在当前周期内发送关键帧的第四理论帧数;分别获得各推流节点在下一周期内发送关键帧的第五理论帧数;针对第一类推流节点,根据该推流节点对应的第四理论帧数、第五理论帧数以及所述表征信息,确定该推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数,其中,所述第一类推流节点对应的第四理论帧数与第五理论帧数间差异满足预设的第二帧数变化条件;针对第二类推流节点,根据所述表征信息,对该推流节点在当前周期内发送视频帧的第一理论帧数进行调整,确定该推流节点在下一周期发送视频帧的目标帧数,其中,所述第二类推流节点对应的第四理论帧数与第五理论帧数间差异不满足预设的第二帧数变化条件。
由以上可见,这样站在各个推流节点的角度,分别获得了各推流节点在当前周期内发送关键帧的第四理论帧数以及各推流节点在下一周期内发送关键帧的第五理论帧数,根据各个节点对应的第四理论帧数与第五理论帧数间差异是否满足预设的第二帧数变化条件,针对性的确定各推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数,这样可以使得各个推流节点在下一周期发送视频帧的帧类型以及各帧类型对应的目标帧数更加符合节点自身的视频帧发送情况,有利于防止各推流节点在下一周期发送的关键帧数量与当前周期发送的关键帧数量波动较大。
本发明实施例还提供了一种MEC设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
存储器1103,用于存放计算机程序;
处理器1101,用于执行存储器1103上所存放的程序时,实现本发明实施例提供的数据发送方法。
上述MEC设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述MEC设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的数据发送方法步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例提供的数据发送方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、MEC设备以及存储介质而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。