掌桥专利:专业的专利平台
掌桥专利
首页

数据传输控制方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:30


数据传输控制方法、装置、电子设备及存储介质

技术领域

本公开实施例涉及数据处理技术领域,具体涉及一种数据传输控制方法、装置、电子设备及存储介质。

背景技术

在音视频传输领域中,为了提升数据包的传输效率,避免因网络拥塞而导致音视频传输卡顿等问题,需要针对数据包的传输速率进行控制。在相关技术中,通常是由接收端在接收到数据包之后,反馈数据包的传输状态,以供发送端判断是否需要对传输速率进行调整。

但是,发明人在实现本发明的过程中发现,上述基于数据包的接收时间进行反馈的方式至少存在以下缺陷:由于音视频数据是以数据帧为单位进行解码和渲染的,因此,仅仅基于数据包进行反馈无法反映数据帧的渲染时延,因而导致速率调整方式不够准确。

发明内容

鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据传输控制方法、装置、电子设备及存储介质。

根据本公开实施例的一个方面,提供了一种数据传输控制方法,包括:

按照预设控制策略,发送与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包,且每个传输数据包中包含帧标识以及时间标识,所述帧标识用于表征所述传输数据包所属的数据帧;

接收媒体接收端发送的帧反馈信息;其中,所述帧反馈信息由所述媒体接收端将接收到的多个传输数据包组装为数据帧,并对所述数据帧进行渲染后发送;

获取所述帧反馈信息中包含的帧标识,根据与所述帧标识相对应的时间标识,计算与所述帧标识相对应的数据帧的传输时延;

在所述数据帧的传输时延满足策略调整条件的情况下,对所述预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送。

在一种可选的实现方式中,所述接收媒体接收端发送的帧反馈信息之后,还包括:

获取所述帧反馈信息中包含的接收端缓存信息;其中,所述接收端缓存信息用于表征接收端缓存队列中的当前缓存数量,且所述接收端缓存信息根据所述媒体接收端对所述数据帧进行渲染的时间确定;

则所述策略调整条件为复合型策略调整条件,且所述复合型策略调整条件至少包括:与所述数据帧的传输时延相对应的时延类策略条件,以及与所述接收端缓存信息相对应的缓存类策略条件;

并且,所述数据帧的传输时延满足策略调整条件具体包括:

所述数据帧的传输时延满足所述时延类策略条件、和/或所述接收端缓存信息满足所述缓存类策略条件。

在一种可选的实现方式中,所述接收端缓存队列包括以下中的至少一个:

组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;

丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;

解码缓存队列,用于缓存组装的数据帧,以执行解码操作;

渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作。

在一种可选的实现方式中,所述接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息;其中,第一类缓存信息用于表征所述组帧缓存队列和/或丢包缓存队列中的当前缓存数量,所述第二类缓存信息用于表征所述解码缓存队列和/或渲染缓存队列中的当前缓存数量;

其中,所述接收端缓存信息满足所述缓存类策略条件包括:所述第一类缓存信息满足所述缓存类策略条件、和/或所述第二类缓存信息满足所述缓存类策略条件;

并且,所述对所述预设控制策略进行调整包括:

在所述第一类缓存信息满足所述缓存类策略条件的情况下,通过第一类调整策略,对所述预设控制策略进行调整;其中,所述第一类调整策略包括:码率类调整策略和/或分辨率类调整策略;

在所述第二类缓存信息满足所述缓存类策略条件的情况下,通过第二类调整策略,对所述预设控制策略进行调整;其中,所述第二类调整策略包括:帧率类调整策略。

在一种可选的实现方式中,所述数据帧的传输时延满足策略调整条件具体包括:至少两个相邻数据帧的传输时延之间的差值大于预设时延阈值;和/或,多个连续数据帧的传输时延的变化趋势为增大;

所述接收端缓存信息满足所述缓存类策略条件具体包括:至少两个相邻数据帧对应的接收端缓存信息之间的差值大于预设缓存阈值;和/或,多个连续数据帧对应的接收端缓存信息的变化趋势为增大。

在一种可选的实现方式中,所述预设时延阈值和/或所述预设缓存阈值根据所述数据帧对应的业务类型确定;

其中,所述数据帧对应的业务类型包括:云游戏业务类型,以及会议直播业务类型;并且,云游戏业务类型的预设时延阈值和/或所述预设缓存阈值小于会议直播业务类型的预设时延阈值和/或所述预设缓存阈值。

在一种可选的实现方式中,所述预设时延阈值和/或所述预设缓存阈值为多个分别对应于不同的卡顿等级的阈值;

则所述策略调整条件包括:多个分别对应于不同的卡顿等级的调整条件;

其中,不同的卡顿等级的调整条件所对应的码率调整值、帧率调整值和/或分辨率调整值不同。

在一种可选的实现方式中,卡顿等级至少包括:第一卡顿等级以及第二卡顿等级,且所述第一卡顿等级对应的预设时延阈值和/或预设缓存阈值大于所述第二卡顿等级对应的预设时延阈值和/或预设缓存阈值;

并且,所述第一卡顿等级对应的调整条件为:根据第一帧率调整值对预设控制策略中的帧率进行调整、根据第一码率调整值对预设控制策略中的码率进行调整、和/或根据第一分辨率调整值对预设控制策略中的分辨率进行调整;

所述第二卡顿等级对应的调整条件为:根据第二帧率调整值对预设控制策略中的帧率进行调整、根据第二码率调整值对预设控制策略中的码率进行调整、和/或根据第二分辨率调整值对预设控制策略中的分辨率进行调整;

其中,所述第一帧率调整值大于所述第二帧率调整值,所述第一码率调整值大于所述第二码率调整值,且所述第一分辨率调整值大于所述第二分辨率调整值。

在一种可选的实现方式中,所述发送与多个数据帧相对应的多个传输数据包之前,还包括:

针对所述媒体数据中的任一数据帧,将所述数据帧拆分为多个初始数据包;

向每个初始数据包中添加对应于所述数据帧的帧标识以及时间标识,得到与所述数据帧相对应的多个传输数据包;

其中,所述时间标识根据所述数据帧的采集时间或发送时间确定。

根据本公开实施例的又一个方面,提供了一种数据传输控制方法,适用于媒体接收端,所述方法包括:

接收媒体发送端按照预设控制策略发送的与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包;

