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

音视频数据传输方法、装置、计算机设备及可读存储介质

文献发布时间:2024-04-18 20:01:30


音视频数据传输方法、装置、计算机设备及可读存储介质

技术领域

本申请涉及计算机领域,具体涉及一种音视频数据传输方法、装置、计算机设备及可读存储介质。

背景技术

音视频数据传输技术已经在日常生活的诸多领域广泛应用,将音视频数据向观众对应设备传输的过程中,网络中的网络设备可以根据网络状况(如网络可用带宽)确定数据传输速率,并以此数据传输速率进行音视频数据传输,随着新技术的发展,音视频数据也发展出新形态,如直播数据,与传统的点播数据不同的是,直播数据是从主播对应设备获取,再通过网络向观众对应设备传输,基于此特点,针对直播数据的音视频数据传输技术也需要进行改进。

发明内容

本申请实施例提供一种音视频数据传输方法、装置、计算机设备及可读存储介质,可以提升音视频数据的传输连贯性,进而提升音视频数据的播放质量。

本申请实施例提供一种音视频数据传输方法,包括:

获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率;

确定针对待传输音视频数据的初始发送速率;

基于目标获取速率对初始发送速率进行调整,得到目标发送速率;

以目标发送速率向网络设备发送待传输音视频数据。

相应地,本申请实施例还提供了一种音视频数据传输装置,包括:

获取模块,用于获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率;

确定模块,用于确定针对待传输音视频数据的初始发送速率;

调整模块,用于基于目标获取速率对初始发送速率进行调整,得到目标发送速率;

发送模块,用于以目标发送速率向网络设备发送待传输音视频数据。

在本申请的一些实施例中,获取模块包括获取子模块和计算子模块,其中,

获取子模块,用于获取待传输音视频数据;

计算子模块,用于计算待传输音视频数据的获取过程的目标获取速率。

在本申请的一些实施例中,计算子模块包括确定单元和计算单元,其中,

确定单元,用于确定待传输音视频数据的数据量,以及待传输音视频数据的获取过程的时长信息;

计算单元,用于基于时长信息和数据量,计算目标获取速率。

在本申请的一些实施例中,计算单元包括计算子单元、获取子单元和融合子单元,其中,

计算子单元,用于基于时长信息和数据量,计算初始获取速率;

获取子单元,用于获取历史获取速率,历史获取速率包括基于历史音视频数据的历史获取过程所确定的数据获取速率;

融合子单元,用于对历史获取速率和初始获取速率进行融合计算,得到目标获取速率。

在本申请的一些实施例中,融合子单元具体用于:

获取预设获取权重信息;

基于预设获取权重信息,确定针对历史获取速率的第一获取权重信息、以及针对初始获取速率的第二获取权重信息;

基于第一获取权重信息和第二获取权重信息,对历史获取速率和初始获取速率进行融合计算,得到目标获取速率。

在本申请的一些实施例中,确定模块具体用于:

确定数据传输网络的可用带宽;

基于预设拥塞控制算法和可用带宽进行计算,得到针对待传输音视频数据的初始发送速率。

在本申请的一些实施例中,调整模块具体用于:

获取预设发送权重信息;

基于预设发送权重信息,确定针对目标获取速率的第一发送权重信息、以及针对初始发送速率的第二发送权重信息;

基于第一发送权重信息和第二发送权重信息,对目标获取速率和初始发送速率进行融合计算,得到目标发送速率。

在本申请的一些实施例中,发送模块包括确定子模块、数据包子模块和发送子模块,其中,

确定子模块,用于确定针对待传输音视频数据的目标发送窗口数据;

数据包子模块,用于基于目标发送窗口数据对待传输音视频数据进行处理,得到至少一个数据包;

发送子模块,用于以目标发送速率向网络设备发送数据包。

在本申请的一些实施例中,确定子模块包括初始单元、解析单元、终止位置单元和目标单元,其中,

初始单元、用于确定针对待传输音视频数据的初始发送窗口数据;

解析单元,用于对待传输音视频数据进行解析,得到多个音视频帧数据各自在待传输音视频数据中的位置信息;

终止位置单元,用于基于初始发送窗口数据,确定待传输音视频数据中的窗口终止位置;

目标单元,用于基于多个位置信息和窗口终止位置,确定针对待传输音视频数据的目标发送窗口数据。

在本申请的一些实施例中,位置信息包括帧起始位置和帧终止位置,目标单元包括第一目标子单元和第二目标子单元,其中,

第一目标子单元,用于若窗口终止位置与任一帧起始位置匹配、或窗口终止位置与任一帧终止位置匹配,确定初始发送窗口数据为针对待传输音视频数据的目标发送窗口数据;

第二目标子单元,用于若窗口终止位置与任一帧起始位置或任一帧终止位置均不匹配,确定窗口终止位置所属的第一音视频帧数据,并基于窗口终止位置、第一音视频帧数据的第一帧起始位置和第一帧终止位置,确定针对待传输音视频数据的目标发送窗口数据。

在本申请的一些实施例中,第二目标子单元具体用于:

基于窗口终止位置、第一音视频帧数据的第一帧起始位置和第一帧终止位置,确定发送窗口调整数据;

对初始发送窗口数据和发送窗口调整数据进行融合处理,得到针对待传输音视频数据的目标发送窗口数据。

在本申请的一些实施例中,第二目标子单元具体用于:

基于窗口终止位置和第一帧起始位置进行计算,得到发送窗口减小数据;

基于窗口终止位置和第一帧终止位置进行计算,得到发送窗口增大数据;

从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据。

在本申请的一些实施例中,第二目标子单元具体用于:

若发送窗口调整数据为发送窗口减小数据,通过发送窗口减小数据减小初始发送窗口数据,得到目标发送窗口数据;

若发送窗口调整数据为发送窗口增大数据,通过发送窗口增大数据增大初始发送窗口数据,得到目标发送窗口数据。

在本申请的一些实施例中,第二目标子单元具体用于:

确定数据传输网络的至少一个网络质量数据,并比较网络质量数据和预设阈值,得到至少一个质量比较结果;

基于发送窗口减小数据和发送窗口增大数据进行比较,得到至少一个数据比较结果;

基于包括数据比较结果和质量比较结果在内的至少一个比较结果,从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据。

在本申请的一些实施例中,网络质量数据包括网络丢包率,预设阈值包括预设丢包率阈值,质量比较结果包括丢包率比较结果;

