用于云游戏的流媒体数据传输系统的制作方法

专利2022-05-09  87


本发明涉及数据处理技术领域,尤其涉及一种用于云游戏的流媒体数据传输系统。



背景技术:

现有的流媒体数据传输技术多基于视频通话及直播的应用场景而设计,其中,视频通话的流媒体数据传输链路的延迟范围通常为100ms-1s,直播的流媒体数据传输链路的延迟范围通常为1s-10s。而云游戏的延迟要求通常在1ms-100ms,因此,现有的流媒体数据传输技术无法满足云游戏应用场景下流媒体数据传输链路的延迟需求,尤其是在相对恶劣的网络环境下,无法保证流媒体数据流畅传输,造成视频或音频出现抖动、卡顿等情况,用户体验差。由此可知,如何降低云游戏的流媒体数据传输链路的延迟,保证音频、视频的流畅性成为亟待解决的技术问题。



技术实现要素:

本发明目的在于,提供一种用于云游戏的流媒体数据传输系统,极大地降低了云游戏的流媒体数据传输链路的延迟,保证了音频、视频的流畅性。

根据本发明一方面,提供了一种用于云游戏的流媒体数据传输系统,包括服务端,所述服务端中包括处理器和存储有计算机程序的存储器,当所述处理器执行所述计算机程序时,实现以下步骤:

步骤s1、所述服务端接收客户端发送的云游戏启动控制指令,为所述客户端分配流媒体数据传输通道,并设置对应的视频传输参数初始值、音频传输参数初始值和网络配置参数初始值;

步骤s2、基于当前视频传输参数值、网络配置参数值以及预设的视频数据封装协议生成视频数据包并通过所述流媒体数据传输通道发送给所述客户端,基于当前的音频传输参数、网络配置参数初始值以及预设的音频冗余协议生成音频数据包并通过所述流媒体数据传输通道发送给所述客户端;

步骤s3、每间隔预设的时间段获取当前时间段所述客户端接收的视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率,以及当前时间段服务端发送音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数;

步骤s4、基于当前时间段客户端接收视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率确定视频质量预测值,基于当前时间段服务端发送的音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数确定音频质量预测值;

步骤s5、基于所述视频质量预测值调整视频传输参数值,基于所述音频质量预测值调整音频传输参数值,基于所述视频质量预测值和所述音频质量预测值调整网络配置参数值,然后返回步骤s2。

本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种用于云游戏的流媒体数据传输系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:

本发明极大地降低了云游戏的流媒体数据传输链路的延迟,保证了音频、视频的流畅性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

图1为本发明实施例提供的用于云游戏的流媒体数据传输系统示意图。

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种用于云游戏的流媒体数据传输系统的具体实施方式及其功效,详细说明如后。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

本发明实施例提供了一种用于云游戏的流媒体数据传输系统,如图1所示,包括服务端,所述服务端中包括处理器和存储有计算机程序的存储器,当所述处理器执行所述计算机程序时,实现以下步骤:

步骤s1、所述服务端接收客户端发送的云游戏启动控制指令,为所述客户端分配流媒体数据传输通道,并设置对应的视频传输参数初始值、音频传输参数初始值和网络配置参数初始值;

可以理解的是,服务端能够对接多个服务端进行流媒体数据传输,为每一客户端分配对应的流媒体数据传输通道并设置对应的传输参数,使得每一客户端对应的流媒体数据独立传输,且传输参数能够独立调节。

步骤s2、基于当前视频传输参数值、网络配置参数值以及预设的视频数据封装协议生成视频数据包并通过所述流媒体数据传输通道发送给所述客户端,基于当前的音频传输参数、网络配置参数初始值以及预设的音频冗余协议生成音频数据包并通过所述流媒体数据传输通道发送给所述客户端;

步骤s3、每间隔预设的时间段获取当前时间段所述客户端接收的视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率,以及当前时间段服务端发送音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数;

步骤s4、基于当前时间段客户端接收视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率确定视频质量预测值,基于当前时间段服务端发送的音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数确定音频质量预测值;

步骤s5、基于所述视频质量预测值调整视频传输参数值,基于所述音频质量预测值调整音频传输参数值,基于所述视频质量预测值和所述音频质量预测值调整网络配置参数值,然后返回步骤s2。