获取每个传输数据包中包含的帧标识以及时间标识,根据所述帧标识将接收到的多个传输数据包组装为数据帧,并对组装得到的数据帧进行渲染;

根据已渲染的数据帧的帧标识,向所述媒体发送端发送包含所述已渲染的数据帧的帧标识的帧反馈信息,以供所述媒体发送端根据所述帧反馈信息中包含的帧标识以及与所述帧标识相对应的时间标识,计算与帧标识相对应的数据帧的传输时延,并在所述数据帧的传输时延满足策略调整条件的情况下,对所述预设控制策略进行调整。

在一种可选的实现方式中,所述并对组装得到的数据帧进行渲染之后,还包括:

调用缓存获取接口,获取接收端缓存队列中的当前缓存数量,得到接收端缓存信息;则所述帧反馈信息中进一步包含所述接收端缓存信息;

并且,所述策略调整条件为复合型策略调整条件,且所述复合型策略调整条件至少包括:与所述数据帧的传输时延相对应的时延类策略条件,以及与所述接收端缓存信息相对应的缓存类策略条件;

并且,所述数据帧的传输时延满足策略调整条件具体包括:所述数据帧的传输时延满足所述时延类策略条件、和/或所述接收端缓存信息满足所述缓存类策略条件。

在一种可选的实现方式中,所述接收端缓存队列包括以下中的至少一个:

组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;

丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;

解码缓存队列,用于缓存组装的数据帧,以执行解码操作;

渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作;

并且,所述接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息;其中,第一类缓存信息用于表征所述组帧缓存队列和/或丢包缓存队列中的当前缓存数量,所述第二类缓存信息用于表征所述解码缓存队列和/或渲染缓存队列中的当前缓存数量;

并且,所述调用缓存数据获取接口,获取接收端缓存队列中的当前缓存数量具体包括以下中的至少一个:

调用组帧缓存获取接口,获取组帧缓存队列中的当前缓存数量;

调用丢包缓存获取接口,获取丢包缓存队列中的当前缓存数量;

调用解码缓存获取接口,获取解码缓存队列中的当前缓存数量;

调用渲染缓存获取接口,获取渲染缓存队列中的当前缓存数量。

根据本公开实施例的又一个方面,提供了一种数据传输控制方法,所述方法包括:

媒体发送端按照预设控制策略,发送与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包,且每个传输数据包中包含帧标识以及时间标识,所述帧标识用于表征所述传输数据包所属的数据帧;

媒体接收端接收所述与多个数据帧相对应的多个传输数据包,获取每个传输数据包中包含的帧标识以及时间标识,根据所述帧标识将接收到的多个传输数据包组装为数据帧,并对组装得到的数据帧进行渲染;根据已渲染的数据帧的帧标识,向所述媒体发送端发送包含所述已渲染的数据帧的帧标识的帧反馈信息;

媒体发送端接收所述媒体接收端发送的帧反馈信息,获取所述帧反馈信息中包含的帧标识,根据与所述帧标识相对应的时间标识,计算与所述帧标识相对应的数据帧的传输时延;并在所述数据帧的传输时延满足策略调整条件的情况下,对所述预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送。

根据本公开实施例的又一个方面,提供了一种数据传输控制装置,适用于媒体发送端,所述装置包括:

发送模块,适于按照预设控制策略,发送与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包,且每个传输数据包中包含帧标识以及时间标识,所述帧标识用于表征所述传输数据包所属的数据帧;

接收模块,适于接收媒体接收端发送的帧反馈信息;其中,所述帧反馈信息由所述媒体接收端将接收到的多个传输数据包组装为数据帧,并对所述数据帧进行渲染后发送;

计算模块,适于获取所述帧反馈信息中包含的帧标识,根据与所述帧标识相对应的时间标识,计算与所述帧标识相对应的数据帧的传输时延;

调整模块,适于在所述数据帧的传输时延满足策略调整条件的情况下,对所述预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送。

在一种可选的实现方式中,所述接收模块具体用于:

获取所述帧反馈信息中包含的接收端缓存信息;其中,所述接收端缓存信息用于表征接收端缓存队列中的当前缓存数量,且所述接收端缓存信息根据所述媒体接收端对所述数据帧进行渲染的时间确定;

则所述策略调整条件为复合型策略调整条件,且所述复合型策略调整条件至少包括:与所述数据帧的传输时延相对应的时延类策略条件,以及与所述接收端缓存信息相对应的缓存类策略条件;

并且,所述数据帧的传输时延满足策略调整条件具体包括:

所述数据帧的传输时延满足所述时延类策略条件、和/或所述接收端缓存信息满足所述缓存类策略条件。

在一种可选的实现方式中,所述接收端缓存队列包括以下中的至少一个:

组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;

丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;

解码缓存队列,用于缓存组装的数据帧,以执行解码操作;

渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作。

在一种可选的实现方式中,所述接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息;其中,第一类缓存信息用于表征所述组帧缓存队列和/或丢包缓存队列中的当前缓存数量,所述第二类缓存信息用于表征所述解码缓存队列和/或渲染缓存队列中的当前缓存数量;

其中,所述接收端缓存信息满足所述缓存类策略条件包括:所述第一类缓存信息满足所述缓存类策略条件、和/或所述第二类缓存信息满足所述缓存类策略条件;

并且,所述调整模块具体适于:

在所述第一类缓存信息满足所述缓存类策略条件的情况下,通过第一类调整策略,对所述预设控制策略进行调整;其中,所述第一类调整策略包括:码率类调整策略和/或分辨率类调整策略;

在所述第二类缓存信息满足所述缓存类策略条件的情况下,通过第二类调整策略,对所述预设控制策略进行调整;其中,所述第二类调整策略包括:帧率类调整策略。

在一种可选的实现方式中,所述数据帧的传输时延满足策略调整条件具体包括:至少两个相邻数据帧的传输时延之间的差值大于预设时延阈值;和/或,多个连续数据帧的传输时延的变化趋势为增大;

所述接收端缓存信息满足所述缓存类策略条件具体包括:至少两个相邻数据帧对应的接收端缓存信息之间的差值大于预设缓存阈值;和/或,多个连续数据帧对应的接收端缓存信息的变化趋势为增大。

在一种可选的实现方式中,所述预设时延阈值和/或所述预设缓存阈值根据所述数据帧对应的业务类型确定;

其中,所述数据帧对应的业务类型包括:云游戏业务类型,以及会议直播业务类型;并且,云游戏业务类型的预设时延阈值和/或所述预设缓存阈值小于会议直播业务类型的预设时延阈值和/或所述预设缓存阈值。