第二目标子单元具体用于:

若丢包率比较结果表征网络丢包率大于预设丢包率阈值,确定发送窗口减小数据为发送窗口调整数据;

若丢包率比较结果表征网络丢包率小于预设丢包率阈值,确定发送窗口增大数据为发送窗口调整数据。

在本申请的一些实施例中,网络质量数据包括目标往返时延和当前往返时延,预设阈值包括预设时延比值阈值,质量比较结果包括时延比较结果;

第二目标子单元具体用于:

若时延比较结果表征当前往返时延和目标往返时延之间的比值大于预设时延比值阈值,确定发送窗口减小数据为发送窗口调整数据;

若时延比较结果表征当前往返时延和目标往返时延的比值小于预设时延比值阈值,确定发送窗口增大数据为发送窗口调整数据。

在本申请的一些实施例中,数据比较结果包括第一数据比较结果,

第二目标子单元具体用于:

比较发送窗口减小数据和发送窗口增大数据,得到第一数据比较结果;

若第一数据比较结果表征发送窗口减小数据大于发送窗口增大数据,确定发送窗口增大数据为发送窗口调整数据;

若第一数据比较结果表征发送窗口减小数据小于发送窗口增大数据,确定发送窗口减小数据为发送窗口调整数据。

在本申请的一些实施例中,数据比较结果包括第二数据比较结果,第二数据比较结果包括减小比较结果和增大比较结果,

第二目标子单元具体用于:

对发送窗口增大数据和初始发送窗口数据之间的第一比值与预设第一阈值进行比较,得到增大比较结果;

对发送窗口减小数据与初始发送窗口数据之间的第二比值与预设第二阈值进行比较,得到减小比较结果;

若增大比较结果表征第一比值小于预设第一阈值,确定发送窗口增大数据为发送窗口调整数据;

若减小比较结果表征第二比值大于预设第二阈值,确定发送窗口减小数据为发送窗口调整数据。

相应地,本申请实施例还提供一种计算机设备,包括处理器和存储器,存储器存储有计算机程序,处理器用于运行存储器内的计算机程序,以实现本申请实施例提供的音视频数据传输方法中的步骤。

相应地,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行以实现本申请实施例提供的音视频数据传输方法中的步骤。

相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行以实现本申请实施例提供的音视频数据传输方法中的步骤。

本申请实施例可以获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率,还可以基于数据传输网络的网络状况确定初始传输速率,然后,可以通过目标获取速率对初始传输速率进行调整,得到目标发送数据,并以目标发送速率进行数据传输,本申请通过目标获取速率调整初始传输速率,可以得到与目标获取速率更加适配的目标发送速率,提升待传输音视频数据的数据获取过程和数据发送过程的一致性,避免二者差异过大而导致传输空档或传输积压,提升音视频数据的传输连贯性,进而降低播放时出现卡顿等问题的频率,有效提升音视频数据在用户终端的播放质量。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的音视频数据传输方法的场景示意图;

图2是本申请实施例提供的音视频数据传输方法的流程示意图;

图3是本申请实施例提供的音视频数据传输方法的另一流程示意图;

图4是本申请实施例提供的音视频数据传输方法的发送队列示意图;

图5是本申请实施例提供的音视频数据传输方法的另一发送队列示意图;

图6是本申请实施例提供的音视频数据传输方法的另一场景示意图;

图7是本申请实施例提供的音视频数据传输方法的另一流程示意图;

图8是本申请实施例提供的音视频数据传输方法的另一场景示意图;

图9是本申请实施例提供的音视频数据传输装置的结构示意图;

图10是本申请实施例提供的计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

可以理解的是,在本申请的若干实施例中,涉及到用户信息(如音视频数据等)等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。

本申请实施例了提供一种音视频数据传输方法、装置、计算机设备及计算机可读存储介质,音视频数据传输装置可以集成在音视频数据传输系统中,音视频数据传输系统可以集成在至少一个网络设备上,网络设备可以包括接入数据传输网络的设备、构成数据数据网络的设备等,网络设备可以包括计算机设备、路由器、网关、交换机等等,计算设备可以包括终端、服务器在内的至少一种。

其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能会议设备、智能屏幕等等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

网络设备可以获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率,确定针对待传输音视频数据的初始发送速率,基于目标获取速率对初始发送速率进行调整,得到目标发送速率,以目标发送速率向网络设备发送待传输音视频数据。

比如,参见图1,音视频数据传输系统可以包括发送服务器,发送服务器可以从直播服务器获取待传输音视频数据,并计算待传输数据的获取过程的目标获取速率,发送服务器还确定数据传输网络的可用带宽,并基于此确定针对待传输音视频数据的初始发送速率,然后通过目标获取速率对初始发送速率进行调整,得到目标发送速率,发送服务器可以以目标发送速率向数据传输网络中的网络设备发送待传输音视频数据,进而通过数据传输网络将待传输音视频数据向接收终端传输。

图1为本申请的音视频数据传输系统的应用场景的一个示例,主要用于介绍而非本申请的音视频数据传输系统,在实际应用本申请实施例所描述的技术方案的过程中,可以对音视频数据传输系统所包含的计算机设备、以及各个计算机设备所执行的步骤进行灵活调整,并不局限于图1中描述的内容。

下面将结合实施例对本申请的音视频数据传输方法进行进一步介绍。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。

图2示出了本申请的音视频数据传输方法的一个流程示意图,如图2,音视频数据传输方法可以包括:

110、获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率。

其中,待传输音视频数据可以包括需要从其所在网络设备向其他网络设备传输的音视频数据,音视频数据可以包括直播数据和点播数据等,直播数据可以如娱乐直播数据、在线教育直播数据、在线会议直播数据、购物直播数据等等,待传输音视频数据可以包括直播输出方所在设备向直播服务器传输的音视频数据,也可以包括直播服务器向直接观看方所在设备传输的音视频数据。

其中,目标获取速率可以包括待传输音视频数据的获取过程的速率,目标获取速率可以衡量数据获取的快慢,目标获取速率越大,单位时间获取的待传输音视频数据的数据量越大。

具体地,获取待传输音视频数据可以包括多种方式,如从其他网络设备(如直播服务器等)获取待传输音视频数据,又如从设备本地的应用层获取待传输音视频数据,等等。对应地,计算目标获取速率的方式也可以包括多种,比如,可以统计单元时间内接收到的音视频数据的数据量,并确定此数据量为目标获取速率,此处的单位时间可以根据实际需求灵活确定,如,1秒,1毫秒等等。