其中,视频传输参数和音频传输参数分别基于对应的视频质量预测值以及音频质量预测值单独调整,网络配置参数值基于所述视频质量预测值和所述音频质量预测值调整,使得当前的网络配置参数同时适配视频传输和音频传输。

本发明实施例在极低延迟情况下保证的高码率,高分辨率,帧率的音频、视频的流畅传输,保证了云游戏的低操作延迟,且可在相对恶劣网络下保证视频的帧率和流畅性。

作为一种实施例,所述步骤s2中,基于当前视频传输参数值、网络配置参数值以及预设的视频数据封装协议生成视频数据包,包括:

步骤s21、为每一视频帧按照预设的递增排序设置帧序号,基于rtp(real-timetransportprotocol,实时传输协议)协议生成每一视频帧对应的rtp视频包,确定每一视频帧的rtp视频包个数和该视频帧对应的首个rtp视频包的rtp首包序号;

步骤s22、基于每一视频帧对应的帧序号、rtp视频包个数、rtp首包序号,按照预设的视频数据封装协议为该帧的每一rtp视频包附加协议头和对应的附加视频数据,生成所述视频数据包。

具体地,所述系统预先设置有视频数据包结构,所述视频数据包结构包括附加协议头,rtp协议头、附加数据、rtp数据,其中,所述附加协议头包括帧序号数据段、rtp首包序号数据段,rtp包数量数据段;所述附加数据为所述附加协议头对应的数据。所述rtp协议头和所述rtp数据基于rtp协议生成,预设的视频数据封装协议为时间分片协议,附加协议头和附加数据基于时间分片协议来生成,在rtp的基础上进行了二次封装,得到所述视频数据包结构形式的视频数据。需要说明的是,基于rtp协议生成rtp协议头和所述rtp数据的过程为现有技术,在此不在展开描述。附加协议头中,rtp首包序号指的是视频帧对应的多个rtp视频包中,首个rtp视频包对应的rtp包序号,基于rtp协议为视频帧生成每一的rtp视频包,均分配有对应的rtp包序号,rtp首包序号数据段的位数基于rtp包序号的大小决定:

所述步骤s21-步骤s22具体包括:

步骤s211、所述服务端获取待发送视频帧,基于rtp协议生成所述待发送视频帧对应的rtp协议头和rtp数据,按照预设的递增排序为所述待发送视频帧设置帧序号,存储至所述帧序号数据段,基于rtp协议头和rtp数据确定所述待发送视频帧的rtp视频包数量和对应的首个rtp视频包的rtp包序号,对应存储至rtp首包序号数据段,rtp包数量数据段,生成附加协议头和对应的附加数据;

步骤s212、基于所述待发送视频帧对应的附加协议头、附加数据、rtp协议头和rtp数据,按照所述视频数据包结构进行封装,生成视频数据包。

作为一种实施例,所述步骤s2还包括:

步骤s23、基于当前客户端接收的视频数据包的附加协议头获取帧序号、对应视频帧的rtp视频包个数、rtp首包序号,确定每一帧序号对应的视频帧中,当前未收到的视频数据包对应的rtp视频包的包序号,作为目标rtp视频包序号;

步骤s24、基于所述目标rtp视频包序号重新生成对应的视频数据包重新向客户端发送。

所述步骤s23具体可包括:

步骤s231、基于所述视频数据包的附加协议头中的rtp首包序号数据段、rtp包数量数据段,获取当前视频帧对应的rtp首包序号和rtp包数量;

步骤s232、基于所述当前视频帧对应的rtp首包序号和rtp包数量确定当前视频帧对应的目标接收rtp包序号列表;

步骤s233、基于视频数据包对应的rtp协议头,获取所述接收端已经接收的帧序号为当前视频帧序号的视频数据包所对应的当前接收rtp包序号列表;

步骤s234、对比所述目标接收rtp包序号列表和当前接收rtp包序号列表,若所述目标接收rtp包序号列表和当前接收rtp包序号列表不同,基于所述目标接收rtp包序号列表和当前接收rtp包序号列表确定未接收当前视频帧的丢失rtp包序号作为所述目标rtp视频包序号。