在一种可选的实现方式中,所述预设时延阈值和/或所述预设缓存阈值为多个分别对应于不同的卡顿等级的阈值;

则所述策略调整条件包括:多个分别对应于不同的卡顿等级的调整条件;

其中,不同的卡顿等级的调整条件所对应的码率调整值、帧率调整值和/或分辨率调整值不同。

在一种可选的实现方式中,所述发送模块,还用于:

针对所述媒体数据中的任一数据帧,将所述数据帧拆分为多个初始数据包;

向每个初始数据包中添加对应于所述数据帧的帧标识以及时间标识,得到与所述数据帧相对应的多个传输数据包;

其中,所述时间标识根据所述数据帧的采集时间或发送时间确定。

根据本公开实施例的又一个方面,提供了一种数据传输控制装置,适用于媒体接收端,所述装置包括:

接收模块,适于接收媒体发送端按照预设控制策略发送的与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包;

组装渲染模块,适于获取每个传输数据包中包含的帧标识以及时间标识,根据所述帧标识将接收到的多个传输数据包组装为数据帧,并对组装得到的数据帧进行渲染;

信息反馈模块,适于根据已渲染的数据帧的帧标识,向所述媒体发送端发送包含所述已渲染的数据帧的帧标识的帧反馈信息,以供所述媒体发送端根据所述帧反馈信息中包含的帧标识以及与所述帧标识相对应的时间标识,计算与帧标识相对应的数据帧的传输时延,并在所述数据帧的传输时延满足策略调整条件的情况下,对所述预设控制策略进行调整。

在一种可选的实现方式中,所述组装渲染模块还用于:

调用缓存获取接口,获取接收端缓存队列中的当前缓存数量,得到接收端缓存信息;则所述帧反馈信息中进一步包含所述接收端缓存信息;

并且,所述策略调整条件为复合型策略调整条件,且所述复合型策略调整条件至少包括:与所述数据帧的传输时延相对应的时延类策略条件,以及与所述接收端缓存信息相对应的缓存类策略条件;

并且,所述数据帧的传输时延满足策略调整条件具体包括:所述数据帧的传输时延满足所述时延类策略条件、和/或所述接收端缓存信息满足所述缓存类策略条件。

在一种可选的实现方式中,所述接收端缓存队列包括以下中的至少一个:

组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;

丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;

解码缓存队列,用于缓存组装的数据帧,以执行解码操作;

渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作;

并且,所述接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息;其中,第一类缓存信息用于表征所述组帧缓存队列和/或丢包缓存队列中的当前缓存数量,所述第二类缓存信息用于表征所述解码缓存队列和/或渲染缓存队列中的当前缓存数量;

并且,所述组装渲染模块具体适于:

调用组帧缓存获取接口,获取组帧缓存队列中的当前缓存数量;

调用丢包缓存获取接口,获取丢包缓存队列中的当前缓存数量;

调用解码缓存获取接口,获取解码缓存队列中的当前缓存数量;

调用渲染缓存获取接口,获取渲染缓存队列中的当前缓存数量。

根据本公开实施例的又一个方面,提供了一种数据传输控制系统,所述系统包括:媒体发送端以及媒体接收端。

依据本公开的再一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上述的数据传输控制方法。

依据本公开的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述的数据传输控制方法。

在本公开的实施例中,在每个传输数据包中添加了帧标识以及时间标识,相应的,媒体接收端基于帧标识,在将多个传输数据包组装为数据帧并渲染完毕之后发送对应于该数据帧的帧反馈信息,从而使媒体发送端能够准确计算出每个数据帧的传输时延。由此可见,该方式至少具有如下优势:一方面,能够以数据帧为单位,计算每个数据帧的传输时延,相应的,若某一数据帧存在丢包等异常情况,也能够及时被发送端感知。另一方面,该传输时延不仅考虑了接收端的接收时延,还考虑了接收端的解码时延以及渲染时延,因而更加接近于用户体验,进而确保调整后的传输速率更加符合用户需求。

上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本公开的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本公开一个实施例提供的一种数据传输控制方法的流程图;

图2示出了本公开又一个实施例提供的一种数据传输控制方法的流程图;

图3示出了一个具体示例中的数据传输控制方法的流程示意图;

图4示出了本公开又一实施例提供的一种数据传输控制装置的示意图;

图5示出了本公开又一实施例提供的一种数据传输控制装置的示意图;

图6示出了本公开又一实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了本公开一个实施例提供的一种数据传输控制方法的流程图。

如图1所示,该方法适用于媒体发送端,具体包括:

步骤S110:按照预设控制策略,发送与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包,且每个传输数据包中包含帧标识以及时间标识,帧标识用于表征传输数据包所属的数据帧。

其中,预设控制策略用于控制数据传输的速率,具体包括码率控制策略、帧率控制策略和/或分辨率控制策略等。本申请不限定预设控制策略的具体内涵,只要能够对数据传输情况进行控制即可。具体的,在本实施例中,将每个数据帧拆分为多个传输数据包,并在每个传输数据包中添加帧标识以及时间标识。其中,帧标识用于表征传输数据包所属的数据帧,隶属于同一个数据帧的多个传输数据包中包含的帧标识通常是相同的。时间标识用于表征传输数据包的采集时间或发送时间等,具体可以为时间戳等各种形式。

可选的,在一种实现方式中,在发送与多个数据帧相对应的多个传输数据包之前,进一步执行以下操作:首先,针对媒体数据中的任一数据帧,将该数据帧拆分为多个初始数据包。然后,向每个初始数据包中添加对应于数据帧的帧标识以及时间标识,得到与数据帧相对应的多个传输数据包。其中,帧标识用于唯一表征数据包所属的数据帧,除帧标识之外,每个传输数据包中还可以进一步包括数据包次序标识,用以表征该数据包为数据帧中的第几个数据包。时间标识可以根据数据帧的采集时间或发送时间确定,具体根据采集数据帧或发送数据帧时的本地系统时间确定。

步骤S120:接收媒体接收端发送的帧反馈信息;其中,帧反馈信息由媒体接收端将接收到的多个传输数据包组装为数据帧,并对数据帧进行渲染后发送。

具体的,媒体接收端接收到多个传输数据包之后,将多个传输数据包组装为数据帧,并对数据帧进行渲染。当渲染操作执行完毕后,向媒体发送端发送对应于已渲染的数据帧的帧反馈信息。