在本申请的一些实施例中,可以记录获取待传输音视频数据的时长信息,并确定待传输音视频数据的数据量,然后根据时长信息和数据量计算,得到目标获取速率。比如,记录获取待传输音视频数据的时长1,确定待传输音视频数据的数据量1,目标获取速率=数据量1/时长1。

在本申请的一些实施例中,也可以结合历史获取速率,对当前计算得到的获取速率进行调整,得到目标获取速率,提升整个直播过程中目标获取速率的稳定性。

具体地,可以记录获取待传输音视频数据的时长信息,并确定待传输音视频数据的数据量,然后根据时长信息和数据量计算,得到初始获取速率。再获取历史获取速率,音视频数据在直播过程中需要持续进行传输,在获取当前的待传输音视频数据之前,计算机设备已获取该直播过程的历史音视频数据,历史获取速率可以包括基于历史音视频数据的历史获取过程所确定的数据获取速率。最后对历史获取速率和初始获取速率进行融合计算,最终得到目标获取速率。

比如,记录获取待传输音视频数据的时长1,确定待传输音视频数据的数据量1,初始获取速率1=数据量1/时长1,获取历史获取速率1,对初始获取速率1和历史获取速率1进行融合计算,得到目标获取速率。

具体地,对历史获取速率和初始获取速率进行融合计算的方式可以有多种,比如,可以对历史获取速率和初始获取速率求和,得到目标获取速率。

在本申请的一些实施例中,可以对历史获取速率和初始获取速率求加权平均,历史获取速率和初始获取速率各自的权重信息可以预先分别设置好;也可以基于历史获取速率和初始获取速率确定。

比如,预先构建权重数据集,权重数据集包括不同比较结果对应的历史获取速率的权重信息、以及初始获取速率的权重信息,根据历史获取速率和初始获取速率之间的差值与预设差值阈值的比较结果,确定历史获取速率和初始获取速率各自对应的权重信息,若第一比较结果为差值大于预设差值阈值,从权重数据集中,确定第一比较结果对应的历史获取速率和初始获取速率各自的第一权重信息;若第二比较结果为差值小于预设差值阈值,从权重数据集中,确定第一比较结果对应的历史获取速率和初始获取速率各自的第二权重信息。由此可以更加精细对历史获取速率和初始获取速率进行融合,得到更加符合当前场景的目标获取速率。

又比如,可以首先获取预设获取权重信息,并根据预设获取权重信息,确定针对历史获取速率的第一获取权重信息、以及针对初始获取速率的第二获取权重信息,最后基于第一获取权重信息和第二获取权重信息,对历史获取速率和初始获取速率求加权平均,得到目标获取速率,此处若初始获取速率对应的待传输音视频数据为直播过程的首批音视频数据,历史获取速率可以为初始获取速率。

预设获取权重信息可以为预先根据使用需求等灵活设置,根据预设获取权重信息,确定第一获取权重信息和第二获取权重信息的方式可以比如,可以将预设获取权重信息作为预设第一函数的输入值,得到的输出值为第一获取权重信息,可以将预设获取权重信息作为预设第二函数的输入值,得到的输出值为第二获取权重信息。比如,获取预设获取权重信息A,并基于此确定第一获取权重信息为A,第二获取权重信息为1-A,目标平均速率=A*历史获取速率1+(1-A)*初始获取速率1。

120、确定针对待传输音视频数据的初始发送速率。

其中,初始发送速率可以包括初步确定的待传输音视频数据的发送速率,具体来说,初始发送速率可以包括基于数据传输网络的相关信息确定的发送速率,确定初始发送速率的方式可以有多种,如基于拥塞控制算法确定初始发送速率,常见的拥塞控制算法如Bottleneck Bandwidth and Round-trip propagation time,(简称BBR,一种拥塞控制算法)、Cubic(一种拥塞控制算法)、Reno(一种拥塞控制算法)等等,具体可以根据应用场景的实际情况灵活选用,在此不再赘述。

在本申请的一些实施例中,可以确定数据传输网络的可用带宽,并基于该可用带宽和预设拥塞控制算法进行计算,得到初始发送速率,比如,预设拥塞控制算法可以为BBR,计算初始发送速率基于如下公式进行:

Pacing_tmp=BtlBW*pacing_gain

其中,Pacing_tmp为初始发送速率,BtlBW为目标传输网络的可用带宽,pacing_gain为预设参数值,在BBR的慢启动阶段,pacing_gain=2/ln2≈2.885,在BBR的探测最大可用带宽的阶段,pacing_gain依次可以为1.25,0.75,1.0,1.0,1.0,1.0,1.0,1.0,1.0。

130、基于目标获取速率对初始发送速率进行调整,得到目标发送速率。

其中,目标发送速率可以包括用于传输待传输网络数据的发送概率,基于目标获取速率对初始发送速率进行调整,得到目标发送速率的方式可以有多种,比如,可以预先构建速率数据集,速率数据集包括多组数据,一组数据包括预设初始发送速率、预设目标获取速率和预设目标发送速率,可以从速率数据集中,确定目标获取速率和初始发送速率共同对应的目标发送速率。

在本申请的一些实施例中,可以对目标获取速率和初始发送速率进行融合,融合可以如求加权平均,目标获取速率和初始发送速率各自的权重信息可以预先设置。比如,可以首先获取预设发送权重信息,并根据预设发送权重信息,确定针对目标获取速率的第一发送权重信息、以及针对初始发送速率的第二发送权重信息,最后基于第一发送权重信息和第二发送权重信息,对目标获取速率和初始发送速率求加权平均,得到目标发送速率。

预设发送权重信息可以预先根据使用需求等灵活设置,根据预设发送权重信息,确定第一发送权重信息和第二发送权重信息的方式可以比如,将预设发送权重信息作为预设第三函数的输入值,得到的输出值为第一发送权重信息,将预设发送权重信息作为预设第四函数的输入值,得到的输出值为第二发送权重信息。比如,获取预设发送权重信息B,并基于此确定第一发送权重信息为B,第二发送权重信息为1-B,目标发送速率=B*目标获取速率+(1-B)*初始发送速率。

140、以目标发送速率向网络设备发送待传输音视频数据。

其中,网络设备可以包括将要接收待传输音视频数据的网络设备,网络设备可以如用户对应终端、数据传输网络中的节点设备、服务器等等。

