WO2024021777A1 - 一种数据传输的方法、相关装置、设备以及存储介质 - Google Patents
一种数据传输的方法、相关装置、设备以及存储介质 Download PDFInfo
- Publication number
- WO2024021777A1 WO2024021777A1 PCT/CN2023/094411 CN2023094411W WO2024021777A1 WO 2024021777 A1 WO2024021777 A1 WO 2024021777A1 CN 2023094411 W CN2023094411 W CN 2023094411W WO 2024021777 A1 WO2024021777 A1 WO 2024021777A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- configuration
- frame
- duration
- duration threshold
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 145
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000003139 buffering effect Effects 0.000 claims description 214
- 238000005315 distribution function Methods 0.000 claims description 72
- 238000004590 computer program Methods 0.000 claims description 17
- 230000001934 delay Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 38
- 230000003993 interaction Effects 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000011144 upstream manufacturing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate 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
本申请要求于2022年07月28日提交中国专利局、申请号为2022109005429、申请名称为“一种数据传输的方法、相关装置、设备以及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及网络技术领域与通信技术领域,尤其涉及数据传输技术。
流媒体技术是一种无需用户等待全部数据下载到本地,即可开始浏览或播放流媒体的技术。为了使流媒体的传输更快更稳定,可通过内容分发网络(content delivery network,CDN)将流媒体从源节点发布到最接近用户的服务节点,使用户可就近取得所需内容,以此提高网站对于用户访问的响应速度。
在流媒体传输过程中,由于数据包大小的差异和网络路由的路径选择等众多因素,难以保证数据包的延迟时间一致,从而容易在上行推流过程中产生抖动。目前,CDN节点主要以画面组(group of pictures,GOP)作为最小缓冲单位来对抗上行链路抖动。
然而,将GOP作为最小缓冲单位,对于上行网络而言,其适应能力较差。若上行推流帧率稳定,则采用固定的缓冲会增加内容流的延迟。可见,目前采用的抗抖动缓冲方案难以满足低延迟视频业务的需求。
发明内容
本申请实施例提供了一种数据传输的方法、相关装置、设备以及存储介质,能够有效地避免内容流的延迟,能够更好地满足低延迟视频业务的需求。
有鉴于此,本申请一方面提供一种数据传输的方法,由计算机设备执行,包括:
接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第一数据帧序列包括至少两个数据帧;
根据第一数据帧序列确定数据抖动信息,其中,数据抖动信息用于描述时间窗口内的数据帧抖动情况;
根据数据抖动信息设置数据缓冲区的第一缓冲时长阈值;
若数据缓冲区当前包含的数据帧对应的播放时长大于或等于第一缓冲时长阈值,则提高向目的设备传输数据缓冲区的数据帧的传输速率。
本申请另一方面提供一种数据传输装置,包括:
接收模块,用于接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第一数据帧序列包括至少两个数据帧;
确定模块,用于根据第一数据帧序列确定数据抖动信息,其中,数据抖动信息用于描述时间窗口内的数据帧抖动情况;
确定模块,还用于根据数据抖动信息设置数据缓冲区的第一缓冲时长阈值;
传输模块,用于若数据缓冲区当前包含的数据帧对应的播放时长大于或等于第一缓冲时长阈值,则提高向目的设备传输数据缓冲区的数据帧的传输速率。
本申请另一方面提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述各方面的方法。
本申请的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机
程序被处理器执行时实现上述各方面的方法。
本申请的另一个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种数据传输的方法,服务器接收源端设备在第一时间窗口内发送的第一数据帧序列,根据第一数据帧序列确定数据帧的抖动情况,并结合数据帧的抖动情况确定数据缓冲区的第一缓冲时长阈值。如果数据缓冲区当前包含的数据帧对应的播放时长大于或等于第一缓冲时长阈值,则提高向目的设备传输数据缓冲区的数据帧的传输速率。通过上述方式,基于帧级别的数据获得更准确的数据帧抖动情况,由此,基于时间窗口内的数据帧抖动情况,自适应调整数据缓冲区的第一缓冲时长阈值。在当前缓冲的数据帧播放时长大于第一缓冲时长阈值的情况下,会加快数据帧的传输速率,从而有效地避免内容流出现高延迟,更好地满足低延迟视频业务的需求。
图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帧数据帧变为每秒传输10帧数据帧;或者,数据帧的传输时间间隔可能发生改变,如相邻的两帧数据帧之间的传输时间间隔由0.03s变为0.1s;在本申请实施例中,利用数据抖动信息来描述在特定时间窗口内数据帧传输速率的变化情况、或数据帧传输时间间隔的变化情况。
示例性地,假设正常播放帧率为30每秒传输帧数(frame per second,fps),但由于网络状况不稳定,可能出现帧率为10fps,或35fps等,这样就会导致数据帧的传输情况不稳定,因此,需要构建数据抖动信息来描述数据帧在一个时间窗口内的抖动情况。
230、根据数据抖动信息设置数据缓冲区的第一缓冲时长阈值;
在一个或多个实施例中,结合数据抖动信息确定数据缓冲区对应的第一缓冲时长阈值,该第一缓冲时长阈值是用于决定是否调整数据帧的传输速率的参考时长阈值。如果基于数据抖动信息确定第一时间窗口内的数据帧抖动比较强烈,则数据缓冲区对应的第一缓冲时长阈值较大,反之,如果基于数据抖动信息确定第一时间窗口内的数据帧抖动非常弱(甚至没有抖动),则数据缓冲区对应的第一缓冲时长阈值较小,甚至可将第一缓冲时长阈值设置为0。
也就是说,需要根据数据抖动信息表征的第一时间窗口内的数据帧抖动情况,设置该数据缓冲区的第一缓冲时长阈值;该第一缓冲时长阈值与数据抖动信息表征的数据帧抖动情况正相关,即数据抖动信息表征的数据帧抖动情况越强烈,第一缓冲时长阈值越大,而数据抖动信息表征的数据帧抖动情况越缓和,第一缓冲时长阈值越小。
需要说明的是,本申请实施例中的数据缓冲区是整个数据传输过程的中间节点。具体的,在本申请实施例中,源端设备可以将其采集的内容流传输至流媒体服务器,进而,由目的设备从该流媒体服务器获取源端设备上传的数据;本申请实施例中的数据缓冲区可以部署在上述流媒体服务器上,作为整个数据传输过程的中间节点存储源端设备上传的数据。
240、若数据缓冲区当前包含的数据帧对应的播放时长大于或等于第一缓冲时长阈值,则提高向目的设备传输数据缓冲区的数据帧的传输速率。
在一个或多个实施例中,服务端可实时获取数据缓冲区内当前存储的数据帧数量,进而确定该数据缓冲区当前存储的数据帧对应的播放时长。需要说明的是,此处的播放时长可以是所预测的数据缓冲区当前包含的数据帧(此部分数据帧尚未传输至目的设备)对应的完整播放时长,例如,可以按照正常播放帧率可计算数据缓冲区当前存储的数据帧对应
的播放时长,示例性地,假设数据缓冲区内当前存储的数据帧数量为60帧,且,假设正常播放帧率为30fps,由此,可计算得到数据帧播放时长为2秒。
需要说明的是,从时间维度上来看,步骤210中的第一时间窗口可以处在步骤240中的“当前”之前,且第一时间窗口与“当前”距离很近;步骤210中的第一时间窗口也可以是步骤240中的“当前”所属的时间窗口。
本申请实施例旨在利用源端设备推流的数据抖动情况(即上行链路的数据抖动情况),对向目的设备进行推流(即下行链路)的数据传输速率进行控制调整,从而使得CDN的缓冲策略与上行推流情况形成反馈闭环。具体的,如果上行链路的数据传输较稳定(即数据抖动较弱),则可以提高下行链路的数据传输速率,从而避免数据缓冲区出现数据积压的情况,加速下发数据缓冲区中存储的数据,提高上行链路和下行链路整体的数据传输效率,避免出现高延迟。
具体地,若数据缓冲区当前包括的数据帧对应的播放时长大于或等于第一缓冲时长阈值,则表示缓冲的数据帧较多,需要加快数据帧的发送速率。即,以第一传输速率向目的设备发送缓冲区存储的数据帧,第一传输速率大于原始传输速率。以第一传输速率为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%时表示该帧率方差为噪声,那么可剔除这个时间窗口对应的帧率方差,由此达到滤波的效果。
在帧率方差或帧率标准差无需被剔除的情况下,还需进行归一化处理。一种方式为,根据帧率方差与第一预设参数值之间的比值确定调节系数,即,采用如下方式计算调节系数:
β=δ(f)/δ1;公式(1)
β=δ(f)/δ1;公式(1)
其中,β表示调节系数。δ(f)表示帧率方差。δ1表示第一预设参数值(例如,2)。第一预设参数值越小,表示调节系数越灵敏。
另一种方式为,根据帧率标准差与第二预设参数值之间的比值确定调节系数,即,采用如下方式计算调节系数:
β=σ(f)/σ2;公式(2)
β=σ(f)/σ2;公式(2)
其中,β表示调节系数。σ(f)表示帧率标准差。σ2表示第二预设参数值(例如,1.2)。
第而预设参数值越小,表示调节系数越灵敏。
在计算得到调节系数之后,采用如下方式计算第一缓冲时长阈值:
T=β*t;公式(3)
T=β*t;公式(3)
其中,T表示第一缓冲时长阈值。β表示调节系数。t表示配置时长(例如,500毫秒)。
可以理解的是,在上行帧率稳定的情况下,优先考虑降低延迟,此时,帧率方差或帧率标准差非常小,即,调节系数接近于0。因此,服务端的jitterbuffer中几乎不会缓存数据帧。在上行帧率不稳定的情况下,优先考虑流畅度,此时,帧率方差或帧率标准差较大,即,调节系数正相关于帧率方差或帧率标准差。因此,服务端的jitterbuffer根据抖动程度自动调节第一缓冲时长阈值和传输速率,从而改善了不同场景下内容分发网络的适应能力。
其次,本申请实施例提供了一种基于帧率方差或帧率标准差计算缓冲时长阈值的方式。通过上述方式,可根据帧率方差或帧率标准差自动调节第一缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在操作上较为简便,容易实现,实时处理效果较好。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,根据第一数据帧序列确定数据抖动信息,具体可以包括:
根据第一数据帧序列,统计第一时间窗口中每个时间单元对应的帧率,其中,第一时间窗口包括K个时间单元,K为大于1的整数;
根据每个时间单元对应的帧率,计算得到平均帧率;
根据每个时间单元对应的帧率以及平均帧率,计算得到帧率方差或帧率标准差。
在一个或多个实施例中,介绍了一种计算帧率方差或帧率标准差的方式。由前述实施例可知,每间隔一个时间窗口可计算对应的帧率方差或帧率标准差。下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,假设一个时间窗口为10秒,一个时间单元为1秒,即第一时间窗口包括10个时间单元。基于此,根据第一时间窗口内获取到的第一数据帧序列,可计算每个时间单元对应的帧率。例如,在一个时间单元里接收到源端设备发送的20个数据帧,则该时间单元的帧率20fps。由此,对K个时间单元对应的帧率求拼接在,即可得到平均帧率。根据每个时间单元对应的帧率以及平均帧率,可计算得到帧率方差或帧率标准差。
基于此,可采用如下方式计算帧率方差:
其中,δ(f)表示帧率方差。K表示时间单元的总数。xi表示第i个时间单元对应的帧率。表示平均帧率。
基于此,可采用如下方式计算帧率标准差:
其中,σ(f)表示帧率方差。K表示时间单元的总数。xi表示第i个时间单元对应的帧率。表示平均帧率。
再次,本申请实施例中,提供了一种计算帧率方差或帧率标准差的方式。通过上述方式,利用采集到的数据帧序列可计算帧率,由此,进一步计算帧率方差或帧率标准差,从而提升方案的可行性和可操作性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据数据抖动信息设置数据缓冲区对应的第一缓冲时长阈值,具体可以包括:
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定数据缓冲区的第一缓冲时长阈值。
在一个或多个实施例中,介绍了一种基于帧间间隔分布函数计算缓冲时长阈值的方式。由前述实施例可知,数据抖动信息包括帧间间隔分布函数,其中,基于一个时间窗口内的帧间间隔构建出帧间间隔分布函数,而帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系,因此,预设置信概率(例如,95%)对应的帧间间隔越大,表示在时间窗口内的数据帧抖动越强烈。
可以理解的是,预设置信概率通常设置为一个较大的置信概率,例如,95%,可选地,预设置信概率也可以设置为其他合理的取值,此处不做限定。需要说明的是,本申请中的帧间间隔分布函数可以采用累积分布函数(cumulative distribution function,CDF)或互补累计分布函数(complementary cumulative distribution function,CCDF)等。
由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,为了便于理解,请参阅图7,图7为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图,如图所示,首先获取一个时间窗口内所有的数据帧,例如,获取来源于第一时间窗口内的第一数据帧序列。基于第一数据帧序列中每对相邻的两帧数据帧之间的帧间间隔,生成概率分布直方图。在概率分布直方图的基础上绘制一条关于帧间间隔的概率密度函数(probability density function,PDF),对PDF求积分即可得到CDF。本申请以CDF作为帧间间隔分布函数,由此,可采用如下方式计算间隔时长:
α=F-1(B%);公式(6)
α=F-1(B%);公式(6)
其中,α表示间隔时长。F表示帧间间隔分布函数,F-1表示帧间间隔分布函数的反函数。B%表示预设置信概率,例如,95%。
在计算得到间隔时长之后,采用如下方式计算第一缓冲时长阈值:
T=α*w;公式(7)
T=α*w;公式(7)
其中,T表示第一缓冲时长阈值。α表示间隔时长。w表示配置系数(例如,1.2)。
其次,本申请实施例中,提供了一种基于帧间间隔分布函数计算缓冲时长阈值的方式。通过上述方式,利用帧间间隔分布函数推导出预设置信概率(例如,95%)对应的间隔时长,即,预测出未来两帧的间隔小于该间隔时长的概率是95%。基于间隔时长自动调节第一缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在实际应用上具有比较好的效果。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,根据第一数据帧序列确定数据抖动信息,具体可以包括:
根据第一数据帧序列,统计第一时间窗口中每个时间单元对应的至少一个最大帧间间隔,其中,第一时间窗口包括K个时间单元,K为大于1的整数;
根据每个时间单元对应的至少一个最大帧间间隔,生成概率分布直方图;
根据概率分布直方图构建帧间间隔分布函数。
在一个或多个实施例中,介绍了一种构建帧间间隔分布函数的方式。由前述实施例可知,每间隔一个时间窗口可计算对应的帧率方差或帧率标准差。下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,假设一个时间窗口为10秒,一个时间单元为1秒,即第一时间窗口包括10个时间单元。且,假设统计每个时间单元对应的前两个最大帧间间隔。基于此,请参阅表1,表1为从第一时间窗口内取出的20个最大帧间间隔。
表1
结合表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大于或等于T1,则进入缓冲排空模式,即,向下行的目的设备加速发送缓冲区对应的数据帧。如果T大于T2且T小于T1,则进入正常缓冲模式,即,向下行的目的设备正常发送缓冲区对应的数据帧。如果T小于或等于T2,则进入缓冲积累区间,即,向下行的目的设备减速或正常发送缓冲区对应的数据帧。其中,T1和T2正比于接收到的帧率分布,且可自适应调节。
下面将结合图示进行介绍,请参阅图13,图13为本申请实施例中自适应抗抖动缓冲的另一个流程示意图,如图所示,具体地:
在步骤B1中,服务端接收源端设备发送的数据帧。
在步骤B2中,服务端根据一个时间窗口内接收数据帧确定数据抖动信息。
在步骤B3中,服务端根据时间窗口对应的数据抖动信息,更新得到数据缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值。
在步骤B4中,服务端基于数据缓冲区在当前时刻缓冲的数据帧数量,可计算得到数据缓冲区当前存储的数据帧对应的播放时长(即,T)。由此,比较数据缓冲区当前存储的数据帧对应的播放时长与缓冲时长阈值之间的大小关系。
在步骤B5中,如果数据帧播放时长小于或等于第二缓冲时长阈值(即,T≤T2),则以原始传输速率或第二传输速率向目的设备发送平滑的数据帧。
在步骤B6中,如果数据帧播放时长大于第二缓冲时长阈值,且,小于第一缓冲时长阈值(即,T2<T<T1),则以原始传输速率向目的设备发送平滑的数据帧。
在步骤B7中,如果数据帧播放时长大于或等于第一缓冲时长阈值(即,T≥T1),则以第一传输速率向目的设备发送平滑的数据帧。
在步骤B8中,结合数据帧的传输情况更新缓冲区的缓存长度,并且基于下一个时间窗口收到的数据帧,更新缓冲区的第一缓存时长阈值和第二缓存时长阈值。
再次,本申请实施例提供了一种支持三个缓冲时长区间的数据传输方法。通过上述方式,由于缓冲时长区间可分为正常缓冲区间、缓冲积累区间和缓冲排空区间,因此,缓冲区当前存储的数据帧对应的播放时长在不同的缓冲时长区间内可采用不同的传输速率。即,对处于不同的缓冲时长区间的数据帧将采取对应的发送策略,从而提升方案的灵活性。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧率方差或帧率标准差;
根据数据抖动信息设置数据缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,具体可以包括:
根据帧率方差与第一预设参数值之间的比值确定调节系数,或,根据帧率标准差与第二预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定数据缓冲区对应的第一缓冲时长阈值;
根据调节系数与第二配置时长的乘积,确定数据缓冲区对应的第二缓冲时长阈值,其中,第二配置时长小于第一配置时长。
在一个或多个实施例中,介绍了一种基于帧率方差或帧率标准差计算缓冲时长阈值的方式。由前述实施例可知,数据抖动信息包括帧率方差或帧率标准差,其中,针对一个时间窗口计算得到的帧率方差或帧率标准差越大,表示在时间窗口内的数据帧抖动越强烈。
由于每间隔一个时间窗口可调节一次数据缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,为了便于理解,请参阅图14,图14为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图,如图所示,获取一个时间窗口内所有的数据帧,例如,获取来源于第一时间窗口内的第一数据帧序列。基于此,结合同时(4)或公式(5)计算针对一个时间窗口的帧率方差或帧率标准差。再根据帧率方差或帧率标准差进行滤波处理。然后对于无需被滤除的帧率方差或帧率标准差而言,结合公式(1)或公式(2)计算调节系数。需要说明的是,具体实现方式可参阅前述实施例,此处不做赘述。
在计算得到调节系数之后,采用如下方式计算第一缓冲时长阈值:
T2=β*t2;公式(8)
T2=β*t2;公式(8)
其中,T2表示第一缓冲时长阈值。β表示调节系数。t2表示第一配置时长(例如,500毫秒)。
采用如下方式计算第二缓冲时长阈值:
T1=β*t1;公式(9)
T1=β*t1;公式(9)
其中,T1表示第二缓冲时长阈值。β表示调节系数。t1表示第二配置时长(例如,100毫秒)。
再次,本申请实施例提供了一种基于帧率方差或帧率标准差计算缓冲时长阈值的方式。通过上述方式,可根据帧率方差或帧率标准差自动调节第一缓冲时长阈值、第二缓冲时长阈值和数据帧的传输速率,改善了不同场景下内容分发网络的适应能力。此外,上述方式在操作上较为简便,容易实现,实时处理效果较好。
可选地,在上述图3对应的各个实施例的基础上,本申请实施例提供的另一个可选实施例中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
根据数据抖动信息确定缓冲区对应的第一缓冲时长阈值以及第二缓冲时长阈值,具体可以包括:
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定数据缓冲区对应的第一缓冲时长阈值;
根据间隔时长与第二配置系数的乘积,确定数据缓冲区对应的第二缓冲时长阈值,其中,第二配置系数小于第一配置系数。
在一个或多个实施例中,介绍了一种基于帧间间隔分布函数计算缓冲时长阈值的方式。
由前述实施例可知,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系,因此,预设置信概率(例如,95%)对应的帧间间隔越大,表示在时间窗口内的数据帧抖动越强烈。可以理解的是,预设置信概率通常设置为一个较大的置信概率,例如,95%,此外,帧间间隔分布函数可以采用CDF或CCDF等。
由于每间隔一个时间窗口可调节一次缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值,因此,为了便于介绍,下面将以其中一个时间窗口(即,第一时间窗口)为例进行说明。
具体地,为了便于理解,请参阅图15,图15为本申请实施例中基于帧率抖动情况实现抗抖动缓冲的另一个示意图,如图所示,首先获取一个时间窗口内所有的数据帧。然后基于第一数据帧序列中每对相邻的两帧数据帧之间的帧间间隔,构建帧间间隔分布函数。再结合公式(6)计算间隔时长。需要说明的是,具体实现方式可参阅前述实施例,此处不做赘述。
在计算得到间隔时长之后,采用如下方式计算第一缓冲时长阈值:
T2=α*w2;公式(10)
T2=α*w2;公式(10)
其中,T2表示第一缓冲时长阈值。α表示间隔时长。w2表示第一配置系数(例如,1.2)。
采用如下方式计算第二缓冲时长阈值:
T1=α*w1;公式(11)
T1=α*w1;公式(11)
其中,T1表示第二缓冲时长阈值。α表示间隔时长。w1表示第二配置系数(例如,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,具体用于根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定数据缓冲区的第一缓冲时长阈值。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
确定模块320,具体用于根据第一数据帧序列,统计第一时间窗口中每个时间单元对应的至少一个最大帧间间隔,其中,第一时间窗口包括K个时间单元,K为大于1的整数;
根据每个时间单元对应的至少一个最大帧间间隔,生成概率分布直方图;
根据概率分布直方图构建帧间间隔分布函数。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块320,具体用于根据帧率方差与第一预设参数值之间的比值确定调节系数,或,根据帧率标准差与第二预设参数值之间的比值确定调节系数;
根据调节系数与配置时长的乘积,确定第一数值;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与配置系数的乘积,确定第二数值;
若第一数值大于第二数值,则将第一数值作为数据缓冲区的第一缓冲时长阈值;
若第二数值大于或等于第一数值,则将第二数值作为数据缓冲区的第一缓冲时长阈值。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据传输装置30还包括响应模块340;
响应模块340,用于接收源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
确定模块320,具体用于若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括配置时长和配置系数中的至少一项,第二配置参数集合包括配置时长和配置系数中的至少一项;
第一配置参数集合包括的配置时长小于第二配置参数集合包括的配置时长;
第一配置参数集合包括的配置系数小于第二配置参数集合包括的配置系数。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
确定模块320,具体用于根据数据抖动信息,设置数据缓冲区的第一缓冲时长阈值以及第二缓冲时长阈值,其中,第二缓冲时长阈值小于第一缓冲时长阈值;
传输模块330,还用于若数据缓冲区当前包含的数据帧对应的播放时长小于或等于第二缓冲时长阈值,则降低向目的设备传输数据缓冲区的数据帧的传输速率。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
传输模块330,还用于若数据缓冲区当前包含的数据帧对应的播放时长大于第二缓冲时长阈值,且,数据缓冲区当前包含的数据帧对应的播放时长小于第一缓冲时长阈值,则以原始传输速率向目的设备传输数据缓冲区的数据帧。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧率方差或帧率标准差;
确定模块320,具体用于根据帧率方差与第一预设参数值之间的比值确定调节系数,或,根据帧率标准差与第二预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定数据缓冲区的第一缓冲时长阈值;
根据调节系数与第二配置时长的乘积,确定数据缓冲区的第二缓冲时长阈值,其中,第二配置时长小于第一配置时长。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧间间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块320,具体用于根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定数据缓冲区的第一缓冲时长阈值;
根据间隔时长与第二配置系数的乘积,确定数据缓冲区的第二缓冲时长阈值,其中,第二配置系数小于第一配置系数。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,数据抖动信息包括帧率方差或帧率标准差,且,数据抖动信息包括帧间
间隔分布函数,其中,帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;
确定模块320,具体用于根据帧率方差与第一预设参数值之间的比值确定调节系数,或,根据帧率标准差与第二预设参数值之间的比值确定调节系数;
根据调节系数与第一配置时长的乘积,确定第一上限数值;
根据调节系数与第二配置时长的乘积,确定第一下限数值,其中,第二配置时长小于第一配置时长;
根据帧间间隔分布函数,确定预设置信概率对应的间隔时长;
根据间隔时长与第一配置系数的乘积,确定第二上限数值;
根据间隔时长与第二配置系数的乘积,确定第二下限数值,其中,第二配置系数小于第一配置系数;
若第一上限数值大于第二上限数值,则将第一上限数值作为数据缓冲区的第一缓冲时长阈值;
若第二上限数值大于或等于第一上限数值,则将第二上限数值作为数据缓冲区的第一缓冲时长阈值;
若第一下限数值大于第二下限数值,则将第一下限数值作为数据缓冲区的第二缓冲时长阈值;
若第二下限数值大于或等于第一下限数值,则将第二下限数值作为数据缓冲区的第二缓冲时长阈值。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
响应模块340,还用于接收源端设备发送的业务配置请求,其中,业务配置请求携带业务类型标识;
确定模块320,具体用于若业务类型标识指示实时类型业务,则根据第一数据帧序列以及第一配置参数集合,确定数据抖动信息;
若业务类型标识指示流畅类型业务,则根据第一数据帧序列以及第二配置参数集合,确定数据抖动信息;
其中,第一配置参数集合包括第一配置时长、第二配置时长、第一配置系数和第二配置系数中的至少一项,第二配置参数集合包括第一配置时长、第二配置时长、第一配置系数和第二配置系数中的至少一项;
第一配置参数集合包括的第一配置时长小于第二配置参数集合包括的第一配置时长;
第一配置参数集合包括的第二配置时长小于第二配置参数集合包括的第二配置时长;
第一配置参数集合包括的第一配置系数小于第二配置参数集合包括的第一配置系数;
第一配置参数集合包括的第二配置系数小于第二配置参数集合包括的第二配置系数。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
接收模块310,具体用于接收到源端设备发送的当前数据帧;
根据当前数据帧获取第一时间窗口内的第一数据帧序列,其中,第一数据帧序列包括当前数据帧。
可选地,在上述图22对应的实施例的基础上,本申请实施例提供的数据传输装置30的另一实施例中,
接收模块310,具体用于在接收到源端设备在第二时间窗口内发送的第二数据帧序列之后,接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,第二时间窗口为第一时间窗口相邻的前一个时间窗口,且,第二数据帧序列包括的数据帧与第一数据帧序列
包括的数据帧不重复。
图23是本申请实施例提供的一种服务器结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,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所示的服务器结构。
本申请实施例中还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时,实现前述各个实施例描述方法的步骤。
本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现前述各个实施例描述方法的步骤。
本申请实施例中还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现前述各个实施例描述方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (20)
- 一种数据传输的方法,由计算机设备执行,包括:接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;根据所述数据抖动信息设置数据缓冲区的第一缓冲时长阈值;若所述数据缓冲区当前包含的数据帧对应的播放时长大于或等于所述第一缓冲时长阈值,则提高向目的设备传输所述数据缓冲区的所述数据帧的传输速率。
- 根据权利要求1所述的方法,所述方法还包括:若所述数据缓冲区当前包含的数据帧对应的播放时长小于所述第一缓冲时长阈值,则以原始传输速率向所述目的设备传输所述数据缓冲区的所述数据帧。
- 根据权利要求1或2所述的方法,所述数据抖动信息包括帧率方差或帧率标准差;所述根据所述数据抖动信息设置数据缓冲区的第一缓冲时长阈值,包括:根据所述帧率方差与第一预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与第二预设参数值之间的比值确定调节系数;根据所述调节系数与配置时长的乘积,确定所述数据缓冲区的所述第一缓冲时长阈值。
- 根据权利要求3所述的方法,所述根据所述第一数据帧序列确定数据抖动信息,包括:根据所述第一数据帧序列,统计所述第一时间窗口中每个时间单元对应的帧率,其中,所述第一时间窗口包括K个时间单元,所述K为大于1的整数;根据所述每个时间单元对应的帧率,计算得到平均帧率;根据所述每个时间单元对应的帧率以及所述平均帧率,计算得到所述帧率方差或所述帧率标准差。
- 根据权利要求1至4任一项所述的方法,所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;所述根据所述数据抖动信息设置数据缓冲区的第一缓冲时长阈值,包括:根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与配置系数的乘积,确定所述数据缓冲区的所述第一缓冲时长阈值。
- 根据权利要求5所述的方法,所述根据所述第一数据帧序列确定数据抖动信息,包括:根据所述第一数据帧序列,统计所述第一时间窗口中每个时间单元对应的至少一个最大帧间间隔,其中,所述第一时间窗口包括K个时间单元,所述K为大于1的整数;根据所述每个时间单元对应的至少一个最大帧间间隔,生成概率分布直方图;根据所述概率分布直方图构建所述帧间间隔分布函数。
- 根据权利要求1或2所述的方法,所述数据抖动信息包括帧率方差或帧率标准差,且,所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;所述根据所述数据抖动信息设置数据缓冲区的第一缓冲时长阈值,包括:根据所述帧率方差与第一预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与第二预设参数值之间的比值确定调节系数;根据所述调节系数与配置时长的乘积,确定第一数值;根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与配置系数的乘积,确定第二数值;若所述第一数值大于所述第二数值,则将所述第一数值作为所述数据缓冲区的所述第一缓冲时长阈值;若所述第二数值大于或等于所述第一数值,则将所述第二数值作为所数据述缓冲区的所述第一缓冲时长阈值。
- 根据权利要求1至7中任一项所述的方法,所述方法还包括:接收所述源端设备发送的业务配置请求,其中,所述业务配置请求携带业务类型标识;所述根据所述第一数据帧序列确定数据抖动信息,包括:若所述业务类型标识指示实时类型业务,则根据所述第一数据帧序列以及第一配置参数集合,确定数据抖动信息;若所述业务类型标识指示流畅类型业务,则根据所述第一数据帧序列以及第二配置参数集合,确定数据抖动信息;其中,所述第一配置参数集合包括配置时长和配置系数中的至少一项,所述第二配置参数集合包括配置时长和配置系数中的至少一项;所述第一配置参数集合包括的配置时长小于所述第二配置参数集合包括的配置时长;所述第一配置参数集合包括的配置系数小于所述第二配置参数集合包括的配置系数。
- 根据权利要求1至8任一项所述的方法,所述根据所述数据抖动信息设置数据缓冲区的第一缓冲时长阈值,包括:根据所述数据抖动信息,设置所述数据缓冲区的所述第一缓冲时长阈值以及第二缓冲时长阈值,其中,所述第二缓冲时长阈值小于所述第一缓冲时长阈值;所述方法还包括:若所述数据缓冲区当前包含的数据帧对应的播放时长小于或等于所述第二缓冲时长阈值,则降低向所述目的设备传输所述数据缓冲区的所述数据帧的传输速率。
- 根据权利要求9所述的方法,所述方法还包括:若所述数据缓冲区当前包含的数据帧对应的播放时长大于所述第二缓冲时长阈值,且,所述数据缓冲区当前包含的数据帧对应的播放时长小于所述第一缓冲时长阈值,则以原始传输速率向所述目的设备传输所述数据缓冲区的所述数据帧。
- 根据权利要求9或10所述的方法,所述数据抖动信息包括帧率方差或帧率标准差;所述根据所述数据抖动信息,设置所述数据缓冲区的所述第一缓冲时长阈值以及第二缓冲时长阈值,包括:根据所述帧率方差与第一预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与第二预设参数值之间的比值确定调节系数;根据所述调节系数与第一配置时长的乘积,确定所述数据缓冲区的所述第一缓冲时长阈值;根据所述调节系数与第二配置时长的乘积,确定所述数据缓冲区的所述第二缓冲时长阈值,其中,所述第二配置时长小于所述第一配置时长。
- 根据权利要求9或10所述的方法,所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;所述根据所述数据抖动信息,设置所述数据缓冲区的所述第一缓冲时长阈值以及第二缓冲时长阈值,包括:根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与第一配置系数的乘积,确定所述数据缓冲区的所述第一缓冲时长 阈值;根据所述间隔时长与第二配置系数的乘积,确定所述数据缓冲区的所述第二缓冲时长阈值,其中,所述第二配置系数小于所述第一配置系数。
- 根据权利要求9或10所述的方法,所述数据抖动信息包括帧率方差或帧率标准差,且,所述数据抖动信息包括帧间间隔分布函数,其中,所述帧间间隔分布函数用于描述帧间间隔与置信概率之间的关系;所述根据所述数据抖动信息,设置所述数据缓冲区的所述第一缓冲时长阈值以及第二缓冲时长阈值,包括:根据所述帧率方差与第一预设参数值之间的比值确定调节系数,或,根据所述帧率标准差与第二预设参数值之间的比值确定调节系数;根据所述调节系数与第一配置时长的乘积,确定第一上限数值;根据所述调节系数与第二配置时长的乘积,确定第一下限数值,其中,所述第二配置时长小于所述第一配置时长;根据所述帧间间隔分布函数,确定预设置信概率对应的间隔时长;根据所述间隔时长与第一配置系数的乘积,确定第二上限数值;根据所述间隔时长与第二配置系数的乘积,确定第二下限数值,其中,所述第二配置系数小于所述第一配置系数;若所述第一上限数值大于所述第二上限数值,则将所述第一上限数值作为所述数据缓冲区的所述第一缓冲时长阈值;若所述第二上限数值大于或等于所述第一上限数值,则将所述第二上限数值作为所述数据缓冲区的所述第一缓冲时长阈值;若所述第一下限数值大于所述第二下限数值,则将所述第一下限数值作为所述数据缓冲区的所述第二缓冲时长阈值;若所述第二下限数值大于或等于所述第一下限数值,则将所述第二下限数值作为所述数据缓冲区的所述第二缓冲时长阈值。
- 根据权利要求9至13中任一项所述的方法,所述方法还包括:接收所述源端设备发送的业务配置请求,其中,所述业务配置请求携带业务类型标识;所述根据所述第一数据帧序列确定数据抖动信息,包括:若所述业务类型标识指示实时类型业务,则根据所述第一数据帧序列以及第一配置参数集合,确定所述数据抖动信息;若所述业务类型标识指示流畅类型业务,则根据所述第一数据帧序列以及第二配置参数集合,确定所述数据抖动信息;其中,所述第一配置参数集合包括第一配置时长、第二配置时长、第一配置系数和第二配置系数中的至少一项,所述第二配置参数集合包括第一配置时长、第二配置时长、第一配置系数和第二配置系数中的至少一项;所述第一配置参数集合包括的第一配置时长小于所述第二配置参数集合包括的第一配置时长;所述第一配置参数集合包括的第二配置时长小于所述第二配置参数集合包括的第二配置时长;所述第一配置参数集合包括的第一配置系数小于所述第二配置参数集合包括的第一配置系数;所述第一配置参数集合包括的第二配置系数小于所述第二配置参数集合包括的第二配置系数。
- 根据权利要求1至14任一项所述的方法,所述接收源端设备在第一时间窗口内发送的第一数据帧序列,包括:接收到所述源端设备发送的当前数据帧;根据所述当前数据帧获取所述第一时间窗口内的所述第一数据帧序列,其中,所述第一数据帧序列包括所述当前数据帧。
- 根据权利要求1至14任一项所述的方法,所述接收源端设备在第一时间窗口内发送的第一数据帧序列,包括在接收到所述源端设备在第二时间窗口内发送的第二数据帧序列之后,接收所述源端设备在所述第一时间窗口内发送的所述第一数据帧序列,其中,所述第二时间窗口为所述第一时间窗口相邻的前一个时间窗口,且,所述第二数据帧序列包括的数据帧与所述第一数据帧序列包括的数据帧不重复。
- 一种数据传输装置,包括:接收模块,用于接收源端设备在第一时间窗口内发送的第一数据帧序列,其中,所述第一数据帧序列包括至少两个数据帧;确定模块,用于根据所述第一数据帧序列确定数据抖动信息,其中,所述数据抖动信息用于描述时间窗口内的数据帧抖动情况;所述确定模块,还用于根据所述数据抖动信息设置数据缓冲区的第一缓冲时长阈值;传输模块,用于若所述数据缓冲区当前包含的数据帧对应的播放时长大于或等于所述第一缓冲时长阈值,则以提高向目的设备传输所述数据缓冲区的所述数据帧的传输速率。
- 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至16中任一项所述方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至16中任一项所述方法的步骤。
- 一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至16中任一项所述方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210900542.9 | 2022-07-28 | ||
CN202210900542.9A CN114979091B (zh) | 2022-07-28 | 2022-07-28 | 一种数据传输的方法、相关装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024021777A1 true WO2024021777A1 (zh) | 2024-02-01 |
Family
ID=82970012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/094411 WO2024021777A1 (zh) | 2022-07-28 | 2023-05-16 | 一种数据传输的方法、相关装置、设备以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114979091B (zh) |
WO (1) | WO2024021777A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979091B (zh) * | 2022-07-28 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
CN117896314A (zh) * | 2024-03-07 | 2024-04-16 | 沈阳灵秀科技有限责任公司 | 一种erp数据传输方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110661A (zh) * | 2007-07-23 | 2008-01-23 | 中兴通讯股份有限公司 | 电路仿真系统的抖动缓存调整方法 |
CN105554019A (zh) * | 2016-01-08 | 2016-05-04 | 全时云商务服务股份有限公司 | 一种音频去抖动系统和方法 |
CN107529097A (zh) * | 2016-06-20 | 2017-12-29 | 北京信威通信技术股份有限公司 | 一种自适应调整视频缓冲大小的方法及装置 |
CN109168083A (zh) * | 2018-10-23 | 2019-01-08 | 青岛海信电器股份有限公司 | 一种流媒体实时播放方法及装置 |
WO2022019874A1 (en) * | 2020-07-20 | 2022-01-27 | Google Llc | Adaptive resizing of audio jitter buffer based on current network conditions |
CN114979091A (zh) * | 2022-07-28 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
Family Cites Families (11)
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 |
CN103002354A (zh) * | 2012-12-14 | 2013-03-27 | 四川九洲电器集团有限责任公司 | 一种消除视频数据传输网络抖动的方法及系统 |
CN104915966B (zh) * | 2015-05-08 | 2018-02-09 | 上海交通大学 | 基于卡尔曼滤波的帧率上变换运动估计方法及系统 |
US9674426B2 (en) * | 2015-06-07 | 2017-06-06 | Apple Inc. | Devices and methods for capturing and interacting with enhanced digital images |
CN109769140A (zh) * | 2018-12-20 | 2019-05-17 | 南京杰迈视讯科技有限公司 | 一种基于流媒体技术的网络视频流畅播放控制方法 |
CN112702649A (zh) * | 2019-10-22 | 2021-04-23 | 高新兴科技集团股份有限公司 | 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备 |
CN112752109B (zh) * | 2019-10-30 | 2022-05-17 | 上海哔哩哔哩科技有限公司 | 视频播放控制方法和系统 |
CN112822502B (zh) * | 2020-12-28 | 2022-06-07 | 阿里巴巴(中国)有限公司 | 直播去抖动的智能缓存与直播方法、设备及存储介质 |
CN112752115B (zh) * | 2020-12-29 | 2023-09-08 | 广州博冠信息科技有限公司 | 直播数据传输方法、装置、设备及介质 |
CN113115080A (zh) * | 2021-04-08 | 2021-07-13 | 刘文平 | 移动媒体间实时视频音频高精度同步平台 |
CN113350782A (zh) * | 2021-06-15 | 2021-09-07 | 网易(杭州)网络有限公司 | 处理网络游戏异常的方法、装置、存储介质及计算机设备 |
-
2022
- 2022-07-28 CN CN202210900542.9A patent/CN114979091B/zh active Active
-
2023
- 2023-05-16 WO PCT/CN2023/094411 patent/WO2024021777A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110661A (zh) * | 2007-07-23 | 2008-01-23 | 中兴通讯股份有限公司 | 电路仿真系统的抖动缓存调整方法 |
CN105554019A (zh) * | 2016-01-08 | 2016-05-04 | 全时云商务服务股份有限公司 | 一种音频去抖动系统和方法 |
CN107529097A (zh) * | 2016-06-20 | 2017-12-29 | 北京信威通信技术股份有限公司 | 一种自适应调整视频缓冲大小的方法及装置 |
CN109168083A (zh) * | 2018-10-23 | 2019-01-08 | 青岛海信电器股份有限公司 | 一种流媒体实时播放方法及装置 |
WO2022019874A1 (en) * | 2020-07-20 | 2022-01-27 | Google Llc | Adaptive resizing of audio jitter buffer based on current network conditions |
CN114979091A (zh) * | 2022-07-28 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法、相关装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114979091B (zh) | 2022-11-11 |
CN114979091A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2024021777A1 (zh) | 一种数据传输的方法、相关装置、设备以及存储介质 | |
US8850497B2 (en) | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network | |
US10063606B2 (en) | Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network | |
KR101398319B1 (ko) | 실시간 비디오 검출기 | |
US11558302B2 (en) | Data transmission method and apparatus | |
Liang et al. | Integrated prefetching and caching for adaptive video streaming over HTTP: An online approach | |
US10104407B2 (en) | Method and device for network-assisted client-centric QoE optimization | |
US10469627B2 (en) | Rapid optimization of media stream bitrate | |
WO2017096935A1 (zh) | 一种快速频道切换方法、服务器及iptv系统 | |
US11863841B2 (en) | Video playing control method and system | |
US20060005224A1 (en) | Technique for cooperative distribution of video content | |
JP2021505081A (ja) | ビデオ伝送方法、ビデオ伝送装置、およびビデオ伝送システム、ならびにコンピュータ可読記憶媒体 | |
CN113316263A (zh) | 数据传输方法、装置、设备和存储介质 | |
WO2020216277A1 (zh) | 一种媒体流发送方法、装置、设备和系统 | |
US11902599B2 (en) | Multiple protocol prediction and in-session adaptation in video streaming | |
CN105306970B (zh) | 一种流媒体直播发送速度的控制方法及装置 | |
WO2012158161A1 (en) | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network | |
CN109450815B (zh) | 一种基于效用值的对等网络流媒体系统数据调度方法 | |
Tamizhselvi et al. | Adaptive video streaming in mobile cloud computing | |
KR20210077841A (ko) | 고품질 저지연 실시간 미디어 스트리밍 서비스를 제공하는 방법 및 그 장치 | |
CN112737971A (zh) | 数据处理方法、装置、存储介质及网络设备 | |
KR102390522B1 (ko) | 적응형 비디오 스트리밍 서비스를 위한 블록체인 기반의 안정적인 체감품질 가속기 | |
US20240137585A1 (en) | Multiple protocol prediction and in-session adaptation in video streaming | |
WO2024051426A1 (zh) | 视频流码率调整方法、装置、计算机设备和存储介质 | |
Takahata et al. | Optimal data rate control for video stream transmission over wireless network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23844992 Country of ref document: EP Kind code of ref document: A1 |