步骤S130:获取帧反馈信息中包含的帧标识,根据与帧标识相对应的时间标识,计算与帧标识相对应的数据帧的传输时延。

其中,与帧标识相对应的时间标识即为上述步骤S110中的时间标识,该时间标识既可以由媒体接收端添加在帧反馈信息中,也可以由媒体发送端根据帧反馈信息中包含的帧标识查询对应的时间标识,本申请对具体实现细节不做限定。

在计算与帧标识相对应的数据帧的传输时延时,可以通过多种方式实现:

在一种实现方式中,将媒体发送端接收到帧反馈信息的时刻所对应的本地系统时间与时间标识对应的本地系统时间进行比较,将二者的差值作为数据帧的传输时延。该方式在计算传输时延时所依据的系统时间均为媒体发送端本地的系统时间,因而能够确保系统时间的一致性,避免因不同设备中的时钟系统出现偏差而导致的影响。

在又一种实现方式中,也可以在帧反馈信息中进一步携带媒体接收端渲染完毕时所对应的渲染时间,从而计算渲染时间与时间标识对应的本地系统时间之间的差值,从而将二者的差值作为数据帧的传输时延。上述两种方式可由本领域技术人员灵活选择,本申请对此不做限定。

步骤S140:在数据帧的传输时延满足策略调整条件的情况下,对预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送。

其中,数据帧的传输时延能够反映当前网络的卡顿情况,因此,能够根据数据帧的传输时延判断当前网络是否满足策略调整条件,并在判断结果为是的情况下,对预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送,从而避免网络卡顿问题。

由此可见,在本公开的实施例中,在每个传输数据包中添加了帧标识以及时间标识,相应的,媒体接收端基于帧标识,在将多个传输数据包组装为数据帧并渲染完毕之后发送对应于该数据帧的帧反馈信息,从而使媒体发送端能够准确计算出每个数据帧的传输时延。由此可见,该方式至少具有如下优势:一方面,能够以数据帧为单位,计算每个数据帧的传输时延,相应的,若某一数据帧存在丢包等异常情况,能够及时被发送端感知。另一方面,该传输时延不仅考虑了接收端的接收时延,还考虑了接收端的解码时延以及渲染时延,因而更加接近于用户体验,进而确保调整后的传输速率更加符合用户需求。

本领域技术人员还可以对上述实施例进行各种改动和变形:

在一种可选的实现方式中,为了便于发送端全面了解接收端的处理能力,进一步在帧反馈信息中包含接收端缓存信息。相应的,在接收媒体接收端发送的帧反馈信息之后,进一步获取帧反馈信息中包含的接收端缓存信息。其中,接收端缓存信息用于表征接收端缓存队列中的当前缓存数量,且接收端缓存信息根据媒体接收端对数据帧进行渲染的时间确定。具体的,在媒体接收端,进一步设置有一个或多个接收端缓存队列,通过接收端缓存信息能够反映各个接收端缓存队列的缓存压力,从而为策略调整提供参考。

相应的,策略调整条件为复合型策略调整条件,且复合型策略调整条件至少包括:与数据帧的传输时延相对应的时延类策略条件,以及与接收端缓存信息相对应的缓存类策略条件。并且,上文提到的数据帧的传输时延满足策略调整条件具体包括:数据帧的传输时延满足时延类策略条件、和/或接收端缓存信息满足缓存类策略条件。通过复合型策略调整条件,能够提升策略调整的准确性和及时性。

可选的,接收端缓存队列包括以下中的至少一个:

组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;

丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;

解码缓存队列,用于缓存组装的数据帧,以执行解码操作;

渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作。

其中,接收端接收到的数据包先缓存在组帧缓存队列中,以便将组帧缓存队列中的多个数据包组装为一个数据帧。另外,接收端进一步核对接收到的各个数据包的编号,该编号用于表征对应的数据包具体为数据帧中的第几个数据包,根据数据包编号,能够确定在传输过程中丢失的数据包的标识,进而将丢失的数据包标识缓存到丢包缓存队列,以触发数据包重传操作。另外,解码缓存队列用于缓存组装完毕的各个数据帧,以便针对解码缓存队列中的各个数据帧执行解码操作。渲染缓存队列用于缓存解码完毕的各个数据帧,以便针对渲染缓存队列中的各个数据帧执行渲染操作。

相应的,接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息。其中,第一类缓存信息用于表征组帧缓存队列和/或丢包缓存队列中的当前缓存数量,第二类缓存信息用于表征解码缓存队列和/或渲染缓存队列中的当前缓存数量。由此可见,第一类缓存信息是在执行组帧操作之前的缓存信息,而第二类缓存信息则是在执行组帧操作之后的缓存信息。

相应的,接收端缓存信息满足缓存类策略条件包括:第一类缓存信息满足缓存类策略条件、和/或第二类缓存信息满足缓存类策略条件。并且,在第一类缓存信息满足缓存类策略条件的情况下,通过第一类调整策略,对预设控制策略进行调整;其中,第一类调整策略包括:码率类调整策略和/或分辨率类调整策略。第一类缓存信息满足缓存类策略条件主要是指:组帧缓存队列和/或丢包缓存队列中的当前缓存数量较多,因此,可以通过降低码率或降低分辨率等方式进行调整,以缓解组帧缓存队列和/或丢包缓存队列中的缓存压力。在第二类缓存信息满足缓存类策略条件的情况下,通过第二类调整策略,对预设控制策略进行调整;其中,第二类调整策略包括:帧率类调整策略。第二类缓存信息满足缓存类策略条件主要是指:解码缓存队列和/或渲染缓存队列中的当前缓存数量较多,由于这两个队列中存储的都是组帧操作之后得到的数据帧,因此,若通过码率调整策略或分辨率调整策略则无法凑效(由于帧率没有降低因而仍然会出现缓存积压问题),因此,此时可以通过降低帧率的方式进行调整,以缓解解码缓存队列和/或渲染缓存队列中的缓存压力。

由此可见,由于本实施例中的接收端缓存信息进一步包括各个缓存队列中的缓存数据,并且,根据各个缓存队列的用途,将接收端缓存信息进一步划分为两类,从而可以根据每类缓存信息的当前状态,灵活确定合理的调整策略。另外,上述的第一类调整策略和第二类调整策略既可以单独使用,也可以结合使用。例如,在第一类缓存信息以及第二类缓存信息都满足缓存类策略条件的情况下,可以同时采用第一类调整策略以及第二类调整策略,从而同时从码率、帧率等方面进行调整,以提升策略调整的有效性。