在本申请的一些实施例中,可以确定针对待传输音视频数据的目标发送窗口数据,基于目标发送窗口数据对待传输音视频数据进行处理,得到至少一个数据包,以目标发送速率向网络设备发送数据包。

其中,目标发送窗口数据可以用于对待传输音视频数据进行切分,得到多个数据块,基于预设协议对数据块进行封装,得到其对应的数据包,并以目标发送速率向网络设备发送数据包,从而将待传输音视频数据向网络设备发送。

具体地,确定目标发送窗口数据的方式可以有多种,比如,可以基于拥塞控制算法和数据传输网络的相关信息,计算针对待传输音视频数据的目标发送窗口数据。

在本申请的一些实施例中,可以首先确定针对待传输音视频数据的初始发送窗口数据,然后对待传输音视频数据进行解析,得到多个音视频帧数据各自在待传输音视频数据中的位置信息,再基于初始发送窗口数据,确定待传输音视频数据中的窗口终止位置,最后基于多个位置信息和窗口终止位置,确定针对待传输音视频数据的目标发送窗口数据。

其中,初始发送窗口数据可以包括初步确定的发送窗口数据,初始发送窗口数据的可以基于拥塞控制算法和数据传输网络的相关信息,

本申请的待传输音视频数据可以属于音视频数据,可以对待传输音视频数据进行解析,得到多个音视频帧数据,以及各个音视频帧数据在待传输音视频数据中的位置信息,比如,可以基于待传输音视频数据的封装格式,对待传输音视频数据进行解析,封装格式可以如mkv(一种封装格式)、flv(一种封装格式)、mov(一种封装格式)等。

如在封装格式为flv的情况下,可以提取待传输音视频数据中特定字段的数据,并基于特定字段对应的第一数据量和该数据,确定各个音视频帧对应的数据量,进而确定各个音视频帧在待传输音视频数据中的位置信息,比如,封装格式为flv时,可以提取帧长度字段(如PreviousTagSize字段)中的数据P,该数据P可以表征该字段后的音视频帧数据1的内容的数据量,又知帧长度字段对应的字节数为Q,可知待传输音视频数据中音视频帧数据1对应的数据量为Q+P,若帧长度字段前为待传输音视频数据的头部字段(如flv header字段),该帧长度字段记录的音视频帧数据对应的数据量为头部字段对应字节数、帧长度字段对应字节数、以及帧长度字段内数据的和值。

对待传输音视频数据进行解析还可以确定音视频帧数据对应的音视频帧类型,如I帧、P帧、B帧等,也可以确定音视频帧数据的数据内容等等,具体地可以根据实际情况灵活进行。

在确定各个音视频帧数据对应的数据量后,可以基于此确定各个音视频帧数据在待传输音视频数据中的位置信息。比如,解析后确定待传输音视频数据依次包括音视频帧数据1-10,音视频帧数据1-10分别对应帧数据量1-10,可以根据帧数据量1,确定音视频帧数据1在待传输音视频数据中的位置信息1,位置信息1包括起始位置信息和终止位置信息,音视频帧数据1的起始位置信息可以为待传输音视频数据的起始位置,终止位置信息可以通过对起始位置和帧数据量1求和得到,再根据帧数据量2,在已知位置信息1的情况下,确定音视频帧数据2的位置信息2,依次根据帧数据量3-10,确定音视频帧数据3-10的位置信息3-10。

其中,窗口终止位置可以包括对待传输数据进行切分的位置,窗口终止位置为窗口起始位置与初始发送窗口数据的和,若窗口起始位置为待传输音视频数据的头部,窗口终止位置即为初始发送窗口数据。位置信息可以包括帧起始位置和帧终止位置,需要说明的是,在待传输音视频数据中,前一个音视频帧数据的帧终止位置与后一个音视频帧数据的帧起始位置可以相同,可以将帧起始位置和帧终止位置统称为帧边界位置。

最后根据多个位置信息和窗口终止位置,确定目标发送窗口数据的方式可以包括多种,比如,可以比较多个帧边界位置与窗口终止位置的相对位置关系,对窗口终止位置进行修正,由修正后的窗口终止位置得到目标发送窗口数据。

在本申请的一些实施例中,可以比较窗口终止位置与帧边界位置是否匹配,根据匹配结果确定目标发送窗口数据,此处的匹配可以包括相同、差值小于预设阈值、等等,可以根据实际情况灵活确定。

具体地,若窗口终止位置与任一帧起始位置匹配、或窗口终止位置与任一帧终止位置匹配,确定初始发送窗口数据为针对待传输音视频数据的目标发送窗口数据,若窗口终止位置与任一帧起始位置或任一帧终止位置均不匹配,确定窗口终止位置所属的第一音视频帧数据,并基于窗口终止位置、第一音视频帧数据的第一帧起始位置和第一帧终止位置,确定针对待传输音视频数据的目标发送窗口数据。

比如,若窗口终止位置与音视频帧数据4的帧终止位置相同,可以确定初始发送窗口数据为目标发送窗口数据。又比如,若窗口终止位置与音视频帧数据1-10的帧起始位置和帧终止位置均不匹配,可以确定窗口终止位置所属的音视频帧数据6,并基于音视频帧数据6的帧起始位置S1和帧终止位置S2、以及窗口终止位置1,确定目标发送窗口数据。

具体地,可以确定与窗口终止位置距离相邻的帧起始位置和帧终止位置,并确定这两个帧边界位置所属的第一音视频帧数据。基于窗口终止位置、第一帧起始位置和第一帧终止位置,确定目标发送窗口数据的方式有多种,比如,可以将第一帧起始位置与第一帧终止位置之间的距离(也即第一视频帧数据的数据量)确定为目标发送窗口数据。

在本申请的一些实施例中,还可以首先基于窗口终止位置、第一音视频帧数据的第一帧起始位置和第一帧终止位置,确定发送窗口调整数据,再对初始发送窗口数据和发送窗口调整数据进行融合处理,得到针对待传输音视频数据的目标发送窗口数据。

其中,发送窗口调整数据可以用于调整初始发送窗口数据,具体地,可以增大或调小初始发送窗口数据,得到目标发送窗口数据,因此,对初始发送窗口数据和发送窗口调整数据进行融合处理,可以如计算初始发送窗口数据和发送窗口调整的差值或和值,此差值或和值即为目标发送窗口数据。