需要说明的是,视频帧发生丢包指的是视频帧对应多个视频数据包,其中部分视频数据包未发送至接收端。基于视频自时间分片协议,为不支持时间分片的协议封装自适应时间分片头,增强其对前向纠错的支持,并降低组帧和重传的逻辑消耗。

作为一种实施例,所述步骤s2中,基于当前的音频传输参数、网络配置参数初始值以及预设的音频冗余协议生成音频数据包,包括:

步骤s25、基于当前的音频传输参数、网络配置参数初始值以及rtp协议生成rtp音频包,基于所述预设的音频冗余协议为所述rtp音频包附加音频冗余协议头和对应的音频冗余数据,生成所述音频数据包,所述音频冗余协议头包括时间戳信息、音频包长和音频包冗余度。

作为一种实施例,所述步骤s2还包括:

步骤s26、基于当前客户端接收的音频数据包的附加音频冗余协议头中的时间戳信息和音频包长确定当前客户端未接收的音频数据包对应的rtp音频包序号,作为目标rtp音频包序号;

步骤s28、基于所述目标rtp音频包序号重新生成对应的音频数据包重新向客户端发送。

作为一种实施例,步骤s4中,基于当前时间段客户端接收视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率确定视频质量预测值,包括:

步骤s41、基于下式确定视频质量预测值:

v=log2{max[a-(1000/b*2),0]*max[c,b-d]/10},

其中,v表示视频质量预测值,a表示最大帧间隔,b表示服务端帧率,c表示丢帧发生数,d表示客户端帧率。

所述系统还包括预设的视频质量梯度表,所述视频传输参数值包括视频冗余系数a和视频码率b,所述步骤s5中,基于所述视频质量预测值调整视频传输参数值,包括:

步骤s51、获取当前客户端的接收的视频质量实际值v0、视频质量预测值v和所述视频质量梯度表,确定视频冗余系数调整系数ω1和视频码率调整系数ω2,比较v与v0,若v小于v0,则执行步骤s52,否则执行步骤s53;

步骤s52、令a=a ω1*l1,b=b-ω2*l2,v0=v;

步骤s53、令a=a-ω1*l1,b=b ω2*l2,v0=v;

其中,l1表示预设的视频冗余系数调整步长,l2表示预设的视频码率调整步长。

通过上述步骤实现了对视频数据传输参数的实时动态调整,降低了视频数据传输的延迟,提高了视频数据的流畅性。

作为一种实施例,所述步骤s3还包括:

步骤s31、获取当前时段音频数据包在服务端发出的时间序列{t1,t2,…tm},以及每一音频数据包在客户端接收的时间序列{t1,t2,…tn},其中,n表示当前时段内传输音频数据包的总数,ti表示当前时段内第i个音频数据包在服务端发出的时间,ti表示当前时段内第i个音频数据包在客户端发出的时间,其中,i的取值为1到m,基于下式确定最大包间隔e:

e=max{(ti-ti-1)-(ti-ti-1)}。

作为一种实施例,步骤s4中,基于当前时间段客户端接收音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数、数据冗余系数确定音频质量预测值,包括:

步骤s42、基于下式确定音频质量预测值:

s=log2{(e-f*10)*max[g*h,n]},

其中,s表示音频质量预测值,e表示最大包间隔,f表示现有缓存包数,g表示数据冗余系数,h表示数据丢包发生数,n表示网络丢包发生数。

所述系统还包括预设的音频质量梯度表,所述音频传输参数值包括音频冗余系数e和音频码率f,所述步骤s5中,基于所述音频质量预测值调整音频传输参数值,包括:

步骤s54、获取当前服务端发送的音频质量实际值s0、音频质量预测值s和所述音频质量梯度表,确定音频冗余系数调整系数β1和音频码率调整系数β2,比较s与s0,若s小于s0,则执行步骤s55,否则执行步骤s56;

步骤s55、令e=e β1*l3,f=f-β2*l4,s0=s;

步骤s56、令e=e-β1*l3,f=f β2*l4,s0=s;

其中,l3表示预设的音频冗余系数调整步长,l4表示预设的音频码率调整步长。

通过上述步骤实现了对音频数据传输参数的实时动态调整,降低了音频数据传输的延迟,提高了音频数据的流畅性。