其中,本实施例中的具体调整策略可由本领域技术人员灵活配置。例如,数据帧的传输时延满足策略调整条件具体包括:至少两个相邻数据帧的传输时延之间的差值大于预设时延阈值;和/或,多个连续数据帧的传输时延的变化趋势为增大。

例如,在时延类策略条件根据至少两个相邻数据帧的传输时延进行确定的情况下,动态比较当前数据帧的传输时延与前i个数据帧的传输时延之间的差值,若该差值大于预设差值阈值,则说明当前数据帧的传输时延较大,会出现明显的网络卡顿现象,因此,确定数据帧的传输时延满足时延类策略条件。其中,i为大于或等于1的自然数。其中,在i的数值设置得较大的情况下(例如大于预设临界阈值),有助于根据连续的多个数据帧的时延变化情况,综合考虑是否需要调整,由于能够综合多个数据帧的时延情况进行判断,因而能够避免因偶尔的网络抖动而导致的频繁调整问题。在i的数值设置得较小的情况下(例如将i设置为1),能够根据两个数据帧的时延情况快速做出调整,有助于提升策略调整的实时性,因此,在业务的实时性要求较高的场景中,可以将i的数值设置为1等预设值(例如小于预设临界阈值)。

又如,在时延类策略条件根据多个连续数据帧的传输时延的变化趋势进行确定的情况下,可以在多个连续数据帧的传输时延的变化趋势为增大类趋势的情况下,确定数据帧的传输时延满足时延类策略条件。具体的,可以连续监测多个数据帧与其前一个数据帧之间的传输时延的差值的变化情况,若随时间推移,各个数据帧与其前一个数据帧之间的传输时延的差值依次增大,则确定多个连续数据帧的传输时延的变化趋势为增大,进而需要对控制策略进行调整,以避免卡顿。

同理,接收端缓存信息满足缓存类策略条件具体包括:至少两个相邻数据帧对应的接收端缓存信息之间的差值大于预设缓存阈值;和/或,多个连续数据帧对应的接收端缓存信息的变化趋势为增大。

例如,在缓存类策略条件根据至少两个相邻数据帧对应的接收端缓存信息之间的差值进行确定的情况下,动态比较当前数据帧对应的接收端缓存信息与前i个数据帧对应的接收端缓存信息之间的差值,若该差值大于预设缓存阈值,则说明当前数据帧对应的接收端缓存积压较多,会出现明显的网络卡顿现象,因此,确定数据帧的接收端缓存信息满足缓存类策略条件。其中,i为大于或等于1的自然数。其中,在i的数值设置得较大的情况下(例如大于预设临界阈值),有助于根据连续的多个数据帧的缓存变化情况,综合考虑是否需要调整,由于能够综合多个数据帧的缓存情况进行判断,因而能够避免因偶尔的网络抖动而导致的频繁调整问题。在i的数值设置得较小的情况下(例如将i设置为1),能够根据两个数据帧的缓存情况快速做出调整,有助于提升策略调整的实时性,因此,在业务的实时性要求较高的场景中,可以将i的数值设置为1等预设值(例如小于预设临界阈值)。

又如,在缓存类策略条件根据多个连续数据帧对应的接收端缓存信息的变化趋势进行确定的情况下,可以在多个连续数据帧的接收端缓存信息的变化趋势为增大类趋势的情况下,确定数据帧的接收端缓存信息满足缓存类策略条件。具体的,可以连续监测多个数据帧与其前一个数据帧之间的接收端缓存信息的差值的变化情况,若随时间推移,各个数据帧与其前一个数据帧之间的接收端缓存信息的差值依次增大,则确定多个连续数据帧的接收端缓存信息的变化趋势为增大,进而需要对控制策略进行调整,以避免卡顿。

在一种可选的实现方式中,预设时延阈值和/或预设缓存阈值根据数据帧对应的业务类型确定;其中,数据帧对应的业务类型包括:云游戏业务类型,以及会议直播业务类型;并且,云游戏业务类型的预设时延阈值和/或预设缓存阈值小于会议直播业务类型的预设时延阈值和/或预设缓存阈值。由此可见,可以根据业务类型的实时性需求,灵活配置不同的预设时延阈值和/或预设缓存阈值,以满足不同类型的业务的实际需求。

在又一种可选的实现方式中,预设时延阈值和/或预设缓存阈值为多个分别对应于不同的卡顿等级的阈值;相应的,策略调整条件包括:多个分别对应于不同的卡顿等级的调整条件;其中,不同的卡顿等级的调整条件所对应的码率调整值、帧率调整值和/或分辨率调整值不同。例如,卡顿等级越高,其对应的阈值越大,相应的,调整值也越大;反之,卡顿等级越低,其对应的阈值越小,相应的,调整值也越小。

在一种具体的实现方式中,卡顿等级至少包括:第一卡顿等级以及第二卡顿等级,且第一卡顿等级对应的预设时延阈值和/或预设缓存阈值大于第二卡顿等级对应的预设时延阈值和/或预设缓存阈值。由此可见,第一卡顿等级高于第二卡顿等级,例如,第一卡顿等级为严重卡顿等级,第二卡顿等级为一般卡顿等级。相应的,第一卡顿等级对应的调整条件为:根据第一帧率调整值对预设控制策略中的帧率进行调整、根据第一码率调整值对预设控制策略中的码率进行调整、和/或根据第一分辨率调整值对预设控制策略中的分辨率进行调整。其中,第一帧率调整值用于确定对预设控制策略中的帧率进行调整的幅度,例如,第一帧率调整值为5个单位,则将预设控制策略中的帧率降低5个单位值。同理,第一码率调整值用于确定对预设控制策略中的帧率进行调整的幅度,且第一分辨率调整值用于确定对预设控制策略中的分辨率进行调整的幅度。

第二卡顿等级对应的调整条件为:根据第二帧率调整值对预设控制策略中的帧率进行调整、根据第二码率调整值对预设控制策略中的码率进行调整、和/或根据第二分辨率调整值对预设控制策略中的分辨率进行调整。其中,第一帧率调整值大于第二帧率调整值,第一码率调整值大于第二码率调整值,且第一分辨率调整值大于第二分辨率调整值。由此可见,卡顿等级越高,对码率、帧率或分辨率降低得幅度越大,因而能够更快的改善网络传输状态;卡顿等级越低,对码率、帧率或分辨率降低得幅度越小,因而能够更好的保证音视频的质量。上述方式中仅仅以两个卡顿等级为例进行描述,实际情况中,卡顿等级还可以包括三个甚至更多个,本申请对具体细节不做限定。