具体地,可以基于窗口终止位置和第一帧起始位置进行计算,得到发送窗口减小数据,基于窗口终止位置和第一帧终止位置进行计算,得到发送窗口增大数据,从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据。

其中,发送窗口减小数据用于减小初始发送窗口数据,发送窗口增大数据用于增大初始发送窗口数据,可以计算窗口终止位置与第一帧起始位置之间的距离,得到发送窗口减小数据,计算窗口终止位置与第一帧终止位置之间的距离,得到发送窗口增大数据。再从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据。在发送窗口调整数据为发送窗口减小数据的情况下,可以计算初始发送窗口数据与发送窗口减小数据之间的差值,该差值即目标发送窗口数据;在发送窗口调整数据为发送窗口增大数据的情况下,可以计算初始发送窗口数据与发送窗口增大数据之间的和值,该和值即目标发送窗口数据。

比如,计算窗口终止位置1与帧起始位置S1之间的距离,得到发送窗口减小数据1,计算窗口终止位置1与帧终止位置S2之间的距离,得到发送窗口增大数据1。

若确定发送窗口减小数据1为发送窗口调整数据,计算窗口终止位置1与发送窗口减小数据1之间的差值,得到目标发送窗口数据;若确定发送窗口增大数据1为发送窗口调整数据,计算窗口终止位置1与发送窗口增大数据1之间的和值,得到目标发送窗口数据。

从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据的过程,可以包括多种方式,比如可以基于比较结果进行,从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据,比较结果可以包括至少一个。

比较结果可以包括数据比较结果和质量比较结果。

具体地,可以获取数据传输网络的网络质量数据,并对网络质量数据和预设阈值做比较,得到质量比较结果。质量比较结果可以包括丢包率比较结果,确定丢包率比较结果的过程可以包括:获取数据传输网络的网络丢包率,并对网络丢包率和预设丢包率阈值做比较,得到丢包率比较结果。比如,检测数据传输网络的最新丢包率L,对最新丢包率L与预设丢包率阈值1比较,得到比较结果L1。

质量比较结果可以还包括时延比较结果,确定丢包率比较结果的过程可以包括:获取数据传输网络的目标往返时延和当前往返时延,目标往返时延可以如最小往返时延、历史往返时延等,对当前往返时延和目标往返时延之间的比值与预设时延比值阈值做比较,得到时延比较结果。比如,检测数据传输网络的最新往返时延G,获取数据传输网络的最小往返时延g,计算最新往返时延G与最小往返时延g之间的比值G/g,对比值G/g与预设时延比值阈值1比较,得到比较结果G1。

具体地,基于发送减小窗口数据和发送增大窗口数据进行比较,可以得到数据比较结果。数据比较结果可以包括第一数据比较结果,具体地,可以比较发送窗口减小数据与发送窗口增大数据之间的大小关系,得到第一数据比较结果。比如,比较发送窗口减小数据1与发送窗口增大数据1之间的大小关系,得到比较结果F1。

数据比较结果还可以包括第二数据比较结果,第二数据比较结果可以包括增大比较结果和减小比较结果,对发送窗口增大数据和初始发送窗口数据之间的第一比值与预设第一阈值进行比较,可以得到增大比较结果;对发送窗口减小数据与初始发送窗口数据之间的第二比值与预设第二阈值进行比较,可以得到减小比较结果。比如,确定发送窗口增大数据1和初始发送窗口数据之间的比值D,将比值D与预设第一阈值1,比较,得到增大比较结果D1,确定发送窗口剑减小数据1和初始发送窗口数据之间的比值J,将比值J与预设第二阈值1,得到减小比较结果J1。

上文提到的预设丢包率阈值、预设时延比值阈值、预设第一阈值以及预设第二阈值等,均可以预先根据实际需求灵活设备,本申请对此不做限制。

因此,可以基于包括丢包率比较结果、时延比较结果、第一数据比较结果以及第二数据比较结果在内的至少一个比较结果,从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据。此处可以有多种组合方式,下面阐述单个比较结果确定发送窗口调整数据的过程:

(1)基于丢包率比较结果确定发送窗口调整数据

若丢包率比较结果表征网络丢包率大于预设丢包率阈值,确定发送窗口减小数据为发送窗口调整数据;若丢包率比较结果表征网络丢包率小于预设丢包率阈值,确定发送窗口增大数据为发送窗口调整数据。比如,比较结果L1表征最新丢包率L大于预设丢包率阈值1,确定发送窗口减小数据1为发送窗口调整数据;比较结果L1表征最新丢包率L小于预设丢包率阈值1,确定发送窗口增大数据1为发送窗口调整数据。

(2)基于时延比较结果确定发送窗口调整数据

若时延比较结果表征当前往返时延和目标往返时延之间的比值大于预设时延比值阈值,确定发送窗口减小数据为发送窗口调整数据;若时延比较结果表征当前往返时延和目标往返时延的比值小于预设时延比值阈值,确定发送窗口增大数据为发送窗口调整数据。比如,若比较结果L1表征比值G/g大于预设时延比值阈值1,确定发送窗口减小数据1为发送窗口调整数据;若比较结果L1表征比值G/g小于预设时延比值阈值1,确定发送窗口增大数据1为发送窗口调整数据。

(3)基于第一数据比较结果确定发送窗口调整数据

若第一数据比较结果表征发送窗口减小数据大于发送窗口增大数据,确定发送窗口增大数据为发送窗口调整数据;若第一数据比较结果表征发送窗口减小数据小于发送窗口增大数据,确定发送窗口减小数据为发送窗口调整数据。比如,若比较结果F1表征发送窗口减小数据1大于发送窗口增大数据1,确定发送窗口增大数据1为发送窗口调整数据;若比较结果F1表征发送窗口减小数据1小于发送窗口增大数据1,确定发送窗口减小数据1为发送窗口调整数据。

(4)基于第二数据比较结果确定发送窗口调整数据

若增大比较结果表征第一比值小于预设第一阈值,确定发送窗口增大数据为发送窗口调整数据;若减小比较结果表征第二比值大于预设第二阈值,确定发送窗口减小数据为发送窗口调整数据。比如,若增大比较结果D1表征比值D小于预设第一阈值1,确定发送窗口增大数据1为发送窗口调整数据,若减小比较结果J1表征比值J大于预设第二阈值1,确定发送窗口减小数据1为发送窗口调整数据。