可以理解的是,视频数据和音频数据传输到客户端以后,直接基于兼有的视频音频同步技术进行同步,在客户端进行播放,再次不在展开描述。

本发明实施例通过带宽预估,网络数据统计,视频数据统计,智能快速调整编码码率帧率等一系列参数,在网络恶劣的情况下保证视频的流畅传输。此外,对阻塞敏感的反应,降低了因阻塞带来的延迟。当网丢包增加时适当降低码率,减少总发包数,空余带宽用以传输冗余和重发数据,有效降低因重发带来的延迟和视频抖动,卡顿。本发明实施例还通过对视频流的自时间分片封装,降低了前向纠错算法的封装和解封消耗,有效降低前向的算力消耗,时间消耗。有效的降低了丢包处理相关问题带来的延迟。本发明实施例对音频的冗余封装算法,增加音频的抗网络干扰能力。总体实现了低延迟,高带宽,高网络变动抵抗的流媒体传输方案。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。


技术特征:

1.一种用于云游戏的流媒体数据传输系统,其特征在于,

包括服务端,所述服务端中包括处理器和存储有计算机程序的存储器,当所述处理器执行所述计算机程序时,实现以下步骤:

步骤s1、所述服务端接收客户端发送的云游戏启动控制指令,为所述客户端分配流媒体数据传输通道,并设置对应的视频传输参数初始值、音频传输参数初始值和网络配置参数初始值;

步骤s2、基于当前视频传输参数值、网络配置参数值以及预设的视频数据封装协议生成视频数据包并通过所述流媒体数据传输通道发送给所述客户端,基于当前的音频传输参数、网络配置参数初始值以及预设的音频冗余协议生成音频数据包并通过所述流媒体数据传输通道发送给所述客户端;

步骤s3、每间隔预设的时间段获取当前时间段所述客户端接收的视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率,以及当前时间段服务端发送音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数;

步骤s4、基于当前时间段客户端接收视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率确定视频质量预测值,基于当前时间段服务端发送的音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数确定音频质量预测值;

步骤s5、基于所述视频质量预测值调整视频传输参数值,基于所述音频质量预测值调整音频传输参数值,基于所述视频质量预测值和所述音频质量预测值调整网络配置参数值,然后返回步骤s2。

2.根据权利要求1所述的系统,其特征在于,

所述步骤s2中,基于当前视频传输参数值、网络配置参数值以及预设的视频数据封装协议生成视频数据包,包括:

步骤s21、为每一视频帧按照预设的递增排序设置帧序号,基于rtp协议生成每一视频帧对应的rtp视频包,确定每一视频帧的rtp视频包个数和该视频帧对应的首个rtp视频包的rtp首包序号;

步骤s22、基于每一视频帧对应的帧序号、rtp视频包个数、rtp首包序号,按照预设的视频数据封装协议为该帧的每一rtp视频包附加协议头和对应的附加视频数据,生成所述视频数据包。

3.根据权利要求2所述的系统,其特征在于,

所述步骤s2还包括:

步骤s23、基于当前客户端接收的视频数据包的附加协议头获取帧序号、对应视频帧的rtp视频包个数、rtp首包序号,确定每一帧序号对应的视频帧中,当前未收到的视频数据包对应的rtp视频包的包序号,作为目标rtp视频包序号;

步骤s24、基于所述目标rtp视频包序号重新生成对应的视频数据包重新向客户端发送。

4.根据权利要求1所述的系统,其特征在于,

所述步骤s2中,基于当前的音频传输参数、网络配置参数初始值以及预设的音频冗余协议生成音频数据包,包括:

步骤s25、基于当前的音频传输参数、网络配置参数初始值以及rtp协议生成rtp音频包,基于所述预设的音频冗余协议为所述rtp音频包附加音频冗余协议头和对应的音频冗余数据,生成所述音频数据包,所述音频冗余协议头包括时间戳信息、音频包长和音频包冗余度。

5.根据权利要求4所述的系统,其特征在于,

所述步骤s2还包括:

步骤s26、基于当前客户端接收的音频数据包的附加音频冗余协议头中的时间戳信息和音频包长确定当前客户端未接收的音频数据包对应的rtp音频包序号,作为目标rtp音频包序号;