图2示出了本公开又一个实施例提供的一种数据传输控制方法的流程图。如图2所示,该方法适用于媒体接收端,具体包括:

步骤S210:接收媒体发送端按照预设控制策略发送的与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包。

步骤S220:获取每个传输数据包中包含的帧标识以及时间标识,根据帧标识将接收到的多个传输数据包组装为数据帧,并对组装得到的数据帧进行渲染。

步骤S230:根据已渲染的数据帧的帧标识,向媒体发送端发送包含已渲染的数据帧的帧标识的帧反馈信息,以供媒体发送端根据帧反馈信息中包含的帧标识以及与帧标识相对应的时间标识,计算与帧标识相对应的数据帧的传输时延,并在数据帧的传输时延满足策略调整条件的情况下,对预设控制策略进行调整。

在一种可选的实现方式中,在对组装得到的数据帧进行渲染之后,进一步执行以下操作:调用缓存获取接口,获取接收端缓存队列中的当前缓存数量,得到接收端缓存信息;则帧反馈信息中进一步包含接收端缓存信息。并且,策略调整条件为复合型策略调整条件,且复合型策略调整条件至少包括:与数据帧的传输时延相对应的时延类策略条件,以及与接收端缓存信息相对应的缓存类策略条件。相应的,数据帧的传输时延满足策略调整条件具体包括:数据帧的传输时延满足时延类策略条件、和/或接收端缓存信息满足缓存类策略条件。由此可见,在该方式中,响应于渲染操作执行完毕后返回的渲染结束指令,调用缓存获取接口,获取接收端缓存队列中的当前缓存数量,得到接收端缓存信息。因此,每个数据帧对应的接收端缓存信息是根据该数据帧渲染结束的时刻确定的,因此,接收端缓存信息能够准确表征对应的数据帧渲染完毕时各个缓存队列的状态。由于渲染操作是用户直观可见的操作,因此,渲染操作的延迟大小与用户体验息息相关,所以,根据渲染结束的时刻来获取各个缓存队列的缓存数值的方式,能够更好的体现用户侧感受到的网络卡顿情况,从而使策略调整方式与用户体验更加匹配。

其中,接收端缓存队列包括以下中的至少一个:组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;解码缓存队列,用于缓存组装的数据帧,以执行解码操作;渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作。并且,接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息;其中,第一类缓存信息用于表征组帧缓存队列和/或丢包缓存队列中的当前缓存数量,第二类缓存信息用于表征解码缓存队列和/或渲染缓存队列中的当前缓存数量。

相应的,在调用缓存数据获取接口,获取接收端缓存队列中的当前缓存数量时,具体包括以下方式中的至少一种:调用组帧缓存获取接口,获取组帧缓存队列中的当前缓存数量;调用丢包缓存获取接口,获取丢包缓存队列中的当前缓存数量;调用解码缓存获取接口,获取解码缓存队列中的当前缓存数量;调用渲染缓存获取接口,获取渲染缓存队列中的当前缓存数量。由此可见,通过调用不同的获取接口,能够分别获取到不同的缓存队列中的当前缓存数量。

另外,在其他的实现方式中,还可以在帧反馈信息中进一步添加其他参数,例如,增加用于表征接收到最新处理的帧序列号或者最新采集时间的参数,以使发送端及时获知接收端具体滞后了多少帧,由此根据具体滞后的帧数,发送端可以采取降低帧率、降低分辨率或者短暂停止发送等各类调整策略。

综上可知,在本实施例中,在每个传输数据包中添加了帧标识以及时间标识,相应的,媒体接收端基于帧标识,在将多个传输数据包组装为数据帧并渲染完毕之后发送对应于该数据帧的帧反馈信息,从而使媒体发送端能够准确计算出每个数据帧的传输时延。由此可见,该方式至少具有如下优势:一方面,能够以数据帧为单位,计算每个数据帧的传输时延,相应的,若某一数据帧存在丢包等异常情况,能够及时被发送端感知。另一方面,该传输时延不仅考虑了接收端的接收时延,还考虑了接收端的解码时延以及渲染时延,因而更加接近于用户体验,进而确保调整后的传输速率更加符合用户需求。并且,在上述实施例中,还能够分别获取接收端的各个缓存队列中的当前缓存数量,从而根据各个缓存队列所对应的操作环节确定合适的调整方式。

另外,本申请又一实施例还提供了一种数据传输控制方法,该方法包括以下步骤:

步骤一、媒体发送端按照预设控制策略,发送与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包,且每个传输数据包中包含帧标识以及时间标识,帧标识用于表征传输数据包所属的数据帧。

步骤二、媒体接收端接收与多个数据帧相对应的多个传输数据包,获取每个传输数据包中包含的帧标识以及时间标识,根据帧标识将接收到的多个传输数据包组装为数据帧,并对组装得到的数据帧进行渲染;根据已渲染的数据帧的帧标识,向媒体发送端发送包含已渲染的数据帧的帧标识的帧反馈信息。

步骤三、媒体发送端接收媒体接收端发送的帧反馈信息,获取帧反馈信息中包含的帧标识,根据与帧标识相对应的时间标识,计算与帧标识相对应的数据帧的传输时延;并在数据帧的传输时延满足策略调整条件的情况下,对预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送。

为了便于理解,下面以一个具体示例为例,详细介绍上述实施例的具体实现细节:

该示例主要用于实现音视频实时传输过程中的拥塞控制。具体的,可以通过各类速率调整策略实现拥塞控制,例如,包括但不限于BBR、GCC、CUBIC等拥塞控制算法。其中,拥塞控制算法用于在网络中发生拥塞时,减少向网络中发送数据的速度,防止造成恶性循环;同时在网络空闲时,提高发送数据的速度,最大限度地利用网络资源。上述算法用于根据网络的各种指标,来判断网络是否拥堵,进而设置音视频传输过程中的目标传输参数(例如传输码率、帧率、分辨率等),从而灵活调整传输的数据量,实现避免拥堵、流畅传输的效果。