至少两个比较结果确定发送窗口调整数据的过程可以基于单个比较结果确定发送窗口调整数据的过程组合得到,下面以基于第一数据比较结果和丢包率比较结果,从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据为例进行,具体地,若丢包率比较结果表征网络丢包率大于预设丢包率阈值、且第一数据比较结果表征发送窗口减小数据大于发送窗口增大数据,确定发送窗口减小数据为发送窗口调整数据;若丢包率比较结果表征网络丢包率小于预设丢包率阈值、且第一数据比较结果表征发送窗口减小数据大于发送窗口增大数据,确定发送窗口增大数据为发送窗口调整数据。

基于至少两个比较结果确定发送窗口调整数据的其他方式与上述方式类似,可以以上述方式为参照进行,通过比较结果的各种组合形式,确定发送窗口调整数据的过程均数据本申请的保护范围,对此不再过多赘述。

本申请实施例可以获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率,还可以基于数据传输网络的网络状况确定初始传输速率,然后,可以通过目标获取速率对初始传输速率进行调整,得到目标发送数据,并以目标发送速率进行数据传输,本申请通过目标获取速率调整初始传输速率,可以得到与目标获取速率更加适配的目标发送速率,提升待传输音视频数据的数据获取过程和数据发送过程的一致性,避免二者差异过大而导致传输空档或传输积压,提升音视频数据的传输连贯性,进而降低播放时出现卡顿等问题的频率,有效提升音视频数据在用户终端的播放质量。

下面将结合实施例,对本申请的音视频数据传输方法进行进一步介绍,图3出了本申请的音视频数据传输方法的一个流程示意图,如图3音视频数据传输方法可以包括:

210、计算机设备获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率。

服务器可以周期性的测量接收到的待传输音视频数据的数据量,并基于数据量和预设测量周期确定初始获取速率,比如,可以在预设测量周期T_i内,测量接收到的待传输音视频数据的数据量Size_live_i,此时初始获取速率V_data_gain_i=Size_live_i/T_i。

服务器可以获取前一周期计算的历史获取速率V_data_smooth_i-1,并确定目标获取速率V_data_smooth_i:

V_data_smooth_i=a*V_data_smooth_i-1+(1-a)*V_data_gain_i

其中,a为预设权重,可以根据情况灵活设置,比如a为0.8、0.5、0.1等等。在上述公式中,若i=1,V_data_smooth_0=V_data_gain_1。

220、计算机设备确定针对待传输音视频数据的初始发送速率。

比如,基于拥塞控制算法BBR计算初始发送速率pacing_tmp:

Pacing_tmp=BtlBW*pacing_gain

其中,BtlBW为目标传输网络的可用带宽,pacing_gain会随着BBR阶段的不同而有所不同,在慢启动阶段,pacing_gain=2/ln2≈2.885,在探测最大可用带宽的阶段,pacing_gain依次可以为1.25,0.75,1.0,1.0,1.0,1.0,1.0,1.0,1.0。

230、计算机设备基于目标获取速率对初始发送速率进行调整,得到目标发送速率。

比如,目标发送速率Pacing_final:

Pacing_final=alpha*Pacing_tmp+(1-alpha)*V_data_smooth_i

其中,alpha表示预设权重,alpha可以满足0≤alpha≤1,具体地可以灵活配置,比如,alpha可以为0.5、0.9、0.3等等。

240、计算机设备确定针对待传输音视频数据的初始发送窗口数据。

比如,根据现有拥塞控制算法计算初始发送窗口值cwnd_tmp。

250、计算机设备对待传输音视频数据进行解析,得到多个音视频帧数据各自在待传输音视频数据中的位置信息。

计算机设备可以对待传输音视频数据进行解析,得到多个音视频帧,以及每个音视频帧的帧类型Frame_type、帧大小Frame_size、以及帧内容Frame_content等。帧类型Frame_type可以包括音频帧、视频I帧、P帧、B帧等,帧大小Frame_size可以包括待传输音视频数据中音视频帧对应的数据量,比如,封装协议为FLV时,帧大小可以包括头部字段、帧长度字段(如PreviousTagSize字段)、帧内容字段的长度之和、或帧长度字段与帧内容字段的长度之和,等等。

帧内容Frame_content可以包括头部字段、帧长度字段、以及帧内容字段等中的信息。

260、计算机设备基于初始发送窗口数据,确定待传输音视频数据中的窗口终止位置。

比如,基于初始发送窗口数据,确定待传输音视频数据中的数据分界点cwnd_ptr。

270、计算机设备基于多个位置信息和窗口终止位置,确定针对待传输音视频数据的目标发送窗口数据。

比如,参见图4,计算机设备的发送队列包括待传输音视频数据,待传输音视频数据包括多个音视频帧,如图中的音视频帧1-4,音视频帧之间存在帧边界1-3,若数据分界点cwnd_ptr与帧边界位置匹配,如图中数据分界点cwnd_ptr与帧边界2匹配,确定初始发送窗口值cwnd_tmp为目标发送窗口值cwnd_final。

又比如,参见图5,计算机设备的发送队列包括待传输音视频数据,待传输音视频数据包括多个音视频帧,如图中的音视频帧1-4,音视频帧之间存在帧边界位置1-3,若数据分界点cwnd_ptr与任一帧边界位置均匹配,如图中数据分界点cwnd_ptr在音视频帧3内部,根据音视频3两侧的帧边界位置2、帧边界位置3、以及数据分界点cwnd_ptr,确定第一数据块frame_ptr_1和第一数据块frame_ptr_2,第一数据块frame_ptr_1属于初始发送窗口值cwnd_tmp所限定的部分,第一数据块frame_ptr_1不属于初始发送窗口值cwnd_tmp所限定的部分。

第一数据块frame_ptr_1和第一数据块frame_ptr_2的大小分别为第一数据量frame_size_ptr_1和第二数据量frame_size_ptr_2。

若条件1:frame_size_ptr_1>frame_size_ptr_2;条件2:最新丢包率小于阈值loss_rate_threshold1;条件3:最新往返时延与最小往返时延之比小于阈值rtt_threshold1;条件4:frame_size_ptr_2与cwnd_tmp之比小于阈值cwnd_ratio_threshold1中,一个或多个条件满足时,目标发送窗口值cwnd_final:

Cwnd_final=cwnd_tmp+frame_size_ptr_2

其中loss_rate_threshold2、rtt_threshold2和cwnd_ratio_threshold2可以预先灵活配置,比如loss_rate_threshold1、rtt_threshold1和cwnd_ratio_threshold1可以分别为3%、5、20%。