步骤s28、基于所述目标rtp音频包序号重新生成对应的音频数据包重新向客户端发送。

6.根据权利要求1所述的系统,其特征在于,

步骤s4中,基于当前时间段客户端接收视频流数据对应的最大帧间隔、丢帧发生数、服务端帧率、客户端帧率确定视频质量预测值,包括:

步骤s41、基于下式确定视频质量预测值:

v=log2{max[a-(1000/b*2),0]*max[c,b-d]/10},

其中,v表示视频质量预测值,a表示最大帧间隔,b表示服务端帧率,c表示丢帧发生数,d表示客户端帧率。

7.根据权利要求1所述的系统,其特征在于,

所述步骤s3还包括:

步骤s31、获取当前时段音频数据包在服务端发出的时间序列{t1,t2,…tm},以及每一音频数据包在客户端接收的时间序列{t1,t2,…tn},其中,n表示当前时段内传输音频数据包的总数,ti表示当前时段内第i个音频数据包在服务端发出的时间,ti表示当前时段内第i个音频数据包在客户端发出的时间,其中,i的取值为1到m,基于下式确定最大包间隔e:

e=max{(ti-ti-1)-(ti-ti-1)}。

8.根据权利要求7所述的系统,其特征在于,

步骤s4中,基于当前时间段客户端接收音频流数据对应的最大包间隔、网络丢包发生数、数据丢包发生数、现有缓存包数、数据冗余系数确定音频质量预测值,包括:

步骤s42、基于下式确定音频质量预测值:

s=log2{(e-f*10)*max[g*h,n]},

其中,s表示音频质量预测值,e表示最大包间隔,f表示现有缓存包数,g表示数据冗余系数,h表示数据丢包发生数,n表示网络丢包发生数。

9.根据权利要求6所述的系统,其特征在于,

所述系统还包括预设的视频质量梯度表,所述视频传输参数值包括视频冗余系数a和视频码率b,所述步骤s5中,基于所述视频质量预测值调整视频传输参数值,包括:

步骤s51、获取当前客户端的接收的视频质量实际值v0、视频质量预测值v和所述视频质量梯度表,确定视频冗余系数调整系数ω1和视频码率调整系数ω2,比较v与v0,若v小于v0,则执行步骤s52,否则执行步骤s53;

步骤s52、令a=a ω1*l1,b=b-ω2*l2,v0=v;

步骤s53、令a=a-ω1*l1,b=b ω2*l2,v0=v;

其中,l1表示预设的视频冗余系数调整步长,l2表示预设的视频码率调整步长。

10.根据权利要求8所述的系统,其特征在于,

所述系统还包括预设的音频质量梯度表,所述音频传输参数值包括音频冗余系数e和音频码率f,所述步骤s5中,基于所述音频质量预测值调整音频传输参数值,包括:

步骤s54、获取当前服务端发送的音频质量实际值s0、音频质量预测值s和所述音频质量梯度表,确定音频冗余系数调整系数β1和音频码率调整系数β2,比较s与s0,若s小于s0,则执行步骤s55,否则执行步骤s56;

步骤s55、令e=e β1*l3,f=f-β2*l4,s0=s;

步骤s56、令e=e-β1*l3,f=f β2*l4,s0=s;

其中,l3表示预设的音频冗余系数调整步长,l4表示预设的音频码率调整步长。

技术总结
本发明涉及一种用于云游戏的流媒体数据传输系统,实现为客户端分配流媒体数据传输通道,并设置视频传输参数初始值、音频传输参数初始值和网络配置参数初始值;生成视频数据包并通过流媒体数据传输通道发送给客户端,生成音频数据包并通过流媒体数据传输通道发送给客户端;每间隔预设的时间段获取当前时间段视频质量预测值和音频质量预测值;基于视频质量预测值调整视频传输参数值,基于音频质量预测值调整音频传输参数值,基于所述视频质量预测值和所述音频质量预测值调整网络配置参数值。本发明极大地降低了云游戏的流媒体数据传输链路的延迟,保证了音频、视频的流畅性。

技术研发人员:董羽生;郭建君;李瑞亮;贾宏伟
受保护的技术使用者:北京蔚领时代科技有限公司
技术研发日:2021.07.07
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-1721.html

最新回复(0)