但是,传统的速率调整策略通常仅仅考虑了网络状态,而未考虑接收端的处理能力和实时处理状态,因此,导致速率调整效果不佳。为了解决上述问题,在本示例中,提出了一种新的消息反馈机制,通过帧反馈信息向发送端实时反馈以下内容:数据帧渲染结束时,各个缓存队列中的当前缓存数量,以便于发送端实时感知接收端对应各个处理环节的处理能力。

图3示出了该示例中的数据传输控制方法的流程示意图,如图3所示,该方法包括以下步骤:

步骤S301:针对媒体数据中的任一数据帧,将数据帧拆分为多个初始数据包;向每个初始数据包中添加对应于数据帧的帧标识以及时间标识,得到与数据帧相对应的多个传输数据包。

其中,该步骤通常由媒体发送端实现,具体可通过媒体发送端中包含的数据包拆分模块实现。具体的,发送端针对每个数据包添加视频帧序列号(frame_no)和发送端本地的采集时间(local_capture_time)。相应的,接收端在最终渲染该帧之后发送的帧反馈信息中包含上述的视频帧序列号(即帧标识)和发送端本地的采集时间信息(即时间标识),这样发送端在收到帧反馈信息之后,采用最新的本地时间减去上述local_capture_time值,即可综合确定一个数据帧的实际传输时延(delay)。

步骤S302:媒体发送端按照预设控制策略,发送与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包。

步骤S303:媒体接收端获取接收到的每个传输数据包中包含的帧标识以及时间标识,并将接收到的每个传输数据包缓存至组帧缓存队列;并且,根据接收到的传输数据包中的次序编号确定发生丢包的数据包的标识,将丢包数据包标识缓存至丢包缓存队列。

步骤S304:媒体接收端从组帧缓存队列中获取多个传输数据包并组装为一个完整的数据帧,将组装得到的各个数据帧存储至解码缓存队列。

步骤S305:媒体接收端从解码缓存队列中获取数据帧并执行解码操作,将解码后的各个数据帧存储至渲染缓存队列。

步骤S306:媒体接收端从渲染缓存队列中依次获取各个数据帧进行渲染。

步骤S307:响应于当前数据帧的渲染操作执行完毕,调用缓存数据获取接口,获取各个缓存队列中的当前缓存数量。

具体的,调用组帧缓存获取接口,获取组帧缓存队列中的当前缓存数量;调用丢包缓存获取接口,获取丢包缓存队列中的当前缓存数量;调用解码缓存获取接口,获取解码缓存队列中的当前缓存数量;调用渲染缓存获取接口,获取渲染缓存队列中的当前缓存数量。

步骤S308:媒体接收端发送帧反馈信息。

其中,帧反馈信息中至少包含数据帧的帧标识,例如,可以包含上述的视频帧序列号(frame_no)和发送端本地的采集时间(local_capture_time)。

另外,帧反馈信息中还包含各个缓存队列在当前数据帧渲染完毕的时刻的当前缓存数量,具体包括上述的组帧缓存队列、丢包缓存队列、解码缓存队列以及渲染缓存队列中的缓存数量信息。

步骤S309:媒体发送端根据帧反馈信息,判断是否需要对预设控制策略进行调整。

具体的,媒体发送端根据帧反馈信息中包含的帧标识以及与帧标识相对应的时间标识,计算与帧标识相对应的数据帧的传输时延;在数据帧的传输时延满足策略调整条件的情况下,对预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送。另外,除根据传输时延进行调整之外,还进一步根据各个缓存队列的当前缓存数量判断是否需要调整。

其中,根据各个缓存队列的当前缓存数量,能够使发送端实时感知接收端的各个模块的处理能力和健康度。例如,当接收端的解码缓存队列中的当前缓存数量和/或渲染缓存队列中的当前缓存数量超过一定阈值时,说明接收端在解码和渲染环节存在滞后,因此,为了避免卡顿,发送端需要降低发送帧率,其中,在解码和渲染环节滞后的情况下,降低码率无法解决数据帧解码渲染慢的问题,因此,只能采用降低帧率的方式进行调整。当接收端的组帧缓存队列以及丢包缓存队列超过一定阈值时,说明接收端可能出现了严重的丢包,因此,需要降低码率或者降低帧率,以避免更严重的网络丢包和拥堵。

由此可见,通过在帧反馈数据中包含接收端的各个缓存队列的当前缓存信息,能够使发送端及时感知接收端在各个处理环节的处理情况,进而能够根据发生滞后的处理环节的特点,针对性地设置对应的调整方式,从而提升网络数据的传输流畅度、避免卡顿等异常问题。该示例不仅考虑了网络状况,还考虑了接收端的当前处理能力、运行健康度等因素,并且,基于渲染操作进行反馈的方式更加接近用户体验。而且,在判断是否需要调整时,能够直接根据相邻两帧的变化情况进行判断,因此调整更加及时,实时性更好。

图4示出了本公开又一实施例提供的一种数据传输控制装置的示意图,该数据传输控制装置适用于媒体发送端,该装置具体包括:

发送模块41,适于按照预设控制策略,发送与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包,且每个传输数据包中包含帧标识以及时间标识,所述帧标识用于表征所述传输数据包所属的数据帧;

接收模块42,适于接收媒体接收端发送的帧反馈信息;其中,所述帧反馈信息由所述媒体接收端将接收到的多个传输数据包组装为数据帧,并对所述数据帧进行渲染后发送;

计算模块43,适于获取所述帧反馈信息中包含的帧标识,根据与所述帧标识相对应的时间标识,计算与所述帧标识相对应的数据帧的传输时延;

调整模块44,适于在所述数据帧的传输时延满足策略调整条件的情况下,对所述预设控制策略进行调整,以使后续的数据帧按照调整后的控制策略进行发送。

在一种可选的实现方式中,所述接收模块具体用于:

获取所述帧反馈信息中包含的接收端缓存信息;其中,所述接收端缓存信息用于表征接收端缓存队列中的当前缓存数量,且所述接收端缓存信息根据所述媒体接收端对所述数据帧进行渲染的时间确定;

则所述策略调整条件为复合型策略调整条件,且所述复合型策略调整条件至少包括:与所述数据帧的传输时延相对应的时延类策略条件,以及与所述接收端缓存信息相对应的缓存类策略条件;

并且,所述数据帧的传输时延满足策略调整条件具体包括:

所述数据帧的传输时延满足所述时延类策略条件、和/或所述接收端缓存信息满足所述缓存类策略条件。