若条件1:frame_size_ptr_1

Cwnd_final=cwnd_tmp-frame_size_ptr_1

其中loss_rate_threshold2、rtt_threshold2和cwnd_ratio_threshold2可以预先灵活配置,比如loss_rate_threshold1、rtt_threshold1和cwnd_ratio_threshold1可以分别为5%、10、60%。

280、计算机设备基于目标发送窗口数据对待传输音视频数据进行处理,得到至少一个数据包。

计算机设备基于标发送窗口值cwnd_final对待传输音视频数据进行封装,得到多个数据包括。

290、计算机设备以目标发送速率向网络设备发送数据包。

计算机设备以目标发送速率Pacing_final向网络设备发送数据包。

具体地,参见图6,本申请的音视频数据传输方法可以集成在发送端的传输层,发送端的传输层可以从应用层或直播服务器获取音视频数据,传输层可以包括测量组件、发送组件、解析组件以及接收组件,发送端的传输层的组件之间可以互相配合,执行本申请的音视频数据传输方法,从而通过数据传输网络将音视频数据向接收端发送。

发送端传输层的各个模块之间互相配合的过程可以参见图7,测量组件可以接收音视频数据,测量并传输基于音视频数据的接收过程所确定的数据获取速率(目标获取速率),还可以向解析组件传输音视频数据,解析组件可以解析音视频数据,得到音视频帧数据以及相关属性信息,并向发送模块传输音视频帧数据以及相关属性信息,发送模组可以基于拥塞控制算法确定发送速率临时值和发送窗口临时值(即初始发送速率和初始发送窗口数据),可以根据接收模组接收到的数据传输网络回传的消息确定报文中的相关信息(如可用带宽、传输时延、丢包率等),分别对发送速率临时值和发送窗口临时值进行调整,得到发送速率最终值和发送窗口最终值,并基于发送速率最终值和发送窗口最终值(即目标发送速率和目标发送窗口数据)进行数据发送。

在组件之间交互的过程中,参见图8,解析组件可以根据解析到的帧类型、帧大小和帧内容生成消息M_i,并向发送组件传输此消息,消息M_i:

M_i={Frame_type,Frame_size,Frame_content}

其中,Frame_type为帧类型,Frame_size为帧大小,Frame_content为帧内容。

比如图8,音视频数据可以依次包括P帧、B帧、B帧、B帧,可以依次生成消息M_i、消息M_i+1、消息M_i+2、消息M_i+3,并向发送组件传输这些消息。

本申请可以赋能数据发送端综合考虑根据待发送音视频帧信息和探测到的网络质量信息来调整流量发送的策略,在充分利用有限的网络资源的情况下,增强对音视频直播流的适配性。

为了更好地实施以上方法,本申请实施例还提供一种音视频数据传输装置,如图9所示,该音视频数据传输装置可以包括获取模块310、确定模块320、调整模块330以及发送模块340,具体地:

获取模块310,用于获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率;

确定模块320,用于确定针对待传输音视频数据的初始发送速率;

调整模块330,用于基于目标获取速率对初始发送速率进行调整,得到目标发送速率;

发送模块340,用于以目标发送速率向网络设备发送待传输音视频数据。

在本申请的一些实施例中,获取模块包括获取子模块和计算子模块,其中,

获取子模块,用于获取待传输音视频数据;

计算子模块,用于计算待传输音视频数据的获取过程的目标获取速率。

在本申请的一些实施例中,计算子模块包括确定单元和计算单元,其中,

确定单元,用于确定待传输音视频数据的数据量,以及待传输音视频数据的获取过程的时长信息;

计算单元,用于基于时长信息和数据量,计算目标获取速率。

在本申请的一些实施例中,计算单元包括计算子单元、获取子单元和融合子单元,其中,

计算子单元,用于基于时长信息和数据量,计算初始获取速率;

获取子单元,用于获取历史获取速率,历史获取速率包括基于历史音视频数据的历史获取过程所确定的数据获取速率;

融合子单元,用于对历史获取速率和初始获取速率进行融合计算,得到目标获取速率。

在本申请的一些实施例中,融合子单元具体用于:

获取预设获取权重信息;

基于预设获取权重信息,确定针对历史获取速率的第一获取权重信息、以及针对初始获取速率的第二获取权重信息;

基于第一获取权重信息和第二获取权重信息,对历史获取速率和初始获取速率进行融合计算,得到目标获取速率。

在本申请的一些实施例中,确定模块具体用于:

确定数据传输网络的可用带宽;

基于预设拥塞控制算法和可用带宽进行计算,得到针对待传输音视频数据的初始发送速率。

在本申请的一些实施例中,调整模块具体用于:

获取预设发送权重信息;

基于预设发送权重信息,确定针对目标获取速率的第一发送权重信息、以及针对初始发送速率的第二发送权重信息;

基于第一发送权重信息和第二发送权重信息,对目标获取速率和初始发送速率进行融合计算,得到目标发送速率。

在本申请的一些实施例中,发送模块包括确定子模块、数据包子模块和发送子模块,其中,

确定子模块,用于确定针对待传输音视频数据的目标发送窗口数据;

数据包子模块,用于基于目标发送窗口数据对待传输音视频数据进行处理,得到至少一个数据包;

发送子模块,用于以目标发送速率向网络设备发送数据包。

在本申请的一些实施例中,确定子模块包括初始单元、解析单元、终止位置单元和目标单元,其中,

初始单元、用于确定针对待传输音视频数据的初始发送窗口数据;

解析单元,用于对待传输音视频数据进行解析,得到多个音视频帧数据各自在待传输音视频数据中的位置信息;

终止位置单元,用于基于初始发送窗口数据,确定待传输音视频数据中的窗口终止位置;

目标单元,用于基于多个位置信息和窗口终止位置,确定针对待传输音视频数据的目标发送窗口数据。

在本申请的一些实施例中,位置信息包括帧起始位置和帧终止位置,目标单元包括第一目标子单元和第二目标子单元,其中,

第一目标子单元,用于若窗口终止位置与任一帧起始位置匹配、或窗口终止位置与任一帧终止位置匹配,确定初始发送窗口数据为针对待传输音视频数据的目标发送窗口数据;

第二目标子单元,用于若窗口终止位置与任一帧起始位置或任一帧终止位置均不匹配,确定窗口终止位置所属的第一音视频帧数据,并基于窗口终止位置、第一音视频帧数据的第一帧起始位置和第一帧终止位置,确定针对待传输音视频数据的目标发送窗口数据。

