CN114979091B - 一种数据传输的方法、相关装置、设备以及存储介质 - Google Patents

一种数据传输的方法、相关装置、设备以及存储介质 Download PDF

Info

Publication number
CN114979091B
CN114979091B CN202210900542.9A CN202210900542A CN114979091B CN 114979091 B CN114979091 B CN 114979091B CN 202210900542 A CN202210900542 A CN 202210900542A CN 114979091 B CN114979091 B CN 114979091B
Authority
CN
China
Prior art keywords
data
buffer
configuration
determining
duration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210900542.9A
Other languages
English (en)
Other versions
CN114979091A (zh
Inventor
陈华成
张宏展
瞿友安
费伟
刘铂熙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210900542.9A priority Critical patent/CN114979091B/zh
Publication of CN114979091A publication Critical patent/CN114979091A/zh
Application granted granted Critical
Publication of CN114979091B publication Critical patent/CN114979091B/zh
Priority to PCT/CN2023/094411 priority patent/WO2024021777A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种用于内容分发网络的数据传输方法,可应用的领域包括但不限于直播、车联网和即时通信等领域。本申请方法包括:接收源端设备在第一时间窗口内发送的第一数据帧序列;根据第一数据帧序列确定数据抖动信息,数据抖动信息用于描述时间窗口内的数据帧抖动情况;根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值;若缓冲区在当前时刻对应的数据帧播放时长大于或等于第一缓冲时长阈值,则以第一传输速率向目的设备发送缓冲区对应的数据帧,第一传输速率大于原始传输速率。本申请实施例提供了一种数据传输的方法、相关装置、设备以及存储介质。本申请能够有效地避免内容流出现高延迟,能够更好地满足低延迟视频业务的需求。

Description

一种数据传输的方法、相关装置、设备以及存储介质
技术领域
本申请涉及网络技术领域与通信技术领域,尤其涉及一种数据传输的方法、相关装置、设备以及存储介质。
背景技术
流媒体技术是一种无需用户等待全部数据下载到本地,即可开始浏览或播放流媒体的技术。为了使流媒体的传输更快更稳定,可通过内容分发网络(content deliverynetwork,CDN)将流媒体从源节点发布到最接近用户的服务节点,使用户可就近取得所需内容,以此提高用户访问网站的响应速度。
在流媒体传输过程中,由于数据包大小的差异和网络路由的路径选择等众多因素,难以保证数据包的延迟时间一致,从而容易在上行推流过程中产生抖动。目前,CDN节点主要以画面组(group of pictures,GOP)作为最小缓冲单位来对抗上行链路抖动。
然而,将GOP作为最小缓冲单位,对于上行网络而言,其适应能力较差。若上行推流帧率稳定,则采用固定的缓冲会增加内容流的延迟。因此,目前采用的抗抖动缓冲方案难以满足低延迟视频业务的需求。
发明内容
本申请实施例提供了一种数据传输的方法、相关装置、设备以及存储介质。本申请能够有效地避免内容流的延迟,能够更好地满足低延迟视频业务的需求。
有鉴于此,本申请一方面提供一种数据传输的方法,包括:
接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第一数据帧序列包括至少两个数据帧;
根据第一数据帧序列确定数据抖动信息,其中,数据抖动信息用于描述时间窗口内的数据帧抖动情况;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值;
若缓冲区在当前时刻对应的数据帧播放时长大于或等于第一缓冲时长阈值,则以第一传输速率向目的设备发送缓冲区对应的数据帧,其中,第一传输速率大于原始传输速率。
本申请另一方面提供一种数据传输装置,包括:
接收模块,用于接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第一数据帧序列包括至少两个数据帧;
确定模块,用于根据第一数据帧序列确定数据抖动信息,其中,数据抖动信息用于描述时间窗口内的数据帧抖动情况;
确定模块,还用于根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值;
传输模块,用于若缓冲区在当前时刻对应的数据帧播放时长大于或等于第一缓冲时长阈值,则以第一传输速率向目的设备发送缓冲区对应的数据帧,其中,第一传输速率大于原始传输速率。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
传输模块,还用于若缓冲区在当前时刻对应的数据帧播放时长小于第一缓冲时长阈值,则以原始传输速率向目的设备发送缓冲区对应的数据帧。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,数据抖动信息包括帧率方差或帧率标准差;
确定模块,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与配置时长的乘积,确定缓冲区对应的第一缓冲时长阈值。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
确定模块,具体用于根据第一数据帧序列,统计第一时间窗口中每个时间单位对应的帧率,其中,第一时间窗口包括K个时间单位,K为大于1的整数;
根据每个时间单位对应的帧率,计算得到平均帧率;
根据每个时间单位对应的帧率以及平均帧率,计算得到帧率方差或帧率标准差。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块,具体用于根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
确定模块,具体用于根据第一数据帧序列,统计第一时间窗口中每个时间单位对应的至少一个最大帧间间隔,其中,第一时间窗口包括K个时间单位,K为大于1的整数;
根据每个时间单位对应的至少一个最大帧间间隔,生成概率分布直方图;
根据概率分布直方图构建帧间间隔分布函数。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与配置时长的乘积,确定第一数值;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定第二数值;
若第一数值大于第二数值,则将第一数值作为缓冲区对应的第一缓冲时长阈值;
若第二数值大于或等于第一数值,则将第二数值作为缓冲区对应的第一缓冲时长阈值。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,数据传输装置还包括响应模块;
响应模块,用于响应源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
确定模块,具体用于若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括配置时长或配置系数中的至少一项,第二配置参数集合包括配置时长或配置系数中的至少一项;
第一配置参数集合包括的配置时长小于第二配置参数集合包括的配置时长;
第一配置参数集合包括的配置系数小于第二配置参数集合包括的配置系数。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
确定模块,具体用于根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,其中,第二缓冲时长阈值小于第一缓冲时长阈值;
传输模块,还用于若缓冲区在当前时刻对应的数据帧播放时长小于或等于第二缓冲时长阈值,则以第二传输速率向目的设备发送缓冲区对应的数据帧,或,以原始传输速率向目的设备发送缓冲区对应的数据帧,其中,第二传输速率小于原始传输速率。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
传输模块,还用于若缓冲区在当前时刻对应的数据帧播放时长大于第二缓冲时长阈值,且,缓冲区在当前时刻对应的数据帧播放时长小于第一缓冲时长阈值,则以原始传输速率向目的设备发送缓冲区对应的数据帧。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,数据抖动信息包括帧率方差或帧率标准差;
确定模块,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定缓冲区对应的第一缓冲时长阈值;
根据调节系数与第二配置时长的乘积,确定缓冲区对应的第二缓冲时长阈值,其中,第二配置时长小于第一配置时长。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块,具体用于根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值;
根据间隔时长与第二配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值,其中,第二配置系数小于第一配置系数。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定第一上限数值;
根据调节系数与第二配置时长的乘积,确定第一下限数值,其中,第二配置时长小于第一配置时长;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定第二上限数值;
根据间隔时长与第二配置系数的乘积,确定第二下限数值,其中,第二配置系数小于第一配置系数;
若第一上限数值大于第二上限数值,则将第一上限数值作为缓冲区对应的第一缓冲时长阈值;
若第二上限数值大于或等于第一上限数值,则将第二上限数值作为缓冲区对应的第一缓冲时长阈值;
若第一下限数值大于第二下限数值,则将第一下限数值作为缓冲区对应的第二缓冲时长阈值;
若第二下限数值大于或等于第一下限数值,则将第二下限数值作为缓冲区对应的第二缓冲时长阈值。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
响应模块,还用于响应源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
确定模块,具体用于若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项,第二配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项;
第一配置参数集合包括的第一配置时长小于第二配置参数集合包括的第一配置时长;
第一配置参数集合包括的第二配置时长小于第二配置参数集合包括的第二配置时长;
第一配置参数集合包括的第一配置系数小于第二配置参数集合包括的第一配置系数;
第一配置参数集合包括的第二配置系数小于第二配置参数集合包括的第二配置系数。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
接收模块,具体用于接收到源端设备发送的当前数据帧;
根据当前数据帧获取第一时间窗口内的第一数据帧序列,其中,第一数据帧序列包括当前数据帧。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
接收模块,具体用于在接收到源端设备在第二时间窗口内发送的第二数据帧序列之后,接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第二时间窗口为第一时间窗口相邻的前一个时间窗口,且,第二数据帧序列包括的数据帧与第一数据帧序列包括的数据帧不重复。
本申请另一方面提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述各方面的方法。
本申请的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,提供了一种数据传输的方法,服务器接收源端设备在第一时间窗口内发送的第一数据帧序列,于是,根据第一数据帧序列确定数据帧的抖动情况,并结合数据帧的抖动情况确定缓冲区对应的第一缓冲时长阈值。如果缓冲区在当前时刻对应的数据帧播放时长大于或等于第一缓冲时长阈值,则以第一传输速率向目的设备发送缓冲区对应的数据帧。通过上述方式,采用帧级别的数据能够获得更准确的数据帧抖动情况,由此,基于时间窗口内的数据帧抖动情况,自适应调整缓冲区的第一缓冲时长阈值。在当前缓冲的数据帧播放时长大于第一缓冲时长阈值的情况下,会加快数据帧的传输速率,从而可以有效地避免内容流出现高延迟,能够更好地满足低延迟视频业务的需求。
附图说明
图1为本申请实施例中数据传输系统的一个架构示意图;
图2为本申请实施例中数据传输系统的另一个架构示意图;
图3为本申请实施例中数据传输方法的一个流程示意图;
图4为本申请实施例中自适应抗抖动缓冲的一个工作原理示意图;
图5为本申请实施例中自适应抗抖动缓冲的一个流程示意图;
图6为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的一个示意图;
图7为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图;
图8为本申请实施例中概率分布直方图与累积分布函数的示意图;
图9为本申请实施例中针对电商直播场景自定义数据传输模式的一个示意图;
图10为本申请实施例中针对在线教育场景自定义数据传输模式的一个示意图;
图11为本申请实施例中针对秀场直播场景自定义数据传输模式的一个示意图;
图12为本申请实施例中针对游戏直播场景自定义数据传输模式的一个示意图;
图13为本申请实施例中自适应抗抖动缓冲的另一个流程示意图;
图14为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图;
图15为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图;
图16为本申请实施例中针对电商直播场景自定义数据传输模式的另一个示意图;
图17为本申请实施例中针对在线教育场景自定义数据传输模式的另一个示意图;
图18为本申请实施例中针对秀场直播场景自定义数据传输模式的另一个示意图;
图19为本申请实施例中针对游戏直播场景自定义数据传输模式的另一个示意图;
图20为本申请实施例中相邻两个时间窗口的一个示意图;
图21为本申请实施例中相邻两个时间窗口的另一个示意图;
图22为本申请实施例中数据传输装置的一个示意图;
图23为本申请实施例中服务器的一个结构示意图。
具体实施方式
本申请实施例提供了一种数据传输的方法、相关装置、设备以及存储介质。本申请能够有效地避免内容流的延迟,能够更好地满足低延迟视频业务的需求。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
如今,流媒体技术被广泛使用,很多音视频的点播、直播业务以及网络广告等都运用了流媒体技术,这也给互联网提供商的服务器带来了巨大的压力。通过构建内容分发网络(Content Delivery Network,CDN)将流媒体内容发布到最接近用户的边缘节点,使得用户可以“就近取材”。CDN边缘节点是在分发时将内容传送到最终的一些带宽小的网络,移动网络,宽带网络等,最终服务于终端用户。CDN边缘计算主要是将大规模的资源尽可能高效地分发到相应的节点,以满足各个终端群体更好的网络体验。
如果网络无丢包,无抖动,且低延时,那么每收到一帧数据即可直接播放,效果也非常好。但实际网络状况较为复杂,尤其对于上行网络而言,其适应能力较差,因此,在上行推流时发生抖动的概率也比较大。一旦网络变差,内容流就会出现卡顿等异常情况。基于此,在服务端对接收到的数据帧进行缓冲是有必要的。缓冲是以延时作为代价,延时越大,应对网络抖动的效果越好,但过大的延时又会引入内容流播放的实时性较差。
本申请在上行链路或下行链路上引入一个抗抖缓冲(jitterbuffer),可根据帧率抖动的缓冲长度调节方法,避免上行缓冲引入过高延迟,兼顾内容流播放的实时性和流畅性。本申请提供的数据传输方法可应用于图1或图2所示的数据传输系统,如图1所示,数据传输系统包括CDN 110,边缘节点120,源端设备130以及目的设备140。源端设备130将本地采集到内容流推送到CDN 110,CDN 110将内容流发布到距离目的设备140最近的边缘节点120上,这样便可以使得目的设备140就近获取所需内容。如图2所示,数据传输系统包括流媒体服务器150,源端设备130以及目的设备140。源端设备130将本地采集到内容流推送到流媒体服务器150,目的设备140从流媒体服务器150中拉取内容流。
下面将对上述数据传输系统中的组成进行介绍。
(1)CDN:CDN中的功能实体包括内容缓存设备、内容交换机、内容路由器和CDN内容管理系统等组成。其中,内容缓存设备位于用户接入点,是面向最终用户的内容提供设备,可缓存静态内容和流媒体内容,实现内容的边缘传播和存储。内容交换机处于用户接入集中点,可以均衡单点多个内容缓存设备的负载,并对内容进行缓存负载平衡及访问控制。内容路由器负责将用户的请求调度到适当的设备上。内容管理系统负责整个CDN的管理,可进行内容管理。
(2)边缘节点:边缘节点指在靠近用户的网络边缘侧构建的业务平台,用于提供存储、计算和网络等资源,将部分关键业务应用下沉到接入网络边缘,以减少网络传输和多级转发带来的宽度和时延损耗。本申请提供的jitterbuffer可部署于CDN的边缘节点。
(3)源端设备:源端设备为推流用户使用的终端,客户端部署于终端上,客户端可以通过浏览器的形式运行于终端上,也可以通过独立的应用程序(application,APP)的形式运行于终端上等,对于客户端的具体展现形式不做限定。源端设备可以是手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载设备、可穿戴设备等。
(4)目的设备:目的设备为拉流用户使用的终端。其中,目的设备上也可部署于客户端,且,目的设备也可以是手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表、车载设备、可穿戴设备等。
(5)流媒体服务器:流媒体服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请提供的jitterbuffer也可部署于流媒体服务器。
结合上述介绍,下面将对本申请中数据传输的方法进行介绍,请参阅图3,本申请实施例中数据传输的方法可以由计算机设备执行,该计算机设备可以是服务器或终端,包括:
210、接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第一数据帧序列包括至少两个数据帧;
在一个或多个实施例中,源端设备通过通信协议向服务端(例如,CDN的边缘节点或流媒体服务器)推送内容流。其中,内容流是以数据帧的形式推送的,因此,服务端可采集到一个时间窗口内的所有数据帧。以第一时间窗口为例,服务端可获取第一时间窗口内的第一数据帧序列,该第一数据帧序列包括至少两个数据帧。
需要说明的是,一个时间窗口可设置为5至10秒,或其他合理时长,此处不做限定。源端设备采用的通信协议可以是实时消息传输协议(real time messaging protocol,RTMP),网页实时通信(web real-time communication,WebRTC)协议,或安全可靠传输协议(secure reliable transport,SRT)等,此处不做限定。
220、根据第一数据帧序列确定数据抖动信息,其中,数据抖动信息用于描述时间窗口内的数据帧抖动情况;
在一个或多个实施例中,服务端可部署一个实时测量帧率变化的监测设备,由此,监测设备结合在第一时间窗口内采集到的第一数据帧序列,可生成数据抖动信息。其中,数据抖动信息用于描述一个时间窗口内的数据帧抖动情况,需要说明的是,在本实施例中,数据抖动信息表示第一时间窗口内的数据帧抖动情况,在其他实施例中,数据抖动信息可表示第二时间窗口(或,其他时间窗口)内的数据帧抖动情况。
示例性地,假设正常播放帧率为30每秒传输帧数(frame per second,fps),但由于网络状况不稳定,可能出现帧率为10fps,或35fps等,这样就会导致数据帧的传输情况不稳定,因此,需要构建数据抖动信息来描述数据帧在一个时间窗口内的抖动情况。
230、根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值;
在一个或多个实施例中,结合数据抖动信息确定缓冲区对应的第一缓冲时长阈值。如果基于数据抖动信息确定第一时间窗口内的数据帧抖动比较强烈,则缓冲区对应的第一缓冲时长阈值较大,反之,如果基于数据抖动信息确定第一时间窗口内的数据帧抖动非常弱(甚至没有抖动),则会缓冲区对应的第一缓冲时长阈值较小,甚至可将第一缓冲时长阈值设置为0。
240、若缓冲区在当前时刻对应的数据帧播放时长大于或等于第一缓冲时长阈值,则以第一传输速率向目的设备发送缓冲区对应的数据帧,其中,第一传输速率大于原始传输速率。
在一个或多个实施例中,服务端可实时获取缓冲区内当前存储的数据帧数量,按照正常播放帧率可计算缓冲区在当前时刻对应的数据帧播放时长。示例性地,假设缓冲区内当前存储的数据帧数量为60帧,且,假设正常播放帧率为30fps,由此,可计算得到数据帧播放时长为2秒。
具体地,若当前时刻对应的数据帧播放时长大于或等于第一缓冲时长阈值,则表示缓冲的数据帧较多,需要加快数据帧的发送速率。即,以第一传输速率向目的设备发送缓冲区对应的数据帧,第一传输速率大于原始传输速率。以第一传输速率为1.1倍的原始传输速率为例,假设原始传输速率为30fps,那么第一传输速率可以为33fps。
需要说明的是,一种情况下,可直接在缓冲区内存储数据帧。另一种情况下,在缓冲区内存储数据帧的索引,而数据帧可存储于环形队列中,基于此,目的设备可从环形队列中最近或次近的一个I帧开始接收数据帧。由于环形队列内存储的是公共的数据帧,因此,能够降低对内存和处理资源的占用率。
为了便于理解,请参阅图4,图4为本申请实施例中自适应抗抖动缓冲的一个工作原理示意图,如图所示,以直播场景为例,源端设备将实时采集视频流推送至直播CDN,直播CDN端接收输入的视频帧,由于上行网络不稳定,这些视频帧存在抖动的情况。因此,通过识别帧率的变化可自适应第调节缓冲时长阈值。由此,按照一定的传输速率向目的设备输出平滑的数据帧,以使目的设备可播放直播视频。
本申请实施例中,提供了一种数据传输的方法。通过上述方式,采用帧级别的数据能够获得更准确的数据帧抖动情况,由此,基于时间窗口内的数据帧抖动情况,自适应调整缓冲区的第一缓冲时长阈值。在当前缓冲的数据帧播放时长大于第一缓冲时长阈值的情况下,会加快数据帧的传输速率,从而可以有效地避免内容流出现高延迟,能够更好地满足低延迟视频业务的需求。与此同时,本申请提供的方法在实验室环境下,能够抵抗约20%上行丢包。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括:
若缓冲区在当前时刻对应的数据帧播放时长小于第一缓冲时长阈值,则以原始传输速率向目的设备发送缓冲区对应的数据帧。
在一个或多个实施例中,介绍了一种支持两个缓冲时长区间的数据传输方法。由前述实施例可知,服务端基于当前缓冲的数据帧数量和正常播放帧率,确定当前时刻对应的数据帧播放时长。如果当前时刻对应的数据帧播放时长小于第一缓冲时长阈值,则表示缓冲的数据帧数量较为合理,因此,以原始传输速率向目的设备发送缓冲区对应的数据帧。
下面将结合图示进行介绍,请参阅图5,图5为本申请实施例中自适应抗抖动缓冲的一个流程示意图,如图所示,具体地:
在步骤A1中,服务端接收源端设备发送的数据帧。
在步骤A2中,服务端根据一个时间窗口内接收数据帧确定数据抖动信息。
在步骤A3中,服务端根据时间窗口对应的数据抖动信息,更新得到缓冲区的第一缓冲时长阈值。
在步骤A4中,服务端基于缓冲区在当前时刻缓冲的数据帧数量,可计算得到当前时刻的数据帧播放时长。由此,判断该数据帧播放时长是否大于或等于第一缓冲时长阈值,若是,则执行步骤A5,若否,则执行步骤A6。
在步骤A5中,以第一传输速率向目的设备发送平滑的数据帧。
在步骤A6中,以原始传输速率向目的设备发送平滑的数据帧。
在步骤A7中,结合数据帧的传输情况更新缓冲区的缓存长度,并且基于下一个时间窗口收到的数据帧,更新缓冲区的第一缓存时长阈值。
其次,本申请实施例中,提供了一种支持两个缓冲时长区间的数据传输方法。通过上述方式,在当前缓冲的数据帧播放时长小于第一缓冲时长阈值的情况下,以原始传输速率向目的设备发送数据帧。由此,对处于不同的缓冲时长区间的数据帧将采取对应的发送策略,从而提升方案的灵活性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧率方差或帧率标准差;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体可以包括:
根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与配置时长的乘积,确定缓冲区对应的第一缓冲时长阈值。
在一个或多个实施例中,介绍了一种基于帧率方差或帧率标准差计算缓冲时长阈值的方式。由前述实施例可知,数据抖动信息包括帧率方差或帧率标准差,其中,针对一个时间窗口计算得到的帧率方差或帧率标准差越大,表示在时间窗口内的数据帧抖动越强烈。
由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,为了便于理解,请参阅图6,图6为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的一个示意图,如图所示,获取一个时间窗口内所有的数据帧,例如,获取来源于第一时间窗口内的第一数据帧序列。假设一个时间窗口为10秒,基于此,可计算每秒帧率,再基于每秒帧率计算针对该时间窗口的帧率方差或帧率标准差。示例性地,假设某个时间窗口对应的帧率方差为1.8,其前一个时间窗口对应的帧率方差为3.6。则时间窗口的帧率方差与前一个时间窗口的帧率方差相比,缩小了50%。假设相邻两个时间窗口的帧率方差偏差大于20%时表示该帧率方差为噪声,那么可剔除这个时间窗口对应的帧率方差,由此达到滤波的效果。
在帧率方差或帧率标准差无需被剔除的情况下,还需进行归一化处理。一种方式为,根据帧率方差与预设参数值之间的比值确定调节系数,即,采用如下方式计算调节系数:
Figure DEST_PATH_IMAGE001
;公式(1)
其中,
Figure 242479DEST_PATH_IMAGE002
表示调节系数。
Figure DEST_PATH_IMAGE003
表示帧率方差。
Figure 905541DEST_PATH_IMAGE004
表示预设参数值(例如,2)。预设参数值越小,表示调节系数越灵敏。
另一种方式为,根据帧率标准差与预设参数值之间的比值确定调节系数,即,采用如下方式计算调节系数:
Figure DEST_PATH_IMAGE005
;公式(2)
其中,
Figure 696780DEST_PATH_IMAGE002
表示调节系数。
Figure 510015DEST_PATH_IMAGE006
表示帧率标准差。
Figure DEST_PATH_IMAGE007
表示预设参数值(例如,1.2)。预设参数值越小,表示调节系数越灵敏。
在计算得到调节系数之后,采用如下方式计算第一缓冲时长阈值:
Figure 335888DEST_PATH_IMAGE008
;公式(3)
其中,
Figure DEST_PATH_IMAGE009
表示第一缓冲时长阈值。
Figure 576377DEST_PATH_IMAGE002
表示调节系数。
Figure 261436DEST_PATH_IMAGE010
表示配置时长(例如,500毫秒)。
可以理解的是,在上行帧率稳定的情况下,优先考虑降低延迟,此时,帧率方差或帧率标准差非常小,即,调节系数接近于0。因此,服务端的jitterbuffer中几乎不会缓存数据帧。在上行帧率不稳定的情况下,优先考虑流畅度,此时,帧率方差或帧率标准差较大,即,调节系数正相关于帧率方差或帧率标准差。因此,服务端的jitterbuffer根据抖动程度自动调节第一缓冲时长阈值和传输速率,从而改善了不同场景下内容分发网络的适应能力。
其次,本申请实施例中,提供了一种基于帧率方差或帧率标准差计算缓冲时长阈值的方式。通过上述方式,可根据帧率方差或帧率标准差自动调节第一缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在操作上较为简便,容易实现,实时处理效果较好。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,根据第一数据帧序列确定数据抖动信息,具体可以包括:
根据第一数据帧序列,统计第一时间窗口中每个时间单位对应的帧率,其中,第一时间窗口包括K个时间单位,K为大于1的整数;
根据每个时间单位对应的帧率,计算得到平均帧率;
根据每个时间单位对应的帧率以及平均帧率,计算得到帧率方差或帧率标准差。
在一个或多个实施例中,介绍了一种计算帧率方差或帧率标准差的方式。由前述实施例可知,每间隔一个时间窗口可计算对应的帧率方差或帧率标准差。下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,假设一个时间窗口为10秒,一个时间单位为1秒,即第一时间窗口包括10个时间单位。基于此,根据第一时间窗口内获取到的第一数据帧序列,可计算每个时间单位对应的帧率。例如,在一个时间单位里接收到源端设备发送的20个数据帧,则该时间单位的帧率20fps。由此,对K个时间单位对应的帧率求拼接在,即可得到平均帧率。根据每个时间单位对应的帧率以及平均帧率,可计算得到帧率方差或帧率标准差。
基于此,可采用如下方式计算帧率方差:
Figure DEST_PATH_IMAGE011
;公式(4)
其中,
Figure 471838DEST_PATH_IMAGE003
表示帧率方差。K表示时间单位的总数。
Figure 623989DEST_PATH_IMAGE012
表示第i个时间单位对应的帧率。
Figure DEST_PATH_IMAGE013
表示平均帧率。
基于此,可采用如下方式计算帧率标准差:
Figure 894433DEST_PATH_IMAGE014
;公式(5)
其中,
Figure 925843DEST_PATH_IMAGE006
表示帧率方差。K表示时间单位的总数。
Figure 549722DEST_PATH_IMAGE012
表示第i个时间单位对应的帧率。
Figure 881347DEST_PATH_IMAGE013
表示平均帧率。
再次,本申请实施例中,提供了一种计算帧率方差或帧率标准差的方式。通过上述方式,利用采集到的数据帧序列可计算帧率,由此,进一步计算帧率方差或帧率标准差,从而提升方案的可行性和可操作性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体可以包括:
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值。
在一个或多个实施例中,介绍了一种基于帧间间隔分布函数计算缓冲时长阈值的方式。由前述实施例可知,数据抖动信息包括帧间间隔分布函数,其中,基于一个时间窗口内的帧间间隔构建出帧间间隔分布函数,而帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系,因此,预设置信概率(例如,95%)对应的帧间间隔越大,表示在时间窗口内的数据帧抖动越强烈。
可以理解的是,预设置信概率通常设置为一个较大的置信概率,例如,95%,可选地,预设置信概率也可以设置为其他合理的取值,此处不做限定。需要说明的是,本申请中的帧间间隔分布函数可以采用累积分布函数(cumulative distribution function,CDF)或互补累计分布函数(complementary cumulative distribution function,CCDF)等。
由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,为了便于理解,请参阅图7,图7为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图,如图所示,首先获取一个时间窗口内所有的数据帧,例如,获取来源于第一时间窗口内的第一数据帧序列。基于第一数据帧序列中相邻两两数据帧之间的帧间间隔,生成概率分布直方图。在概率分布直方图的基础上绘制一条关于帧间间隔的概率密度函数(probability density function,PDF),对PDF求积分即可得到CDF。本申请以CDF作为帧间间隔分布函数,由此,可采用如下方式计算间隔时长:
Figure DEST_PATH_IMAGE015
;公式(6)
其中,
Figure 463638DEST_PATH_IMAGE016
表示间隔时长。F表示帧间间隔分布函数,
Figure DEST_PATH_IMAGE017
表示帧间间隔分布函数的反函数。
Figure 716765DEST_PATH_IMAGE018
表示预设置信概率,例如,95%。
在计算得到间隔时长之后,采用如下方式计算第一缓冲时长阈值:
Figure DEST_PATH_IMAGE019
;公式(7)
其中,
Figure 409914DEST_PATH_IMAGE009
表示第一缓冲时长阈值。
Figure 330465DEST_PATH_IMAGE016
表示间隔时长。
Figure 349237DEST_PATH_IMAGE020
表示配置系数(例如,1.2)。
其次,本申请实施例中,提供了一种基于帧间间隔分布函数计算缓冲时长阈值的方式。通过上述方式,利用帧间间隔分布函数推导出预设置信概率(例如,95%)对应的间隔时长,即,预测出未来两帧的间隔小于该间隔时长的概率是95%。基于间隔时长自动调节第一缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在实际应用上具有比较好的效果。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,根据第一数据帧序列确定数据抖动信息,具体可以包括:
根据第一数据帧序列,统计第一时间窗口中每个时间单位对应的至少一个最大帧间间隔,其中,第一时间窗口包括K个时间单位,K为大于1的整数;
根据每个时间单位对应的至少一个最大帧间间隔,生成概率分布直方图;
根据概率分布直方图构建帧间间隔分布函数。
在一个或多个实施例中,介绍了一种构建帧间间隔分布函数的方式。由前述实施例可知,每间隔一个时间窗口可计算对应的帧率方差或帧率标准差。下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,假设一个时间窗口为10秒,一个时间单位为1秒,即第一时间窗口包括10个时间单位。且,假设统计每个时间单位对应的前两个最大帧间间隔。基于此,请参阅表1,表1为从第一时间窗口内取出的20个最大帧间间隔。
表1
Figure DEST_PATH_IMAGE021
结合表1示出的20个最大帧间间隔,可构建如图8中(A)图示出的概率分布直方图。具体而言,记第i个数据帧的接收时间为ai,第i+1个数据帧的接收时间为ai+1,则第i个数据帧与第i+1个数据帧的帧间间隔等于ti= ai+1-ai。以此类推,可得到一个时间窗口内各个相邻数据帧之间的帧间间隔,由此,可进一步从每个时间单位内的帧间间隔筛选出至少一个最大帧间间隔。
在得到图8中(A)图示出的概率分布直方图之后,可构造帧间间隔分布函数。以帧间间隔分布函数为CDF为例,一种方式为,对指定点之前的所有直方图相加,即可得到如图8中(B)图示出的CDF。另一种方式为,在概率分布直方图内绘制得到PDF,对PDF求积分即可得到如图8中(B)图示出的CDF。
再次,本申请实施例中,提供了一种构建帧间间隔分布函数的方式。通过上述方式,基于帧间间隔分布函数反映帧间间隔与置信概率之间的关系。结合帧间间隔分布函数可推导出置信概率为预设置信概率(例如,95%)时所对应的间隔时长,从而提升方案的可行性和可操作性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体可以包括:
根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与配置时长的乘积,确定第一数值;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定第二数值;
若第一数值大于第二数值,则将第一数值作为缓冲区对应的第一缓冲时长阈值;
若第二数值大于或等于第一数值,则将第二数值作为缓冲区对应的第一缓冲时长阈值。
在一个或多个实施例中,介绍了一种确定缓冲时长阈值的方式。由前述实施例可知,数据抖动信息不仅可包括帧率方差或帧率标准差,还可以包括帧间间隔分布函数。由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,获取来源于第一时间窗口内的第一数据帧序列。由此,一方面,可计算每秒帧率,再基于每秒帧率计算针对该时间窗口的帧率方差或帧率标准差,然后结合公式(1)或公式(2)计算调节系数,最后,结合公式(3)计算得到第一数值。其中,第一数值表示一个可供选择的第一缓冲时长阈值。另一方面,基于第一数据帧序列中相邻两两数据帧之间的帧间间隔生成概率分布直方图,再基于概率分布直方图构造帧间间隔分布函数。然后结合公式(6)计算得到间隔时长,最后,结合公式(7)计算得到第二数值。其中,第二数值表示另一个可供选择的第一缓冲时长阈值。
基于此,如果第一数值大于第二数值,则将第一数值作为缓冲区对应的第一缓冲时长阈值。反之,如果第二数值大于或等于第一数值,则将第二数值作为缓冲区对应的第一缓冲时长阈值。需要说明的是,根据第一缓冲时长阈值发送数据帧的方式可参阅前述实施例,此处不做赘述。
其次,本申请实施例中,提供了一种确定缓冲时长阈值的方式。通过上述方式,基于帧率方差或帧率标准差可计算出一个待选的缓冲时长阈值,基于帧间间隔分布函数可计算出另一个待选的缓冲时长阈值。将两个待选缓冲时长阈值中的较大值作为缓冲区对应的第一缓冲时长阈值。由此,能够更好滴抵抗上行网络抖动,从而有利于应对复杂的上行网络环境。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括:
响应源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
根据第一数据帧序列确定数据抖动信息,具体可以包括:
若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括配置时长或配置系数中的至少一项,第二配置参数集合包括配置时长或配置系数中的至少一项;
第一配置参数集合包括的配置时长小于第二配置参数集合包括的配置时长;
第一配置参数集合包括的配置系数小于第二配置参数集合包括的配置系数。
在一个或多个实施例中,介绍了一种支持用户自定义数据传输的方式。由前述实施例可知,流媒体的类型多种多样,例如,电商直播、在线教育、秀场直播、新闻直播、网上电视、电台服务、体育赛事等。不同类型的流媒体往往具有不同的播放需求。通常情况下,对于直播过程中互动较多的情况,需要更低的延迟,因此,建议采用更小的配置时长或配置系数。对于直播过程中互动较少的情况,需要更高的流畅度,因此,建议采用更大的配置时长或配置系数。
具体地,下面将结合图示介绍三类直播场景。
一、电商直播场景;
示例性地,为了便于理解,请参阅图9,图9为本申请实施例中针对电商直播场景自定义数据传输模式的一个示意图,如图所示,通常,在电商直播场景中,直播方和观众之间往往具有较多的互动,因此,直播方可通过源端设备触发业务配置请求。以图9为例,业务配置请求中携带“实时业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第一配置参数集合。其中,第一配置参数集合包括配置时长或配置系数中的至少一项,例如,配置时长为500毫秒,配置系数为0.3。
二、在线教育场景;
示例性地,为了便于理解,请参阅图10,图10为本申请实施例中针对在线教育场景自定义数据传输模式的一个示意图,如图所示,通常,在在线教育场景中,直播方和观众之间的互动较多,因此,直播方可通过源端设备触发业务配置请求。以图10为例,业务配置请求中携带“实时业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第一配置参数集合。
三、秀场直播场景;
示例性地,为了便于理解,请参阅图11,图11为本申请实施例中针对秀场直播场景自定义数据传输模式的一个示意图,如图所示,通常,在秀场直播场景中,直播方和观众之间的互动较多,因此,直播方可通过源端设备触发业务配置请求。以图11为例,业务配置请求中携带“实时业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第一配置参数集合。
在上述场景中,服务端可结合第一数据帧序列以及第一配置参数集合,采用如前述实施例所描述的过程获取数据抖动信息,故此处不作赘述。
四、游戏直播场景;
示例性地,为了便于理解,请参阅图12,图12为本申请实施例中针对游戏直播场景自定义数据传输模式的一个示意图,如图所示,通常,在游戏直播场景中,直播方和观众之间的互动较少,且观众希望能够观看到清晰流畅的游戏内容。因此,直播方可通过源端设备触发业务配置请求。以图12为例,业务配置请求中携带“流畅业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第二配置参数集合。其中,第二配置参数集合包括配置时长或配置系数中的至少一项,例如,配置时长为2000毫秒,配置系数为2.0。
在上述场景中,服务端可结合第一数据帧序列以及第二配置参数集合,采用如前述实施例所描述的过程获取数据抖动信息,故此处不作赘述。
相比于流畅业务,实时业务对应的配置时长和配置系数都更小一些。需要说明的是,图9、图10、图11和图12所示的场景与相关的配置参数仅为示意,不应理解为本申请的限定。
其次,本申请实施例中,提供了一种支持用户自定义数据传输的方式。通过上述方式,用户可以根据直播场景的实际需求调整相关的配置参数,由此提升方案的灵活性和可行性。与此同时,本申请提供的数据帧缓冲方法能够支持帧级别的自适应抗视频抖动场景,因此,缓冲大小与上行推流帧率或收帧帧率形成反馈闭环,在改善视频流畅性的同时,降低了视频延迟,有助于提升直播体验,最终可提升电商带货和在线教育等直播场景的商品交易总额(gross merchandise volume,GMV)、转化率和付费率。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体可以包括:
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,其中,第二缓冲时长阈值小于第一缓冲时长阈值;
还可以包括:
若缓冲区在当前时刻对应的数据帧播放时长小于或等于第二缓冲时长阈值,则以第二传输速率向目的设备发送缓冲区对应的数据帧,或,以原始传输速率向目的设备发送缓冲区对应的数据帧,其中,第二传输速率小于原始传输速率。
在一个或多个实施例中,介绍了另一种数据传输的方法。由前述实施例可知,服务端结合数据抖动信息确定缓冲区对应的第一缓冲时长阈值和第二缓冲时长阈值,其中,第二缓冲时长阈值小于第一缓冲时长阈值。
具体地,服务端可实时获取缓冲区内当前存储的数据帧数量,按照正常播放帧率可计算缓冲区在当前时刻对应的数据帧播放时长。如果当前时刻对应的数据帧播放时长小于或等于第二缓冲时长阈值,则表示缓冲的数据帧较少,需要减慢数据帧的发送速率或保持正常的发送速率。即,以第二传输速率或原始传输速率向目的设备发送缓冲区对应的数据帧,第二传输速率小于原始传输速率。以第二传输速率为0.9倍的原始传输速率为例,假设原始传输速率为30fps,那么第二传输速率可以为27fps。
其次,本申请实施例中,提供了另一种数据传输的方法。通过上述方式,采用帧级别的数据能够获得更准确的数据帧抖动情况,由此,基于时间窗口内的数据帧抖动情况,自适应调整缓冲区的第一缓冲时长阈值和第二缓冲时长阈值。从而改善CDN对不同上行网络的适应能力,尤其降低了在传输低延迟视频时的卡顿率。经大规模测试,本申请在上行链路传输质量不发生抖动时,其延迟趋于0。而在上行链路传输质量抖动时,能自动优化缓冲长度,合理的增加部分延迟对抗上行抖动,显著降低视频播放卡顿率。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括:
若缓冲区在当前时刻对应的数据帧播放时长大于第二缓冲时长阈值,且,缓冲区在当前时刻对应的数据帧播放时长小于第一缓冲时长阈值,则以原始传输速率向目的设备发送缓冲区对应的数据帧。
在一个或多个实施例中,介绍了一种支持三个缓冲时长区间的数据传输方法。由前述实施例可知,服务端基于当前缓冲的数据帧数量和正常播放帧率,确定当前时刻对应的数据帧播放时长。记当前时刻对应的数据帧播放时长为T,记第二缓冲时长阈值为T1,记第二缓冲时长阈值为T2。基于此,如果T大于或等于T2,则进入缓冲排空模式,即,向下行的目的设备加速发送缓冲区对应的数据帧。如果T大于T1且T小于T2,则进入正常缓冲模式,即,向下行的目的设备正常发送缓冲区对应的数据帧。如果T小于或等于T1,则进入缓冲积累区间,即,向下行的目的设备减速或正常发送缓冲区对应的数据帧。其中,T1和T2正比于接收到的帧率分布,且可自适应调节。
下面将结合图示进行介绍,请参阅图13,图13为本申请实施例中自适应抗抖动缓冲的另一个流程示意图,如图所示,具体地:
在步骤B1中,服务端接收源端设备发送的数据帧。
在步骤B2中,服务端根据一个时间窗口内接收数据帧确定数据抖动信息。
在步骤B3中,服务端根据时间窗口对应的数据抖动信息,更新得到缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值。
在步骤B4中,服务端基于缓冲区在当前时刻缓冲的数据帧数量,可计算得到当前时刻的数据帧播放时长(即,T)。由此,比较当前缓冲的数据帧播放时长与缓冲时长阈值之间的大小关系。
在步骤B5中,如果数据帧播放时长小于或等于第二缓冲时长阈值(即,T≤T1),则以原始传输速率或第二传输速率向目的设备发送平滑的数据帧。
在步骤B6中,如果数据帧播放时长大于第二缓冲时长阈值,且,小于第一缓冲时长阈值(即,T1<T<T2),则以原始传输速率向目的设备发送平滑的数据帧。
在步骤B7中,如果数据帧播放时长大于或等于第一缓冲时长阈值(即,T≥T2),则以第一传输速率向目的设备发送平滑的数据帧。
在步骤B8中,结合数据帧的传输情况更新缓冲区的缓存长度,并且基于下一个时间窗口收到的数据帧,更新缓冲区的第一缓存时长阈值和第二缓存时长阈值。
再次,本申请实施例中,提供了一种支持三个缓冲时长区间的数据传输方法。通过上述方式,由于缓冲时长区间可分为正常缓冲区间、缓冲积累区间和缓冲排空区间,因此,当前缓冲的数据帧播放时长在不同的缓冲时长区间内可采用不同的传输速率。即,对处于不同的缓冲时长区间的数据帧将采取对应的发送策略,从而提升方案的灵活性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧率方差或帧率标准差;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,具体可以包括:
根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定缓冲区对应的第一缓冲时长阈值;
根据调节系数与第二配置时长的乘积,确定缓冲区对应的第二缓冲时长阈值,其中,第二配置时长小于第一配置时长。
在一个或多个实施例中,介绍了一种基于帧率方差或帧率标准差计算缓冲时长阈值的方式。由前述实施例可知,数据抖动信息包括帧率方差或帧率标准差,其中,针对一个时间窗口计算得到的帧率方差或帧率标准差越大,表示在时间窗口内的数据帧抖动越强烈。
由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,为了便于理解,请参阅图14,图14为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图,如图所示,获取一个时间窗口内所有的数据帧,例如,获取来源于第一时间窗口内的第一数据帧序列。基于此,结合同时(4)或公式(5)计算针对一个时间窗口的帧率方差或帧率标准差。再根据帧率方差或帧率标准差进行滤波处理。然后对于无需被滤除的帧率方差或帧率标准差而言,结合公式(1)或公式(2)计算调节系数。需要说明的是,具体实现方式可参阅前述实施例,此处不做赘述。
在计算得到调节系数之后,采用如下方式计算第一缓冲时长阈值:
Figure 500381DEST_PATH_IMAGE022
;公式(8)
其中,
Figure DEST_PATH_IMAGE023
表示第一缓冲时长阈值。
Figure 121855DEST_PATH_IMAGE002
表示调节系数。
Figure 772279DEST_PATH_IMAGE010
2表示第一配置时长(例如,500毫秒)。
采用如下方式计算第二缓冲时长阈值:
Figure 821007DEST_PATH_IMAGE024
;公式(9)
其中,
Figure DEST_PATH_IMAGE025
表示第二缓冲时长阈值。
Figure 924092DEST_PATH_IMAGE002
表示调节系数。
Figure 349257DEST_PATH_IMAGE010
1表示第二配置时长(例如,100毫秒)。
再次,本申请实施例中,提供了一种基于帧率方差或帧率标准差计算缓冲时长阈值的方式。通过上述方式,可根据帧率方差或帧率标准差自动调节第一缓冲时长阈值、第二缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在操作上较为简便,容易实现,实时处理效果较好。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,具体可以包括:
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值;
根据间隔时长与第二配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值,其中,第二配置系数小于第一配置系数。
在一个或多个实施例中,介绍了一种基于帧间间隔分布函数计算缓冲时长阈值的方式。由前述实施例可知,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系,因此,预设置信概率(例如,95%)对应的帧间间隔越大,表示在时间窗口内的数据帧抖动越强烈。可以理解的是,预设置信概率通常设置为一个较大的置信概率,例如,95%,此外,帧间间隔分布函数可以采用CDF或CCDF等。
由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,为了便于理解,请参阅图15,图15为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图,如图所示,首先获取一个时间窗口内所有的数据帧。然后基于第一数据帧序列中相邻两两数据帧之间的帧间间隔,构建帧间间隔分布函数。再结合公式(6)计算间隔时长。需要说明的是,具体实现方式可参阅前述实施例,此处不做赘述。
在计算得到间隔时长之后,采用如下方式计算第一缓冲时长阈值:
Figure 385346DEST_PATH_IMAGE026
;公式(10)
其中,
Figure 480341DEST_PATH_IMAGE023
表示第一缓冲时长阈值。
Figure 601881DEST_PATH_IMAGE016
表示间隔时长。
Figure DEST_PATH_IMAGE027
表示第一配置系数(例如,1.2)。
采用如下方式计算第二缓冲时长阈值:
Figure 299578DEST_PATH_IMAGE028
;公式(11)
其中,
Figure 924595DEST_PATH_IMAGE025
表示第二缓冲时长阈值。
Figure 580704DEST_PATH_IMAGE016
表示间隔时长。
Figure DEST_PATH_IMAGE029
表示第二配置系数(例如,0.2)。
再次,本申请实施例中,提供了一种基于帧间间隔分布函数计算缓冲时长阈值的方式。通过上述方式,利用帧间间隔分布函数推导出预设置信概率(例如,95%)对应的间隔时长,即,预测出未来两帧的间隔小于该间隔时长的概率是95%。基于间隔时长自动调节第一缓冲时长阈值、第二缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在实际应用上具有比较好的效果。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,具体可以包括:
根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定第一上限数值;
根据调节系数与第二配置时长的乘积,确定第一下限数值,其中,第二配置时长小于第一配置时长;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定第二上限数值;
根据间隔时长与第二配置系数的乘积,确定第二下限数值,其中,第二配置系数小于第一配置系数;
若第一上限数值大于第二上限数值,则将第一上限数值作为缓冲区对应的第一缓冲时长阈值;
若第二上限数值大于或等于第一上限数值,则将第二上限数值作为缓冲区对应的第一缓冲时长阈值;
若第一下限数值大于第二下限数值,则将第一下限数值作为缓冲区对应的第二缓冲时长阈值;
若第二下限数值大于或等于第一下限数值,则将第二下限数值作为缓冲区对应的第二缓冲时长阈值。
在一个或多个实施例中,介绍了一种确定缓冲时长阈值的方式。由前述实施例可知,数据抖动信息不仅可包括帧率方差或帧率标准差,还可以包括帧间间隔分布函数。由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,获取来源于第一时间窗口内的第一数据帧序列。由此,一方面,可计算每秒帧率,再基于每秒帧率计算针对该时间窗口的帧率方差或帧率标准差,然后结合公式(1)或公式(2)计算调节系数。基于此,结合公式(8)计算得到第一上限数值。其中,第一上限数值表示一个可供选择的第一缓冲时长阈值。结合公式(9)计算得到第一下限数值。其中,第一下限数值表示一个可供选择的第二缓冲时长阈值。另一方面,基于第一数据帧序列中相邻两两数据帧之间的帧间间隔生成概率分布直方图,再基于概率分布直方图构造帧间间隔分布函数。然后结合公式(6)计算得到间隔时长。结合公式(10)计算得到第二上限数值。其中,第二上限数值表示另一个可供选择的第一缓冲时长阈值。结合公式(11)计算得到第二下限数值。其中,第二下限数值表示另一个可供选择的第二缓冲时长阈值。
如果第一上限数值大于第二上限数值,则将第一上限数值作为缓冲区对应的第一缓冲时长阈值。反之,如果第二上限数值大于或等于第一上限数值,则将第二上限数值作为缓冲区对应的第一缓冲时长阈值。
如果第一下限数值大于第二下限数值,则将第一下限数值作为缓冲区对应的第二缓冲时长阈值。反之,如果第二下限数值大于或等于第一下限数值,则将第二下限数值作为缓冲区对应的第二缓冲时长阈值。需要说明的是,根据第一缓冲时长阈值和第二缓冲时长阈值发送数据帧的方式可参阅前述实施例,此处不做赘述。
再次,本申请实施例中,提供了一种确定缓冲时长阈值的方式。通过上述方式,基于帧率方差或帧率标准差可计算出两个待选的缓冲时长阈值,基于帧间间隔分布函数可计算出另两个待选的缓冲时长阈值。由此,从中选择出第一缓冲时长阈值和第二缓冲时长阈值。从而更好滴抵抗上行网络抖动,有利于应对复杂的上行网络环境。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,还可以包括:
响应源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
根据第一数据帧序列确定数据抖动信息,具体可以包括:
若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项,第二配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项;
第一配置参数集合包括的第一配置时长小于第二配置参数集合包括的第一配置时长;
第一配置参数集合包括的第二配置时长小于第二配置参数集合包括的第二配置时长;
第一配置参数集合包括的第一配置系数小于第二配置参数集合包括的第一配置系数;
第一配置参数集合包括的第二配置系数小于第二配置参数集合包括的第二配置系数。
在一个或多个实施例中,介绍了一种支持用户自定义数据传输的方式。由前述实施例可知,流媒体的类型多种多样,不同类型的流媒体往往具有不同的播放需求。通常情况下,对于直播过程中互动较多的情况,需要更低的延迟。对于直播过程中互动较少的情况,需要更高的流畅度。
具体地,下面将结合图示介绍三类直播场景。
一、电商直播场景;
示例性地,为了便于理解,请参阅图16,图16为本申请实施例中针对电商直播场景自定义数据传输模式的另一个示意图,如图所示,通常,在电商直播场景中,直播方和观众之间往往具有较多的互动,因此,直播方可通过源端设备触发业务配置请求。以图16为例,业务配置请求中携带“实时业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第一配置参数集合。其中,第一配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项,例如,第一配置时长为500毫秒,第二配置时长为100毫秒,第一配置系数为0.3,第二配置系数为0.05。
二、在线教育场景;
示例性地,为了便于理解,请参阅图17,图17为本申请实施例中针对在线教育场景自定义数据传输模式的另一个示意图,如图所示,通常,在在线教育场景中,直播方和观众之间的互动较多,因此,直播方可通过源端设备触发业务配置请求。以图10为例,业务配置请求中携带“实时业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第一配置参数集合。
三、秀场直播场景;
示例性地,为了便于理解,请参阅图18,图18为本申请实施例中针对秀场直播场景自定义数据传输模式的另一个示意图,如图所示,通常,在秀场直播场景中,直播方和观众之间的互动较多,因此,直播方可通过源端设备触发业务配置请求。以图11为例,业务配置请求中携带“实时业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第一配置参数集合。
在上述场景中,服务端可结合第一数据帧序列以及第一配置参数集合,采用如前述实施例所描述的过程获取数据抖动信息,故此处不作赘述。
四、游戏直播场景;
示例性地,为了便于理解,请参阅图19,图19为本申请实施例中针对游戏直播场景自定义数据传输模式的另一个示意图,如图所示,通常,在游戏直播场景中,直播方和观众之间的互动较少,且观众希望能够观看到清晰流畅的游戏内容。因此,直播方可通过源端设备触发业务配置请求。以图19为例,业务配置请求中携带“流畅业务”所对应的业务类型标识。基于此,服务端基于业务类型标识,可采用第二配置参数集合。其中,第二配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项,例如,第一配置时长为2000毫秒,第二配置时长为200毫秒,第一配置系数为2.0,第二配置系数为0.5。
在上述场景中,服务端可结合第一数据帧序列以及第二配置参数集合,采用如前述实施例所描述的过程获取数据抖动信息,故此处不作赘述。
相比于流畅业务,实时业务对应的配置时长和配置系数都更小一些。需要说明的是,图16、图17、图18和图19所示的场景与相关的配置参数仅为示意,不应理解为本申请的限定。
再次,本申请实施例中,提供了一种支持用户自定义数据传输的方式。通过上述方式,用户可以根据直播场景的实际需求调整相关的配置参数,由此提升方案的灵活性和可行性。与此同时,本申请提供的数据帧缓冲方法能够支持帧级别的自适应抗视频抖动场景,因此,缓冲大小与上行推流帧率或收帧帧率形成反馈闭环,在改善视频流畅性的同时,降低了视频延迟,有助于提升直播体验,最终可提升电商带货和在线教育等直播场景的GMV、转化率和付费率。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,接收源端设备在第一时间窗口内发送的第一数据帧序列,具体可以包括:
接收到源端设备发送的当前数据帧;
根据当前数据帧获取第一时间窗口内的第一数据帧序列,其中,第一数据帧序列包括当前数据帧。
在一个或多个实施例中,介绍了一种更新时间窗口的方式。由前述实施例可知,由于每间隔一个时间窗口可调节一次缓冲区的缓冲时长阈值,因此,时间窗口的更新反映了缓冲时长阈值的更新频率。
具体地,为了便于理解,请参阅图20,图20为本申请实施例中相邻两个时间窗口的一个示意图,如图所示,假设第二时间窗口为“时间窗口2”,在第二时间窗口内包括7个数据帧,这7个数据帧构成第二数据帧序列。当服务端接收到源端设备发送的当前数据帧时,服务端更新时间窗口,即得到“时间窗口1”。假设“时间窗口1”为第一时间窗口,则在第一时间窗口内也包括7个数据帧,这7个数据帧构成第一数据帧序列,且,该第一数据帧序列包括当前数据帧(即,图示中灰色的1个数据帧)。
其次,本申请实施例中,提供了一种更新时间窗口的方式。通过上述方式,服务端每接收到源端设备发送的一个数据帧,即可更新时间窗口,再基于时间窗口更新缓冲时长阈值。由此,提升缓冲时长阈值的更新效率,从而能够更好地应对上行网络的抖动。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,接收源端设备在第一时间窗口内发送的第一数据帧序列,具体可以包括:
在接收到源端设备在第二时间窗口内发送的第二数据帧序列之后,接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第二时间窗口为第一时间窗口相邻的前一个时间窗口,且,第二数据帧序列包括的数据帧与第一数据帧序列包括的数据帧不重复。
在一个或多个实施例中,介绍了一种更新时间窗口的方式。由前述实施例可知,由于每间隔一个时间窗口可调节一次缓冲区的缓冲时长阈值,因此,时间窗口的更新反映了缓冲时长阈值的更新频率。
具体地,为了便于理解,请参阅图21,图21为本申请实施例中相邻两个时间窗口的另一个示意图,如图所示,假设第二时间窗口为“时间窗口2”,在第二时间窗口内包括7个数据帧,这7个数据帧构成第二数据帧序列。在服务端接收到源端设备在第二时间窗口内发送的第二数据帧序列之后,开启下一个时间窗口的计时,例如,每10秒设置一个时间窗。基于此,服务端可每隔10秒更新一次时间窗口。以得到“时间窗口1”为例,该“时间窗口1”可以为第一时间窗口,其中,第一时间窗口内包括6个数据帧(即,图示中灰色的6个数据帧),这6个数据帧构成第一数据帧序列,且,第一数据帧序列包括的数据帧与第二数据帧序列包括的数据帧不重复。
其次,本申请实施例中,提供了一种更新时间窗口的方式。通过上述方式,服务端每间隔一定时间即可更新一次时间窗口,再基于时间窗口更新缓冲时长阈值。由此,能够周期性地应对上行网络的抖动。
下面对本申请中的数据传输装置进行详细描述,请参阅图22,图22为本申请实施例中数据传输装置的一个实施例示意图,数据传输装置30包括:
接收模块310,用于接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第一数据帧序列包括至少两个数据帧;
确定模块320,用于根据第一数据帧序列确定数据抖动信息,其中,数据抖动信息用于描述时间窗口内的数据帧抖动情况;
确定模块320,还用于根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值;
传输模块330,用于若缓冲区在当前时刻对应的数据帧播放时长大于或等于第一缓冲时长阈值,则以第一传输速率向目的设备发送缓冲区对应的数据帧,其中,第一传输速率大于原始传输速率。
本申请实施例中,提供了一种数据传输装置,采用上述装置,采用帧级别的数据能够获得更准确的数据帧抖动情况,由此,基于时间窗口内的数据帧抖动情况,自适应调整缓冲区的第一缓冲时长阈值。在当前缓冲的数据帧播放时长大于第一缓冲时长阈值的情况下,会加快数据帧的传输速率,从而可以有效地避免内容流出现高延迟,能够更好地满足低延迟视频业务的需求。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
传输模块330,还用于若缓冲区在当前时刻对应的数据帧播放时长小于第一缓冲时长阈值,则以原始传输速率向目的设备发送缓冲区对应的数据帧。
本申请实施例中,提供了一种数据传输装置,采用上述装置,在当前缓冲的数据帧播放时长小于第一缓冲时长阈值的情况下,以原始传输速率向目的设备发送数据帧。由此,对处于不同的缓冲时长区间的数据帧将采取对应的发送策略,从而提升方案的灵活性。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧率方差或帧率标准差;
确定模块320,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与配置时长的乘积,确定缓冲区对应的第一缓冲时长阈值。
本申请实施例中,提供了一种数据传输装置,采用上述装置,可根据帧率方差或帧率标准差自动调节第一缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在操作上较为简便,容易实现,实时处理效果较好。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
确定模块320,具体用于根据第一数据帧序列,统计第一时间窗口中每个时间单位对应的帧率,其中,第一时间窗口包括K个时间单位,K为大于1的整数;
根据每个时间单位对应的帧率,计算得到平均帧率;
根据每个时间单位对应的帧率以及平均帧率,计算得到帧率方差或帧率标准差。
本申请实施例中,提供了一种数据传输装置,采用上述装置,利用采集到的数据帧序列可计算帧率,由此,进一步计算帧率方差或帧率标准差,从而提升方案的可行性和可操作性。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块320,具体用于根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值。
本申请实施例中,提供了一种数据传输装置,采用上述装置,利用帧间间隔分布函数推导出预设置信概率(例如,95%)对应的间隔时长,即,预测出未来两帧的间隔小于该间隔时长的概率是95%。基于间隔时长自动调节第一缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在实际应用上具有比较好的效果。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
确定模块320,具体用于根据第一数据帧序列,统计第一时间窗口中每个时间单位对应的至少一个最大帧间间隔,其中,第一时间窗口包括K个时间单位,K为大于1的整数;
根据每个时间单位对应的至少一个最大帧间间隔,生成概率分布直方图;
根据概率分布直方图构建帧间间隔分布函数。
本申请实施例中,提供了一种数据传输装置,采用上述装置,基于帧间间隔分布函数反映帧间间隔与置信概率之间的关系。结合帧间间隔分布函数可推导出置信概率为预设置信概率(例如,95%)时所对应的间隔时长,从而提升方案的可行性和可操作性。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块320,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与配置时长的乘积,确定第一数值;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定第二数值;
若第一数值大于第二数值,则将第一数值作为缓冲区对应的第一缓冲时长阈值;
若第二数值大于或等于第一数值,则将第二数值作为缓冲区对应的第一缓冲时长阈值。
本申请实施例中,提供了一种数据传输装置,采用上述装置,基于帧率方差或帧率标准差可计算出一个待选的缓冲时长阈值,基于帧间间隔分布函数可计算出另一个待选的缓冲时长阈值。将两个待选缓冲时长阈值中的较大值作为缓冲区对应的第一缓冲时长阈值。由此,能够更好滴抵抗上行网络抖动,从而有利于应对复杂的上行网络环境。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据传输装置30还包括响应模块340;
响应模块340,用于响应源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
确定模块320,具体用于若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括配置时长或配置系数中的至少一项,第二配置参数集合包括配置时长或配置系数中的至少一项;
第一配置参数集合包括的配置时长小于第二配置参数集合包括的配置时长;
第一配置参数集合包括的配置系数小于第二配置参数集合包括的配置系数。
本申请实施例中,提供了一种数据传输装置,采用上述装置,用户可以根据直播场景的实际需求调整相关的配置参数,由此提升方案的灵活性和可行性。与此同时,本申请提供的数据帧缓冲方法能够支持帧级别的自适应抗视频抖动场景,因此,缓冲大小与上行推流帧率或收帧帧率形成反馈闭环,在改善视频流畅性的同时,降低了视频延迟,有助于提升直播体验,最终可提升电商带货和在线教育等直播场景的GMV、转化率和付费率。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
确定模块320,具体用于根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,其中,第二缓冲时长阈值小于第一缓冲时长阈值;
传输模块330,还用于若缓冲区在当前时刻对应的数据帧播放时长小于或等于第二缓冲时长阈值,则以第二传输速率向目的设备发送缓冲区对应的数据帧,或,以原始传输速率向目的设备发送缓冲区对应的数据帧,其中,第二传输速率小于原始传输速率。
本申请实施例中,提供了一种数据传输装置,采用上述装置,采用帧级别的数据能够获得更准确的数据帧抖动情况,由此,基于时间窗口内的数据帧抖动情况,自适应调整缓冲区的第一缓冲时长阈值和第二缓冲时长阈值。从而改善CDN对不同上行网络的适应能力,尤其降低了在传输低延迟视频时的卡顿率。经大规模测试,本申请在上行链路传输质量不发生抖动时,其延迟趋于0。而在上行链路传输质量抖动时,能自动优化缓冲长度,合理的增加部分延迟对抗上行抖动,显著降低视频播放卡顿率。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
传输模块330,还用于若缓冲区在当前时刻对应的数据帧播放时长大于第二缓冲时长阈值,且,缓冲区在当前时刻对应的数据帧播放时长小于第一缓冲时长阈值,则以原始传输速率向目的设备发送缓冲区对应的数据帧。
本申请实施例中,提供了一种数据传输装置,采用上述装置,由于缓冲时长区间可分为正常缓冲区间、缓冲积累区间和缓冲排空区间,因此,当前缓冲的数据帧播放时长在不同的缓冲时长区间内可采用不同的传输速率。即,对处于不同的缓冲时长区间的数据帧将采取对应的发送策略,从而提升方案的灵活性。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧率方差或帧率标准差;
确定模块320,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定缓冲区对应的第一缓冲时长阈值;
根据调节系数与第二配置时长的乘积,确定缓冲区对应的第二缓冲时长阈值,其中,第二配置时长小于第一配置时长。
本申请实施例中,提供了一种数据传输装置,采用上述装置,可根据帧率方差或帧率标准差自动调节第一缓冲时长阈值、第二缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在操作上较为简便,容易实现,实时处理效果较好。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块320,具体用于根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值;
根据间隔时长与第二配置系数的乘积,确定缓冲区对应的第一缓冲时长阈值,其中,第二配置系数小于第一配置系数。
本申请实施例中,提供了一种数据传输装置,采用上述装置,利用帧间间隔分布函数推导出预设置信概率(例如,95%)对应的间隔时长,即,预测出未来两帧的间隔小于该间隔时长的概率是95%。基于间隔时长自动调节第一缓冲时长阈值、第二缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在实际应用上具有比较好的效果。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块320,具体用于根据帧率方差与预设参数值之间的比值确定调节系数,或,根据帧率标准差与预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定第一上限数值;
根据调节系数与第二配置时长的乘积,确定第一下限数值,其中,第二配置时长小于第一配置时长;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定第二上限数值;
根据间隔时长与第二配置系数的乘积,确定第二下限数值,其中,第二配置系数小于第一配置系数;
若第一上限数值大于第二上限数值,则将第一上限数值作为缓冲区对应的第一缓冲时长阈值;
若第二上限数值大于或等于第一上限数值,则将第二上限数值作为缓冲区对应的第一缓冲时长阈值;
若第一下限数值大于第二下限数值,则将第一下限数值作为缓冲区对应的第二缓冲时长阈值;
若第二下限数值大于或等于第一下限数值,则将第二下限数值作为缓冲区对应的第二缓冲时长阈值。
本申请实施例中,提供了一种数据传输装置,采用上述装置,基于帧率方差或帧率标准差可计算出两个待选的缓冲时长阈值,基于帧间间隔分布函数可计算出另两个待选的缓冲时长阈值。由此,从中选择出第一缓冲时长阈值和第二缓冲时长阈值。从而更好滴抵抗上行网络抖动,有利于应对复杂的上行网络环境。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
响应模块340,还用于响应源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
确定模块320,具体用于若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项,第二配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项;
第一配置参数集合包括的第一配置时长小于第二配置参数集合包括的第一配置时长;
第一配置参数集合包括的第二配置时长小于第二配置参数集合包括的第二配置时长;
第一配置参数集合包括的第一配置系数小于第二配置参数集合包括的第一配置系数;
第一配置参数集合包括的第二配置系数小于第二配置参数集合包括的第二配置系数。
本申请实施例中,提供了一种数据传输装置,采用上述装置,用户可以根据直播场景的实际需求调整相关的配置参数,由此提升方案的灵活性和可行性。与此同时,本申请提供的数据帧缓冲方法能够支持帧级别的自适应抗视频抖动场景,因此,缓冲大小与上行推流帧率或收帧帧率形成反馈闭环,在改善视频流畅性的同时,降低了视频延迟,有助于提升直播体验,最终可提升电商带货和在线教育等直播场景的GMV、转化率和付费率。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
接收模块310,具体用于接收到源端设备发送的当前数据帧;
根据当前数据帧获取第一时间窗口内的第一数据帧序列,其中,第一数据帧序列包括当前数据帧。
本申请实施例中,提供了一种数据传输装置,采用上述装置,服务端每接收到源端设备发送的一个数据帧,即可更新时间窗口,再基于时间窗口更新缓冲时长阈值。由此,提升缓冲时长阈值的更新效率,从而能够更好地应对上行网络的抖动。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
接收模块310,具体用于在接收到源端设备在第二时间窗口内发送的第二数据帧序列之后,接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第二时间窗口为第一时间窗口相邻的前一个时间窗口,且,第二数据帧序列包括的数据帧与第一数据帧序列包括的数据帧不重复。
本申请实施例中,提供了一种数据传输装置,采用上述装置,服务端每间隔一定时间即可更新一次时间窗口,再基于时间窗口更新缓冲时长阈值。由此,能够周期性地应对上行网络的抖动。
图23是本申请实施例提供的一种服务器结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在服务器400上执行存储介质430中的一系列指令操作。
服务器400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图23所示的服务器结构。
本申请实施例中还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时,实现前述各个实施例描述方法的步骤。
本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现前述各个实施例描述方法的步骤。
本申请实施例中还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现前述各个实施例描述方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是服务器或终端等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (22)

1.一种数据传输的方法,其特征在于,包括:
接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;
根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;所述数据抖动信息包括帧率方差或帧率标准差;
根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体包括:根据所述帧率方差与预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与预设参数值之间的比值确定调节系数;根据所述调节系数与配置时长的乘积,确定所述缓冲区对应的所述第一缓冲时长阈值;
若所述缓冲区在当前时刻对应的数据帧播放时长大于或等于所述第一缓冲时长阈值,则以第一传输速率向目的设备发送所述缓冲区对应的数据帧,其中,所述第一传输速率大于原始传输速率。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述缓冲区在所述当前时刻对应的数据帧播放时长小于所述第一缓冲时长阈值,则以所述原始传输速率向所述目的设备发送所述缓冲区对应的数据帧。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据帧序列确定数据抖动信息,包括:
根据所述第一数据帧序列,统计所述第一时间窗口中每个时间单位对应的帧率,其中,所述第一时间窗口包括K个时间单位,所述K为大于1的整数;
根据所述每个时间单位对应的帧率,计算得到平均帧率;
根据所述每个时间单位对应的帧率以及所述平均帧率,计算得到所述帧率方差或所述帧率标准差。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
响应所述源端设备发送的业务配置请求,其中,所述业务配置请求携带业务类型标识;
所述根据所述第一数据帧序列确定数据抖动信息,包括:
若所述业务类型标识指示实时类型业务,则根据所述第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若所述业务类型标识指示流畅类型业务,则根据所述第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,所述第一配置参数集合包括配置时长或配置系数中的至少一项,所述第二配置参数集合包括配置时长或配置系数中的至少一项;
所述第一配置参数集合包括的配置时长小于所述第二配置参数集合包括的配置时长;
所述第一配置参数集合包括的配置系数小于所述第二配置参数集合包括的配置系数。
5.根据权利要求1所述的方法,其特征在于,所述根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,包括:
根据所述数据抖动信息确定缓冲区对应的所述第一缓冲时长阈值以及第二缓冲时长阈值,其中,所述第二缓冲时长阈值小于所述第一缓冲时长阈值;
所述方法还包括:
若所述缓冲区在所述当前时刻对应的数据帧播放时长小于或等于所述第二缓冲时长阈值,则以第二传输速率向所述目的设备发送所述缓冲区对应的数据帧,或,以所述原始传输速率向所述目的设备发送所述缓冲区对应的数据帧,其中,所述第二传输速率小于所述原始传输速率。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述缓冲区在所述当前时刻对应的数据帧播放时长大于所述第二缓冲时长阈值,且,所述缓冲区在所述当前时刻对应的数据帧播放时长小于所述第一缓冲时长阈值,则以所述原始传输速率向所述目的设备发送所述缓冲区对应的数据帧。
7.根据权利要求5所述的方法,其特征在于,
所述根据所述数据抖动信息确定缓冲区对应的所述第一缓冲时长阈值以及第二缓冲时长阈值,包括:
根据所述帧率方差与预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与预设参数值之间的比值确定调节系数;
根据所述调节系数与第一配置时长的乘积,确定所述缓冲区对应的所述第一缓冲时长阈值;
根据所述调节系数与第二配置时长的乘积,确定所述缓冲区对应的所述第二缓冲时长阈值,其中,所述第二配置时长小于所述第一配置时长。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述方法还包括:
响应所述源端设备发送的业务配置请求,其中,所述业务配置请求携带业务类型标识;
所述根据所述第一数据帧序列确定数据抖动信息,包括:
若所述业务类型标识指示实时类型业务,则根据所述第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若所述业务类型标识指示流畅类型业务,则根据所述第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,所述第一配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项,所述第二配置参数集合包括第一配置时长、第二配置时长、第一配置系数或第二配置系数中的至少一项;
所述第一配置参数集合包括的第一配置时长小于所述第二配置参数集合包括的第一配置时长;
所述第一配置参数集合包括的第二配置时长小于所述第二配置参数集合包括的第二配置时长;
所述第一配置参数集合包括的第一配置系数小于所述第二配置参数集合包括的第一配置系数;
所述第一配置参数集合包括的第二配置系数小于所述第二配置参数集合包括的第二配置系数。
9.根据权利要求1所述的方法,其特征在于,所述接收源端设备在第一时间窗口内发送的第一数据帧序列,包括:
接收到所述源端设备发送的当前数据帧;
根据所述当前数据帧获取所述第一时间窗口内的所述第一数据帧序列,其中,所述第一数据帧序列包括所述当前数据帧。
10.根据权利要求1所述的方法,其特征在于,所述接收源端设备在第一时间窗口内发送的第一数据帧序列,包括
在接收到所述源端设备在第二时间窗口内发送的第二数据帧序列之后,接收所述源端设备在所述第一时间窗口内发送的所述第一数据帧序列,其中,所述第二时间窗口为所述第一时间窗口相邻的前一个时间窗口,且,所述第二数据帧序列包括的数据帧与所述第一数据帧序列包括的数据帧不重复。
11.一种数据传输的方法,其特征在于,包括:
接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;
根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体包括:根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与配置系数的乘积,确定所述缓冲区对应的所述第一缓冲时长阈值;
若所述缓冲区在当前时刻对应的数据帧播放时长大于或等于所述第一缓冲时长阈值,则以第一传输速率向目的设备发送所述缓冲区对应的数据帧,其中,所述第一传输速率大于原始传输速率。
12.根据权利要求11所述的方法,其特征在于,所述根据所述第一数据帧序列确定数据抖动信息,包括:
根据所述第一数据帧序列,统计所述第一时间窗口中每个时间单位对应的至少一个最大帧间间隔,其中,所述第一时间窗口包括K个时间单位,所述K为大于1的整数;
根据所述每个时间单位对应的至少一个最大帧间间隔,生成概率分布直方图;
根据所述概率分布直方图构建所述帧间间隔分布函数。
13.根据权利要求11所述的方法,其特征在于,所述根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,包括:
根据所述数据抖动信息确定缓冲区对应的所述第一缓冲时长阈值以及第二缓冲时长阈值,其中,所述第二缓冲时长阈值小于所述第一缓冲时长阈值;
所述方法还包括:
若所述缓冲区在所述当前时刻对应的数据帧播放时长小于或等于所述第二缓冲时长阈值,则以第二传输速率向所述目的设备发送所述缓冲区对应的数据帧,或,以所述原始传输速率向所述目的设备发送所述缓冲区对应的数据帧,其中,所述第二传输速率小于所述原始传输速率.
14.根据权利要求13所述的方法,其特征在于,所述根据所述数据抖动信息确定缓冲区对应的所述第一缓冲时长阈值以及第二缓冲时长阈值,包括:
根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据所述间隔时长与第一配置系数的乘积,确定所述缓冲区对应的所述第一缓冲时长阈值;
根据所述间隔时长与第二配置系数的乘积,确定所述缓冲区对应的所述第一缓冲时长阈值,其中,所述第二配置系数小于所述第一配置系数。
15.一种数据传输的方法,其特征在于,包括:
接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;
根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;所述数据抖动信息包括帧率方差或帧率标准差,且,所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体包括:根据所述帧率方差与预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与预设参数值之间的比值确定调节系数;根据所述调节系数与配置时长的乘积,确定第一数值;根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与配置系数的乘积,确定第二数值;若所述第一数值大于所述第二数值,则将所述第一数值作为所述缓冲区对应的所述第一缓冲时长阈值;若所述第二数值大于或等于所述第一数值,则将所述第二数值作为所述缓冲区对应的所述第一缓冲时长阈值;
若所述缓冲区在当前时刻对应的数据帧播放时长大于或等于所述第一缓冲时长阈值,则以第一传输速率向目的设备发送所述缓冲区对应的数据帧,其中,所述第一传输速率大于原始传输速率。
16.根据权利要求15所述的方法,其特征在于,所述根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,包括:
根据所述数据抖动信息确定缓冲区对应的所述第一缓冲时长阈值以及第二缓冲时长阈值,其中,所述第二缓冲时长阈值小于所述第一缓冲时长阈值;
所述方法还包括:
若所述缓冲区在所述当前时刻对应的数据帧播放时长小于或等于所述第二缓冲时长阈值,则以第二传输速率向所述目的设备发送所述缓冲区对应的数据帧,或,以所述原始传输速率向所述目的设备发送所述缓冲区对应的数据帧,其中,所述第二传输速率小于所述原始传输速率。
17.根据权利要求16所述的方法,其特征在于,所述根据所述数据抖动信息确定缓冲区对应的所述第一缓冲时长阈值以及第二缓冲时长阈值,包括:
根据所述帧率方差与预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与预设参数值之间的比值确定调节系数;
根据所述调节系数与第一配置时长的乘积,确定第一上限数值;
根据所述调节系数与第二配置时长的乘积,确定第一下限数值,其中,所述第二配置时长小于所述第一配置时长;
根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据所述间隔时长与第一配置系数的乘积,确定第二上限数值;
根据所述间隔时长与第二配置系数的乘积,确定第二下限数值,其中,所述第二配置系数小于所述第一配置系数;
若所述第一上限数值大于所述第二上限数值,则将所述第一上限数值作为所述缓冲区对应的所述第一缓冲时长阈值;
若所述第二上限数值大于或等于所述第一上限数值,则将所述第二上限数值作为所述缓冲区对应的所述第一缓冲时长阈值;
若所述第一下限数值大于所述第二下限数值,则将所述第一下限数值作为所述缓冲区对应的所述第二缓冲时长阈值;
若所述第二下限数值大于或等于所述第一下限数值,则将所述第二下限数值作为所述缓冲区对应的所述第二缓冲时长阈值。
18.一种数据传输装置,其特征在于,包括:
接收模块,用于接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;
确定模块,用于根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;所述数据抖动信息包括帧率方差或帧率标准差;
所述确定模块,还用于根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体包括:根据所述帧率方差与预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与预设参数值之间的比值确定调节系数;根据所述调节系数与配置时长的乘积,确定所述缓冲区对应的所述第一缓冲时长阈值;
传输模块,用于若所述缓冲区在当前时刻对应的数据帧播放时长大于或等于所述第一缓冲时长阈值,则以第一传输速率向目的设备发送所述缓冲区对应的数据帧,其中,所述第一传输速率大于原始传输速率。
19.一种数据传输装置,其特征在于,包括:
接收模块,用于接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;
确定模块,用于根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
所述确定模块,还用于根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体包括:根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与配置系数的乘积,确定所述缓冲区对应的所述第一缓冲时长阈值;
传输模块,用于若所述缓冲区在当前时刻对应的数据帧播放时长大于或等于所述第一缓冲时长阈值,则以第一传输速率向目的设备发送所述缓冲区对应的数据帧,其中,所述第一传输速率大于原始传输速率。
20.一种数据传输装置,其特征在于,包括:
接收模块,用于接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;
确定模块,用于根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;所述数据抖动信息包括帧率方差或帧率标准差,且,所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
所述确定模块,还用于根据所述数据抖动信息确定缓冲区对应的第一缓冲时长阈值,具体包括:根据所述帧率方差与预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与预设参数值之间的比值确定调节系数;根据所述调节系数与配置时长的乘积,确定第一数值;根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与配置系数的乘积,确定第二数值;若所述第一数值大于所述第二数值,则将所述第一数值作为所述缓冲区对应的所述第一缓冲时长阈值;若所述第二数值大于或等于所述第一数值,则将所述第二数值作为所述缓冲区对应的所述第一缓冲时长阈值;
传输模块,用于若所述缓冲区在当前时刻对应的数据帧播放时长大于或等于所述第一缓冲时长阈值,则以第一传输速率向目的设备发送所述缓冲区对应的数据帧,其中,所述第一传输速率大于原始传输速率。
21.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至17中任一项所述方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至17中任一项所述方法的步骤。
CN202210900542.9A 2022-07-28 2022-07-28 一种数据传输的方法、相关装置、设备以及存储介质 Active CN114979091B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210900542.9A CN114979091B (zh) 2022-07-28 2022-07-28 一种数据传输的方法、相关装置、设备以及存储介质
PCT/CN2023/094411 WO2024021777A1 (zh) 2022-07-28 2023-05-16 一种数据传输的方法、相关装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210900542.9A CN114979091B (zh) 2022-07-28 2022-07-28 一种数据传输的方法、相关装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN114979091A CN114979091A (zh) 2022-08-30
CN114979091B true CN114979091B (zh) 2022-11-11

Family

ID=82970012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210900542.9A Active CN114979091B (zh) 2022-07-28 2022-07-28 一种数据传输的方法、相关装置、设备以及存储介质

Country Status (2)

Country Link
CN (1) CN114979091B (zh)
WO (1) WO2024021777A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979091B (zh) * 2022-07-28 2022-11-11 腾讯科技(深圳)有限公司 一种数据传输的方法、相关装置、设备以及存储介质
CN117896314B (zh) * 2024-03-07 2024-05-31 沈阳灵秀科技有限责任公司 一种erp数据传输方法、系统及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002354A (zh) * 2012-12-14 2013-03-27 四川九洲电器集团有限责任公司 一种消除视频数据传输网络抖动的方法及系统
CN104915966A (zh) * 2015-05-08 2015-09-16 上海交通大学 基于卡尔曼滤波的帧率上变换运动估计方法及系统
CN109168083A (zh) * 2018-10-23 2019-01-08 青岛海信电器股份有限公司 一种流媒体实时播放方法及装置
WO2020125153A1 (zh) * 2018-12-20 2020-06-25 南京杰迈视讯科技有限公司 一种基于流媒体技术的网络视频流畅播放控制方法
CN112702649A (zh) * 2019-10-22 2021-04-23 高新兴科技集团股份有限公司 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备
CN112822502A (zh) * 2020-12-28 2021-05-18 阿里巴巴(中国)有限公司 直播去抖动的智能缓存与直播方法、设备及存储介质
CN113115080A (zh) * 2021-04-08 2021-07-13 刘文平 移动媒体间实时视频音频高精度同步平台
CN113350782A (zh) * 2021-06-15 2021-09-07 网易(杭州)网络有限公司 处理网络游戏异常的方法、装置、存储介质及计算机设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334219B1 (en) * 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
CN101110661B (zh) * 2007-07-23 2010-12-08 中兴通讯股份有限公司 电路仿真系统的抖动缓存调整方法
US9674426B2 (en) * 2015-06-07 2017-06-06 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
CN105554019B (zh) * 2016-01-08 2018-07-24 全时云商务服务股份有限公司 一种音频去抖动系统和方法
CN107529097A (zh) * 2016-06-20 2017-12-29 北京信威通信技术股份有限公司 一种自适应调整视频缓冲大小的方法及装置
CN112752109B (zh) * 2019-10-30 2022-05-17 上海哔哩哔哩科技有限公司 视频播放控制方法和系统
US20230300090A1 (en) * 2020-07-20 2023-09-21 Google Llc Adaptive resizing of audio jitter buffer based on current network conditions
CN112752115B (zh) * 2020-12-29 2023-09-08 广州博冠信息科技有限公司 直播数据传输方法、装置、设备及介质
CN114979091B (zh) * 2022-07-28 2022-11-11 腾讯科技(深圳)有限公司 一种数据传输的方法、相关装置、设备以及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002354A (zh) * 2012-12-14 2013-03-27 四川九洲电器集团有限责任公司 一种消除视频数据传输网络抖动的方法及系统
CN104915966A (zh) * 2015-05-08 2015-09-16 上海交通大学 基于卡尔曼滤波的帧率上变换运动估计方法及系统
CN109168083A (zh) * 2018-10-23 2019-01-08 青岛海信电器股份有限公司 一种流媒体实时播放方法及装置
WO2020125153A1 (zh) * 2018-12-20 2020-06-25 南京杰迈视讯科技有限公司 一种基于流媒体技术的网络视频流畅播放控制方法
CN112702649A (zh) * 2019-10-22 2021-04-23 高新兴科技集团股份有限公司 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备
CN112822502A (zh) * 2020-12-28 2021-05-18 阿里巴巴(中国)有限公司 直播去抖动的智能缓存与直播方法、设备及存储介质
CN113115080A (zh) * 2021-04-08 2021-07-13 刘文平 移动媒体间实时视频音频高精度同步平台
CN113350782A (zh) * 2021-06-15 2021-09-07 网易(杭州)网络有限公司 处理网络游戏异常的方法、装置、存储介质及计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Effect of delay and buffering on jitter-free streaming over random VBR channels;G Liang,B Liang;《IEEE》;20181003;全文 *
面向用户体验的OTT视频流业务质量评估方法;王瑞一;《中国优秀硕士学位论文全文数据库信息科技辑》;20180430;全文 *

Also Published As

Publication number Publication date
CN114979091A (zh) 2022-08-30
WO2024021777A1 (zh) 2024-02-01

Similar Documents

Publication Publication Date Title
CN114979091B (zh) 一种数据传输的方法、相关装置、设备以及存储介质
EP3210385B1 (en) Dynamic programming across multiple streams
EP2430795B1 (en) Method and devices for fast channel change handling of late multicast join
US9521178B1 (en) Dynamic bandwidth thresholds
Karagkioules et al. Online learning for low-latency adaptive streaming
EP3172862B1 (en) Joint quality management across multiple streams
US9178929B2 (en) Client-side class-of-service-based bandwidth management in over-the-top video delivery
US10887363B1 (en) Streaming decision in the cloud
US11356712B2 (en) Minimizing stall duration tail probability in over-the-top streaming systems
US20220385989A1 (en) Video playing control method and system
US20170142029A1 (en) Method for data rate adaption in online media services, electronic device, and non-transitory computer-readable storage medium
US20060005224A1 (en) Technique for cooperative distribution of video content
CN106993014A (zh) 缓存内容的调整方法、装置及系统
JP2020507235A (ja) データバッファリング方法、ネットワーク機器、及び記憶媒体
CN114189705A (zh) 直播卡顿处理方法及系统
CN110445723A (zh) 一种网络数据调度方法及边缘节点
CN104396269A (zh) 动态插播过渡
CN101090369B (zh) 一种在流媒体系统中控制数据包发送速率的方法
US10931984B2 (en) Consolidating content streams to conserve bandwidth
CN105306970B (zh) 一种流媒体直播发送速度的控制方法及装置
CN112771875A (zh) 在保持视频质量的同时提高视频比特率
EP2747357B1 (en) Robust content-based solution for dynamically optimizing multi-user wireless multimedia transmission
CN114416013A (zh) 数据发送方法、装置、电子设备及计算机可读存储介质
US11206295B1 (en) System and method for streaming content selection
CN112106335B (zh) 用于经由内容分发网络流式传输媒体数据的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40073690

Country of ref document: HK