在一种可选的实现方式中,所述接收端缓存队列包括以下中的至少一个:

组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;

丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;

解码缓存队列,用于缓存组装的数据帧,以执行解码操作;

渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作。

在一种可选的实现方式中,所述接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息;其中,第一类缓存信息用于表征所述组帧缓存队列和/或丢包缓存队列中的当前缓存数量,所述第二类缓存信息用于表征所述解码缓存队列和/或渲染缓存队列中的当前缓存数量;

其中,所述接收端缓存信息满足所述缓存类策略条件包括:所述第一类缓存信息满足所述缓存类策略条件、和/或所述第二类缓存信息满足所述缓存类策略条件;

并且,所述调整模块具体适于:

在所述第一类缓存信息满足所述缓存类策略条件的情况下,通过第一类调整策略,对所述预设控制策略进行调整;其中,所述第一类调整策略包括:码率类调整策略和/或分辨率类调整策略;

在所述第二类缓存信息满足所述缓存类策略条件的情况下,通过第二类调整策略,对所述预设控制策略进行调整;其中,所述第二类调整策略包括:帧率类调整策略。

在一种可选的实现方式中,所述数据帧的传输时延满足策略调整条件具体包括:至少两个相邻数据帧的传输时延之间的差值大于预设时延阈值;和/或,多个连续数据帧的传输时延的变化趋势为增大;

所述接收端缓存信息满足所述缓存类策略条件具体包括:至少两个相邻数据帧对应的接收端缓存信息之间的差值大于预设缓存阈值;和/或,多个连续数据帧对应的接收端缓存信息的变化趋势为增大。

在一种可选的实现方式中,所述预设时延阈值和/或所述预设缓存阈值根据所述数据帧对应的业务类型确定;

其中,所述数据帧对应的业务类型包括:云游戏业务类型,以及会议直播业务类型;并且,云游戏业务类型的预设时延阈值和/或所述预设缓存阈值小于会议直播业务类型的预设时延阈值和/或所述预设缓存阈值。

在一种可选的实现方式中,所述预设时延阈值和/或所述预设缓存阈值为多个分别对应于不同的卡顿等级的阈值;

则所述策略调整条件包括:多个分别对应于不同的卡顿等级的调整条件;

其中,不同的卡顿等级的调整条件所对应的码率调整值、帧率调整值和/或分辨率调整值不同。

在一种可选的实现方式中,所述发送模块,还用于:

针对所述媒体数据中的任一数据帧,将所述数据帧拆分为多个初始数据包;

向每个初始数据包中添加对应于所述数据帧的帧标识以及时间标识,得到与所述数据帧相对应的多个传输数据包;

其中,所述时间标识根据所述数据帧的采集时间或发送时间确定。

图5示出了本公开又一实施例提供的一种数据传输控制装置的示意图,该数据传输控制装置适用于媒体接收端,该装置具体包括:

接收模块51,适于接收媒体发送端按照预设控制策略发送的与多个数据帧相对应的多个传输数据包;其中,每个数据帧对应于多个传输数据包;

组装渲染模块52,适于获取每个传输数据包中包含的帧标识以及时间标识,根据所述帧标识将接收到的多个传输数据包组装为数据帧,并对组装得到的数据帧进行渲染;

信息反馈模块53,适于根据已渲染的数据帧的帧标识,向所述媒体发送端发送包含所述已渲染的数据帧的帧标识的帧反馈信息,以供所述媒体发送端根据所述帧反馈信息中包含的帧标识以及与所述帧标识相对应的时间标识,计算与帧标识相对应的数据帧的传输时延,并在所述数据帧的传输时延满足策略调整条件的情况下,对所述预设控制策略进行调整。

在一种可选的实现方式中,所述组装渲染模块还用于:

调用缓存获取接口,获取接收端缓存队列中的当前缓存数量,得到接收端缓存信息;则所述帧反馈信息中进一步包含所述接收端缓存信息;

并且,所述策略调整条件为复合型策略调整条件,且所述复合型策略调整条件至少包括:与所述数据帧的传输时延相对应的时延类策略条件,以及与所述接收端缓存信息相对应的缓存类策略条件;

并且,所述数据帧的传输时延满足策略调整条件具体包括:所述数据帧的传输时延满足所述时延类策略条件、和/或所述接收端缓存信息满足所述缓存类策略条件。

在一种可选的实现方式中,所述接收端缓存队列包括以下中的至少一个:

组帧缓存队列,用于缓存接收到的数据包,以执行组帧操作;

丢包缓存队列,用于缓存丢失的数据包标识,以触发重传指令;

解码缓存队列,用于缓存组装的数据帧,以执行解码操作;

渲染缓存队列,用于缓存解码后的数据帧,以执行渲染操作;

并且,所述接收端缓存信息进一步包括:第一类缓存信息,以及第二类缓存信息;其中,第一类缓存信息用于表征所述组帧缓存队列和/或丢包缓存队列中的当前缓存数量,所述第二类缓存信息用于表征所述解码缓存队列和/或渲染缓存队列中的当前缓存数量;

并且,所述组装渲染模块具体适于:

调用组帧缓存获取接口,获取组帧缓存队列中的当前缓存数量;

调用丢包缓存获取接口,获取丢包缓存队列中的当前缓存数量;

调用解码缓存获取接口,获取解码缓存队列中的当前缓存数量;

调用渲染缓存获取接口,获取渲染缓存队列中的当前缓存数量。

另外,本申请又一实施例还提供了一种数据传输控制系统,该系统包括:上述的媒体发送端以及媒体接收端。

图6示出了根据本公开又一实施例的一种电子设备的结构示意图,本公开具体实施例并不对电子设备的具体实现做限定。

如图6所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)506、存储器(memory)504、以及通信总线508。

其中:

处理器502、通信接口506、以及存储器504通过通信总线508完成相互间的通信。

通信接口506,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器502,用于执行程序510,具体可以执行上述视频图像的检测方法实施例中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本公开实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU。也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器504,用于存放程序510。存储器504可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序510具体可以用于使得处理器502执行上述视频图像的检测方法实施例中对应的各个操作。

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的装置中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

相关技术
  • 数据传输方法、装置、电子设备及存储介质
  • 一种数据传输方法、装置、电子设备及存储介质
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种数据传输控制方法、装置、电子设备及存储介质
  • 数据传输控制方法、装置、电子设备及存储介质
技术分类

06120116503033