在本申请的一些实施例中,第二目标子单元具体用于:

基于窗口终止位置、第一音视频帧数据的第一帧起始位置和第一帧终止位置,确定发送窗口调整数据;

对初始发送窗口数据和发送窗口调整数据进行融合处理,得到针对待传输音视频数据的目标发送窗口数据。

在本申请的一些实施例中,第二目标子单元具体用于:

基于窗口终止位置和第一帧起始位置进行计算,得到发送窗口减小数据;

基于窗口终止位置和第一帧终止位置进行计算,得到发送窗口增大数据;

从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据。

在本申请的一些实施例中,第二目标子单元具体用于:

若发送窗口调整数据为发送窗口减小数据,通过发送窗口减小数据减小初始发送窗口数据,得到目标发送窗口数据;

若发送窗口调整数据为发送窗口增大数据,通过发送窗口增大数据增大初始发送窗口数据,得到目标发送窗口数据。

在本申请的一些实施例中,第二目标子单元具体用于:

确定数据传输网络的至少一个网络质量数据,并比较网络质量数据和预设阈值,得到至少一个质量比较结果;

基于发送窗口减小数据和发送窗口增大数据进行比较,得到至少一个数据比较结果;

基于包括数据比较结果和质量比较结果在内的至少一个比较结果,从发送窗口减小数据和发送窗口增大数据中,选定发送窗口调整数据。

在本申请的一些实施例中,网络质量数据包括网络丢包率,预设阈值包括预设丢包率阈值,质量比较结果包括丢包率比较结果;

第二目标子单元具体用于:

若丢包率比较结果表征网络丢包率大于预设丢包率阈值,确定发送窗口减小数据为发送窗口调整数据;

若丢包率比较结果表征网络丢包率小于预设丢包率阈值,确定发送窗口增大数据为发送窗口调整数据。

在本申请的一些实施例中,网络质量数据包括目标往返时延和当前往返时延,预设阈值包括预设时延比值阈值,质量比较结果包括时延比较结果;

第二目标子单元具体用于:

若时延比较结果表征当前往返时延和目标往返时延之间的比值大于预设时延比值阈值,确定发送窗口减小数据为发送窗口调整数据;

若时延比较结果表征当前往返时延和目标往返时延的比值小于预设时延比值阈值,确定发送窗口增大数据为发送窗口调整数据。

在本申请的一些实施例中,数据比较结果包括第一数据比较结果,

第二目标子单元具体用于:

比较发送窗口减小数据和发送窗口增大数据,得到第一数据比较结果;

若第一数据比较结果表征发送窗口减小数据大于发送窗口增大数据,确定发送窗口增大数据为发送窗口调整数据;

若第一数据比较结果表征发送窗口减小数据小于发送窗口增大数据,确定发送窗口减小数据为发送窗口调整数据。

在本申请的一些实施例中,数据比较结果包括第二数据比较结果,第二数据比较结果包括减小比较结果和增大比较结果,

第二目标子单元具体用于:

对发送窗口增大数据和初始发送窗口数据之间的第一比值与预设第一阈值进行比较,得到增大比较结果;

对发送窗口减小数据与初始发送窗口数据之间的第二比值与预设第二阈值进行比较,得到减小比较结果;

若增大比较结果表征第一比值小于预设第一阈值,确定发送窗口增大数据为发送窗口调整数据;

若减小比较结果表征第二比值大于预设第二阈值,确定发送窗口减小数据为发送窗口调整数据。

本申请实施例可以获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率,还可以基于数据传输网络的网络状况确定初始传输速率,然后,可以通过目标获取速率对初始传输速率进行调整,得到目标发送数据,并以目标发送速率进行数据传输,本申请通过目标获取速率调整初始传输速率,可以得到与目标获取速率更加适配的目标发送速率,提升待传输音视频数据的数据获取过程和数据发送过程的一致性,避免二者差异过大而导致传输空档或传输积压,提升音视频数据的传输连贯性,进而降低播放时出现卡顿等问题的频率,有效提升音视频数据在用户终端的播放质量。

本申请实施例还提供一种计算机设备,如图10所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,该计算机设备可以是终端或者服务器等,具体来讲:

该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图10中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的计算机程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和计算机程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储计算机程序以及模块,处理器401通过运行存储在存储器402的就计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,该计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率;确定针对待传输音视频数据的初始发送速率;基于目标获取速率对初始发送速率进行调整,得到目标发送速率;以目标发送速率向网络设备发送待传输音视频数据。

本申请实施例可以获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率,还可以基于数据传输网络的网络状况确定初始传输速率,然后,可以通过目标获取速率对初始传输速率进行调整,得到目标发送数据,并以目标发送速率进行数据传输,本申请通过目标获取速率调整初始传输速率,可以得到与目标获取速率更加适配的目标发送速率,提升待传输音视频数据的数据获取过程和数据发送过程的一致性,避免二者差异过大而导致传输空档或传输积压,提升音视频数据的传输连贯性,进而降低播放时出现卡顿等问题的频率,有效提升音视频数据在用户终端的播放质量。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种音视频数据传输方法中的步骤。例如,该计算机程序可以执行如下步骤:

获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率;确定针对待传输音视频数据的初始发送速率;基于目标获取速率对初始发送速率进行调整,得到目标发送速率;以目标发送速率向网络设备发送待传输音视频数据。

本申请实施例可以获取待传输音视频数据,并计算待传输音视频数据的获取过程的目标获取速率,还可以基于数据传输网络的网络状况确定初始传输速率,然后,可以通过目标获取速率对初始传输速率进行调整,得到目标发送数据,并以目标发送速率进行数据传输,本申请通过目标获取速率调整初始传输速率,可以得到与目标获取速率更加适配的目标发送速率,提升待传输音视频数据的数据获取过程和数据发送过程的一致性,避免二者差异过大而导致传输空档或传输积压,提升音视频数据的传输连贯性,进而降低播放时出现卡顿等问题的频率,有效提升音视频数据在用户终端的播放质量。

其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种音视频数据传输方法中的步骤,因此,可以实现本申请实施例所提供的任一种音视频数据传输方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述音视频数据传输方法的各种可选实现方式中提供的方法。

以上对本申请实施例所提供的一种音视频数据传输方法、装置、计算机设备及可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

技术分类

06120116556504