一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、装置、计算机设备及存储介质与流程

2022-02-22 18:03:18 来源:中国专利 TAG:


1.本技术涉及通信技术领域,具体涉及一种数据传输方法、装置、计算机设备及存储介质。


背景技术:

2.随着移动互联网的飞速发展,用手机等终端进行云游戏、看直播、进行视频通讯、视频会议等现象越来越普遍。在网络环境差的情况下,在数据传输过程中,可能会出现丢包的情况,如在因特网络(internet)中,网络发生拥塞的情况下,中间设备(如路由器)可能会发生由于接收缓存不足而导致视频流数据包溢出,从而发生丢包,使得用户终端出现卡顿,延迟高,马赛克,声音失真等情况。而当前的数据传输方法在进行丢包恢复时效率较低,会严重影响用户的操作体验。


技术实现要素:

3.本技术实施例提供一种数据传输方法、装置、计算机设备及存储介质,可以提高丢包恢复的效率,进一步提升用户的操作体验。
4.本技术实施例提供一种数据传输方法,包括:
5.通过网页即时通信向通信对端发送视频流数据包,所述视频流数据包用于供所述通信对端渲染并播放游戏视频画面;
6.获取与所述通信对端进行所述视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值;
7.根据所述实际网络延迟与所述网络延迟阈值的关系,在至少两种抗丢包策略中选择与所述实际网络延迟对应的目标抗丢包策略;
8.根据所述实际网络延迟,计算实施所述目标抗丢包策略时确定抗丢包数据所需的相关参数;
9.基于所述目标抗丢包策略和所述相关参数向所述通信对端发送所述视频流数据包丢失时所需的抗丢包数据,以使所述通信对端丢失所述视频流数据包时基于所述抗丢包数据对丢失的视频流数据包进行恢复。
10.相应的,本技术实施例还提供一种数据传输装置,包括:
11.第一发送单元,用于通过网页即时通信向通信对端发送视频流数据包,所述视频流数据包用于供所述通信对端渲染并播放游戏视频画面;
12.获取单元,用于获取与所述通信对端进行所述视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值;
13.选择单元,用于根据所述实际网络延迟与所述网络延迟阈值的关系,在至少两种抗丢包策略中选择与所述实际网络延迟对应的目标抗丢包策略;
14.计算单元,用于根据所述实际网络延迟,计算实施所述目标抗丢包策略时确定抗丢包数据所需的相关参数;
15.第二发送单元,用于基于所述目标抗丢包策略和所述相关参数向所述通信对端发送所述视频流数据包丢失时所需的抗丢包数据,以使所述通信对端丢失所述视频流数据包时基于所述抗丢包数据对丢失的视频流数据包进行恢复。
16.可选的,所述实际网络延迟包括实际往返时间,所述视频流数据包包括第一传输控制包和第二传输控制包,所述获取单元还用于:
17.获取向所述通信对端发送所述第一传输控制包的发送时间;
18.获取所述通信对端接收所述第一传输控制包和发送所述第二传输控制包的第一时间差;
19.获取接收所述第二传输控制包的接收时间;
20.计算所述接收时间、所述第一时间差和所述发送时间的差值,形成第二时间差,将所述第二时间差作为所述实际往返时间。
21.可选的,所述网络延迟阈值包括第一网络延迟阈值和第二网络延迟阈值,所述第一网络延迟阈值小于所述第二网络延迟阈值,所述抗丢包策略包括第一策略和第二策略,所述选择单元还用于:
22.若所述实际网络延迟小于等于所述第一网络延迟阈值,选择所述实际网络延迟对应的所述目标抗丢包策略为所述第一策略;
23.若所述实际网络延迟大于等于所述第二网络延迟阈值,选择所述实际网络延迟对应的所述目标抗丢包策略为所述第二策略;
24.若所述实际网络延迟大于所述第一网络延迟阈值,且小于所述第二网络延迟阈值,选择所述实际网络延迟对应的所述目标抗丢包策略为所述第一策略和所述第二策略。
25.可选的,所述相关参数包括缓存队列长度和冗余度,所述计算单元还用于:
26.若所述目标抗丢包策略包括所述第一策略,根据所述实际网络延迟,计算实施所述第一策略时确认所述抗丢包数据所需的所述缓存队列长度;
27.若所述目标抗丢包策略包括所述第二策略,根据所述实际网络延迟,计算实施所述第二策略时确认所述抗丢包数据所需的所述冗余度。
28.可选的,所述计算单元还用于:
29.若所述目标抗丢包策略包括所述第一策略,根据所述实际网络延迟计算所述缓存队列长度的调整参考长度;
30.若所述实际网络延迟满足预设延迟条件,获取最新的历史缓存队列长度;
31.根据所述调整参考长度和所述历史缓存队列长度,计算实施所述第一策略时确认所述抗丢包数据所需的所述缓存队列长度。
32.可选的,所述计算单元还用于:
33.若所述实际网络延迟不满足预所述设延迟条件,将所述调整参考长度作为实施所述第一策略时确认所述抗丢包数据所需的所述缓存队列长度。
34.可选的,所述视频流数据包包括丢包率,所述计算单元还用于:
35.从所述视频流数据包中获取所述丢包率;
36.若所述丢包率满足预设丢包条件,根据所述实际网络延迟和所述第一网络延迟阈值计算所述冗余度的第一参考信息;
37.根据所述第二网络延迟阈值和所述第一网络延迟阈值计算所述冗余度的第二参
考信息;
38.根据所述第一参考信息和所述第二参考信息,计算实施所述第二策略时确认所述抗丢包数据所需的所述冗余度。
39.可选的,所述计算单元还用于:
40.若所述目标抗丢包策略为所述第一策略,根据所述缓存队列长度缓存所述视频流数据包,形成第一缓存队列;
41.当所述通信对端丢失所述视频流数据包,且接收到所述通信对端发送的第一数据重传请求时,根据所述第一数据重传请求确定丢失的视频流数据包的第一标识;
42.所述第二发送单元还用于:
43.基于所述第一策略在所述第一缓存队列中确定所述第一标识对应的视频流数据包,为所述抗丢包数据;
44.向所述通信对端发送所述视频流数据包丢失时所需的所述抗丢包数据,以使所述通信对端丢失所述视频流数据包时基于所述抗丢包数据对丢失的视频流数据包进行恢复。
45.可选的,所述计算单元还用于:
46.若所述目标抗丢包策略为所述第二策略,根据所述冗余度和所述视频流数据包生成第一冗余数据,作为所述抗丢包数据;
47.所述第二发送单元还用于:
48.向所述通信对端发送所述视频流数据包和所述抗丢包数据,以使所述通信对端丢失所述视频流数据包时基于所述抗丢包数据对丢失的视频流数据包进行恢复。
49.可选的,所述抗丢包数据包括第一抗丢包数据和第二抗丢包数据,所述计算单元还用于:
50.若所述目标抗丢包策略为所述第一策略和所述第二策略,根据所述冗余度和所述视频流数据包生成第二冗余数据,作为所述第一抗丢包数据;
51.所述第二发送单元还用于:
52.向所述通信对端发送所述视频流数据包和所述第一抗丢包数据,以使所述通信对端丢失所述视频流数据包时基于所述第一抗丢包数据对丢失的视频流数据包进行恢复。
53.可选的,所述第二发送单元还用于:
54.根据所述缓存队列长度缓存所述视频流数据包,形成第二缓存队列;
55.当所述通信对端丢失所述视频流数据包,若所述通信对端无法基于所述第一抗丢包数据恢复所述丢失的视频流数据包,且接收到所述通信对端发送的第二数据重传请求,根据所述第二数据重传请求确定所述丢失的视频流数据包的第二标识;
56.在所述第二缓存队列中确定所述第二标识对应的视频流数据包,作为所述第二抗丢包数据;
57.向所述通信对端发送所述第二抗丢包数据,以使所述通信对端基于所述第二抗丢包数据对所述丢失的视频流数据包进行恢复。
58.同样的,本技术实施例还提供一种计算机设备,包括:
59.存储器,用于存储计算机程序;
60.处理器,用于执行所述数据传输方法任一项的步骤。
61.此外,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质
上存储有计算机程序,所述计算机程序被处理器执行时实现所述数据传输方法任一项的步骤。
62.本技术实施例提供一种数据传输方法、装置、计算机设备及存储介质,根据视频流数据包传输时的实际网络延迟,在至少两种抗丢包策略中选择实际网络延迟对应的目标抗丢包策略,从而确定对当前网络情况更有效的抗丢包策略。并且基于实际网络延迟计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数,当发生丢包时,根据相关参数确定的抗丢包数据可以有效地帮助通信对端对丢失的视频流数据包进行恢复。从选择的目标抗丢包策略和相关参数两方面提高丢包恢复的效率,进一步提升用户的操作体验。
附图说明
63.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要兑现的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
64.图1是本技术实施例提供的数据传输装置的系统示意图;
65.图2是本技术实施例提供的数据传输方法的流程示意图;
66.图3是本技术实施例提供的实际往返时间的计算过程参考示意图;
67.图4是本技术实施例提供的缓存队列长度计算方法的流程图;
68.图5是本技术实施例提供的冗余度计算方法的流程图;
69.图6是本技术实施例提供的数据传输方法的另一流程示意图;
70.图7是本技术实施例提供的数据传输装置的结构示意图;
71.图8是本技术实施例提供的计算机设备的结构示意图。
具体实施方式
72.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
73.本技术实施例提供一种数据传输方法、装置、计算机设备及存储介质。具体地,本技术实施例的数据传输方法可以由计算机设备执行或是服务器执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
74.当该数据传输方法运行于服务器时,可以为云游戏。云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏应用程序的运行主体和游戏画面呈现主体是分
离的,数据传输方法地储存与运行是在云游戏服务器上完成的。而游戏画面呈现是在云游戏的客户端完成的,云游戏客户端主要用于游戏数据地接收、发送以及游戏画面呈现,例如,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,前述提到的计算机设备,但是进行游戏数据处理的为云端的云游戏服务器。在进行游戏时,用户操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩形成视频流数据包,通过网络返回云游戏客户端,最后,通过云游戏客户端对视频流数据包进行解码并输出游戏画面。
75.请参阅图1,图1为本技术实施例提供的数据传输装置的系统示意图。该系统可以包括云游戏服务器101和云游戏客户端102。云游戏服务器101可以通过不同的网络与云游戏客户端102连接,例如,网络可以为无线网络或者有线网络,无线网络可以为无线局域网(wlan)、局域网(lan)、蜂窝网络、2g网络、3g网络、4g网络、5g网络等,从而实现云游戏服务器101和云游戏客户端102之间的视频流数据包通信。云游戏服务器101用于通过网页即时通信向云游戏客户端102发送视频流数据包,视频流数据包用于供云游戏客户端102渲染并播放游戏视频画面;获取与云游戏客户端102进行视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值;根据实际网络延迟与网络延迟阈值的关系,在至少两种抗丢包策略中选择与实际网络延迟对应的目标抗丢包策略;根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数;基于目标抗丢包策略和相关参数向云游戏客户端102发送视频流数据包丢失时所需的抗丢包数据,以使云游戏客户端102丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
76.云游戏客户端102用于接收云游戏服务器101发送的视频流数据包和抗丢包数据,当丢失视频流数据包时,根据抗丢包数据对丢失的视频流数据包进行恢复。
77.以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
78.本实施例将从数据传输装置的角度进行描述,该数据传输装置具体可以集成在云游戏服务器中,该云游戏服务器可以包括智能手机、笔记本电脑、平板电脑以及个人计算机等终端设备。
79.本技术实施例提供的一种数据传输方法,该方法可以由终端设备的处理器执行,如图2所示,该数据传输方法的具体流程主要包括步骤201至步骤205,详细说明如下:
80.步骤201、通过网页即时通信向通信对端发送视频流数据包,视频流数据包用于供通信对端渲染并播放游戏视频画面。
81.在本技术实施例中,webrtc(web real-time communication,网页即时通信)是一个支持网页浏览器进行实时语音对话或视频对话的技术,基于p2p(peer-to-peer,点对点)网络,通过浏览器提供简单的javascript就可以达到实时通讯的目的。
82.在本技术实施例中,视频流数据包是可以形成游戏视频画面的数据包,终端可以稳定连续地向通信对端发送视频流数据包,使得通信对端可以在整个游戏视频文件被传输完毕之前显示已传输的视频流数据包对应的游戏视频画面。
83.步骤202、获取与通信对端进行视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值。
84.在本技术实施例中,网络延迟可以指视频流数据包在传输介质中传输所用的时
ptotocol,实时传输控制协议)来传输控制信息,用于反馈终端和通信对端之间的网络服务质量和同步媒体流。在终端和通信对端进行rtp会话期间,终端和通信对端分别周期性地互相发送rtcp包,根据rtcp包携带的控制信息的不同,可以将rtcp包分为rr(接收端报告包),sr(发送端报告包),seds(源描述包),bye(离开申明)和app(特殊应用包)等五类。若终端作为发送端,通信对端作为接收端,发送端周期性地向接收端发送sr包,使发送端向接收端报告发送情况,sr包可以包括此包的发送时间lsr、发送端同步信源、发送端从开始发送sr包到产生这个sr包的时间里发送的rtp视频流数据包的总数、发送端从开始发送sr包到产生这个sr包的时间里发送的rtp视频流数据包的总字节数和report block(报告块)等等,report block为发送端对近期收到的rtp数据的反馈情况,report block可以包括从上一个sr或rr包发出以来,发送端接收到的rtp视频流数据包的丢包率等。
96.同样地,接收端周期性地向发送端发送rr包,使接收端向发送端报告发送情况,rr包可以包括接收端最近接收sr包和发送该rr包的时间差dlsr、接收端同步信源、接收端从开始发送rr包到产生这个rr包的时间里发送的rtp视频流数据包的总数、接收端从开始发送rr包到产生这个rr包的时间里发送的rtp视频流数据包的总字节数等等。
97.如图3所示,当发送端向接收端发送sr包后,发送端记录sr包的发送时间lsr,接收端接收sr包后,记录接收sr包的时间和发送rr包的时间,计算两者的时间差,从而得出接收sr包和发送rr包的时间差dlsr,接收端将dlsr记录在rr包中,向发送端发送rr包,发送端接收到rr包,记录接收rr包的时间t,并且从rr包中获取dlsr,计算得出实际往返时间rtt=t-lsr-dlsr。
98.步骤203、根据实际网络延迟与网络延迟阈值的关系,在至少两种抗丢包策略中选择与实际网络延迟对应的目标抗丢包策略。
99.在本技术实施例中,网络延迟阈值可以包括第一网络延迟阈值和第二网络延迟阈值,第一网络延迟阈值小于第二网络延迟阈值,从而形成一个网络延迟范围。第一网络延迟阈值和第二网络延迟阈值的数值设置不受限制,例如,第一网络延迟阈值可以是20ms,第二网络延迟阈值可以是200ms。
100.在本技术实施例中,抗丢包策略可以包括fec(forward error correction,前向纠错)、nack(丢包重传)和包复制等等。其中,fec是基于终端和通信对端之间发送的视频流数据包,按照一定的编码生成冗余包,在通信过程中,终端将视频流数据包和冗余包都发送给通信对端,通信对端接收到视频流数据包和冗余包,当通信对端丢失视频流数据包,根据冗余包可以按照一定的概率解码恢复丢失的视频流数据包。采用fec的优点是无重传,实时性比较高,对一般丢包场景有效,能以一定概率恢复丢包。
101.其中,nack是通信过程中,终端向通信对端发送视频流数据包,并且终端缓存最近一段时间内向通信对端发送的视频流数据包,形成缓存队列,通信对端接收视频流数据包,当通信对端丢失视频流数据包时,向终端发送数据重传请求,终端根据数据重传请求在缓存队列中寻找丢失的视频流数据包,向通信对端重新发送丢失的视频流数据包。
102.此外,包复制是终端基于向通信对端发送的视频流数据包,按照视频流数据包相同的内容拷贝一份或多份,并将拷贝的视频流数据包发送给通信对端,当通信对端丢失视频流数据包,可以根据拷贝的视频流数据包恢复丢失的视频流数据包。
103.在本技术实施例中,当网络延迟阈值包括第一网络延迟阈值和第二网络延迟阈
值,第一网络延迟阈值小于第二网络延迟阈值,抗丢包策略包括第一策略和第二策略时,上述步骤202“根据实际网络延迟与网络延迟阈值的关系,在至少两种抗丢包策略中选择实际网络延迟对应的目标抗丢包策略”可以包括:
104.若实际网络延迟小于等于第一网络延迟阈值,选择实际网络延迟对应的目标抗丢包策略为第一策略;
105.若实际网络延迟大于等于第二网络延迟阈值,选择实际网络延迟对应的目标抗丢包策略为第二策略;
106.若实际网络延迟大于第一网络延迟阈值,且小于第二网络延迟阈值,选择实际网络延迟对应的目标抗丢包策略为第一策略和第二策略。
107.在本技术实施例中,由于nack需要发送数据重传请求以及重发视频流数据包,所以nack适用于网络延迟较小的情况,当实际网络延迟小于等于第一网络延迟阈值,即实际网络延迟较小时,可以选择目标抗丢包策略为nack,即第一策略为nack。
108.在本技术的一种实施方式中,由于fec无重传,适用于网络延迟较大的情况,当实际网络延迟大于等于第二网络延迟阈值,即实际网络延迟较大时,可以选择目标抗丢包策略为fec,即第二策略为fec。
109.在本技术实施例中,若实际网络延迟大于第一网络延迟阈值,且小于第二网络延迟阈值,即实际网络延迟较为正常时,可以同时采用nack和fec,从而提升丢包恢复的效率。
110.步骤204、根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数。
111.在本技术实施例中,当实施fec时,抗丢包数据为生成的冗余包,为了确定生成冗余包的个数,相关参数可以为生成冗余包所需参照的冗余度。当实施nack时,抗丢包数据为在缓存队列中重新找的丢失的视频流数据包,为了更好地提升在缓存队列中能够找到丢失的视频流数据包的概率,相关参数可以为缓存队列长度。
112.在本技术实施例中,相关参数包括缓存队列长度和冗余度,上述步骤203“根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数”可以是:
113.若目标抗丢包策略包括第一策略,根据实际网络延迟,计算实施第一策略时确认抗丢包数据所需的缓存队列长度;
114.若目标抗丢包策略包括第二策略,根据实际网络延迟,计算实施第二策略时确认抗丢包数据所需的冗余度。
115.在本技术实施例中,上述步骤“若目标抗丢包策略包括第一策略,根据实际网络延迟,计算实施第一策略时确认抗丢包数据所需的缓存队列长度”具体可以是:
116.若目标抗丢包策略包括第一策略,根据实际网络延迟计算缓存队列长度的调整参考长度;
117.若实际网络延迟满足预设延迟条件,获取最新的历史缓存队列长度;
118.根据调整参考长度和历史缓存队列长度,计算实施第一策略时确认抗丢包数据所需的缓存队列长度。
119.在本技术实施例中,调整参考长度可以是实际网络延迟与预设数值的和,最新的历史缓存队列长度为上一次计算得出的缓存队列长度。具体地,上述步骤“根据调整参考长度和历史缓存队列长度,计算实施第一策略时确认抗丢包数据所需的缓存队列长度”可以
是获取调整参考长度对应的第一比例参数,计算调整参考长度与第一比例参数的第一乘积;获取最新的历史缓存队列长度对应的第二比例参数,计算历史缓存队列长度与第二比例参数的第二乘积;计算第一乘积和第二乘积的和,若计算得到的和满足预设队列长度范围,将和作为实施第一策略所需的缓存队列长度。此外,若计算得出的缓存队列长度小于最小阈值(例如200ms),则令缓存队列长度为最小阈值,若计算得出的缓存队列长度大于最大阈值(例如,1000ms),则令缓存队列长度为最大阈值。
120.例如,如图4所示,获取实际往返时间rtt,计算调整参考长度tmp_nack_queue_ms=rtt 100,如果rtt大于零,计算中间值mav=(7*
121.nack_queue_m tmp_nack_queue_ms)/8,令计算得出的缓存队列长度nack_queue_m=mavg。
122.在本技术实施例中,上述步骤“若目标抗丢包策略包括第一策略,根据实际网络延迟计算得到缓存队列长度的调整参考长度”之后,还包括:
123.若实际网络延迟不满足预设延迟条件,将调整参考长度作为实施第一策略时确认抗丢包数据所需的缓存队列长度。
124.例如,如图4所示,若实际往返时间rtt等于零,则中间值mav=
125.tmp_nack_queue_ms,令计算得出的缓存队列长度nack_queue_m=mavg。此外,判断计算出的缓存队列长度nack_queue_ms是否小于200,若是,则可以设置缓存队列长度nack_queue_ms=200,若否,则判断缓存队列长度nack_queue_ms是否大于1000,若是,则设置缓存队列长度nack_queue_ms=1000,若否,则确定返回nack_queue_ms,确定计算出的nack_queue_ms的值为缓存队列长度。
126.在本技术实施例中,视频流数据包包括丢包率,上述步骤“若目标抗丢包策略包括第二策略,根据实际网络延迟,计算实施第二策略时确认抗丢包数据所需的冗余度”可以是:
127.从视频流数据包中获取丢包率;
128.若丢包率满足预设丢包条件,根据实际网络延迟和第一网络延迟阈值计算冗余度的第一参考信息;
129.根据第二网络延迟阈值和第一网络延迟阈值计算冗余度的第二参考信息;
130.根据第一参考信息和第二参考信息,计算实施第二策略时确认抗丢包数据所需的冗余度。
131.在本技术实施例中,若丢包率满足预设丢包条件,计算实际网络延迟与第一网络延迟阈值的第一差值,获取第一差值对应的第三比例参数,计算第一差值与第三比例参数的第三乘积,第一参考信息可以是第三乘积。第二参考信息可以是第二网络延迟阈值与第一网络延迟阈值的第二差值。上述步骤“根据第一参考信息和第二参考信息,计算实施第二策略时确认抗丢包数据所需的冗余度”可以是计算第三乘积与第二差值的商值;计算预设冗余度与商值的和,得到实施第二策略所需的冗余度。
132.在本技术实施例中,若丢包率不满足预设丢包条件,则关闭fec。其中,预设丢包条件可以是丢包率大于最大丢包阈值(例如,0.5),或者丢包率等于零。若丢包率大于最大丢包阈值,则表明此时线路通信质量很差,过多的冗余包会加剧线路拥塞,因此关闭fec。若丢包率等于零,则表明线路通信质量较好,没有必要发送冗余包,因此关闭fec。
133.例如,如图5所示,获取实际往返时间rtt和丢包率loss,判断丢包率loss是否大于0.5,若是,则关闭fec,若否,则判断丢包率loss是否等于0,若丢包率loss等于0,关闭fec,若否,则计算冗余度=0.2 0.3*(rtt-lowrttthreshold)/(hightttthreshold-lowrttthreshold)。
134.在本技术实施例中,根据冗余度确定终端向通信终端发送冗余包的数量,即r=冗余包个数/(视频流数据包个数 冗余包个数)。当实际网络延迟较小,即网络环境较好的情况下,减少冗余包的数量,当实际网络延迟较大,即网络环境较差的情况下,适当增加冗余包的数量。
135.步骤205、基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
136.在本技术实施例中,若选择目标抗丢包策略为第一策略,即nack策略,在“根据实际网络延迟,计算实施第一策略时确认抗丢包数据所需的缓存队列长度”之后,还包括:若目标抗丢包策略为第一策略,根据缓存队列长度缓存视频流数据包,形成第一缓存队列;当通信对端丢失视频流数据包,且接收到通信对端发送的第一数据重传请求时,根据第一数据重传请求确定丢失的视频流数据包的第一标识。此时,上述步骤205中“基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复”可以是:基于第一策略在第一缓存队列中确定第一标识对应的视频流数据包,为抗丢包数据;向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
137.在本技术实施例中,若缓存队列长度为100ms,则第一缓存队列中包括最近100ms内终端向通信对端发送的视频流数据包。
138.在本技术实施例中,第一标识可以是分辨丢失的视频流数据包的标识,例如可以是丢失的视频流数据包的发送序号、丢失的视频流数据包的特定编号等。
139.例如,若目标抗丢包策略为nack,终端向通信对端发送r1,r2,r3,r4,r5,5个视频流数据包,每个视频流数据包具有对应的第一标识,并且这5个视频流数据包在缓存队列长度内,终端将r1,r2,r3,r4,r5存储在缓存队列中,当通信终端丢失视频流数据包r3,向终端发送包括视频流数据包r3的第一标识的第一数据重传请求,终端从第一数据重传请求中获取视频流数据包r3的第一标识,在缓存队列中确定丢失的视频流数据包r3,向通信终端发送视频流数据包r3。
140.在本技术实施例中,若目标抗丢包策略为第二策略,即fec,在上述步骤“根据实际网络延迟,计算实施第二策略时确认抗丢包数据所需的冗余度”之后,且向通信对端发送视频流数据包之前,可以是:若目标抗丢包策略为第二策略,根据冗余度和视频流数据包生成第一冗余数据,作为抗丢包数据。此时上述步骤205“基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复”包括向通信对端发送视频流数据包和抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
141.例如,若冗余度为0.2,可以设置5个视频流数据包对应1个冗余包,将冗余包作为抗丢包数据。将5个视频流数据包和对应的1个冗余包作为一个数据流模块,终端向通信对端发送数据流模块。
142.在本技术实施例中,若目标抗丢包数据为第一策略和第二策略,即fec结合nack,则抗丢包数据可以包括第一抗丢包数据和第二抗丢包数据,第一抗丢包数据可以包括冗余包,第二抗丢包数据可以包括在缓存队列中确定的丢失的视频流数据包,此时,在上述步骤“根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数”之后,可以包括:若目标抗丢包策略为第一策略和第二策略,根据冗余度和视频流数据包生成第二冗余数据,作为第一抗丢包数据,上述步骤205“基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复”可以包括:向通信对端发送视频流数据包和第一抗丢包数据,以使通信对端丢失视频流数据包时基于第一抗丢包数据对丢失的视频流数据包进行恢复。
143.进一步地,上述步骤“向通信对端发送视频流数据包和第一抗丢包数据”之后,可以包括:根据缓存队列长度缓存视频流数据包,形成第二缓存队列;当通信对端丢失视频流数据包,若通信对端无法基于第一抗丢包数据恢复丢失的视频流数据包,且接收到通信对端发送的第二数据重传请求,根据第二数据重传请求确定丢失的视频流数据包的第二标识;在第二缓存队列中确定第二标识对应的视频流数据包,作为第二抗丢包数据;向通信对端发送第二抗丢包数据,以使通信对端基于第二抗丢包数据对丢失的视频流数据包进行恢复。
144.例如,若确定目标抗丢包策略为nack结合fec,终端向通信对端发送r1,r2,r3,r4,r5,l1,5个视频流数据包和1个冗余包,每个视频流数据包具有对应的第二标识,并且这5个视频流数据包在缓存队列长度内,终端将r1,r2,r3,r4,r5存储在缓存队列中。当通信终端丢失视频流数据包r3,根据未丢失的视频流数据包和冗余包l1恢复丢失的视频流数据包r3,若通信终端无法恢复视频流数据包r3,向终端发送包括视频流数据包r3的第二标识的第二数据重传请求,终端从第二数据重传请求中获取视频流数据包r3的第二标识,在缓存队列中确定丢失的视频流数据包r3,向通信终端发送视频流数据包r3。
145.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
146.本技术实施例提供的数据传输方法,根据视频流数据包传输时的实际网络延迟,在至少两种抗丢包策略中选择实际网络延迟对应的目标抗丢包策略,从而确定对当前网络情况更有效的抗丢包策略。并且基于实际网络延迟计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数,当发生丢包时,根据相关参数确定的抗丢包数据可以有效地帮助通信对端对丢失的视频流数据包进行恢复。从选择的目标抗丢包策略和相关参数两方面提高丢包恢复的效率,进一步提升用户的操作体验。
147.请参阅图6,图6为本技术实施例提供的数据传输方法的另一流程示意图。该方法的具体流程可以如下:
148.步骤601、获取实际终端与通信对端之间进行数据包传输时的实际往返时间。
149.例如,获取向通信对端发送第一传输控制包的发送时间;获取通信对端接收第一
传输控制包和发送第二传输控制包的第一时间差;获取接收第二传输控制包的接收时间;计算接收时间、第一时间差和发送时间的差值,形成第二时间差,将第二时间差作为实际往返时间。其中,数据包可以是视频流数据包。
150.步骤602、判断实际往返时间是否小于等于最小往返时间阈值。
151.步骤603、若是,则只采用nack作为目标抗丢包策略。
152.步骤604、若否,则判断实际往返时间是否大于等于最大往返时间阈值。
153.步骤605、若是,则只采用fec作为目标抗丢包策略。
154.步骤606、若否,则采用nack和fec结合作为目标抗丢包策略。
155.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
156.本技术实施例提供的数据传输方法,根据视频流数据包传输时的实际网络延迟,在至少两种抗丢包策略中选择实际网络延迟对应的目标抗丢包策略,从而确定对当前网络情况更有效的抗丢包策略,提高丢包恢复的效率,进一步提升用户的操作体验。
157.为便于更好的实施本技术实施例的数据传输方法,本技术实施例还提供一种数据传输装置。请参阅图7,图7为本技术实施例提供的数据传输装置的结构示意图。该数据传输装置可以包括第一发送单元701、获取单元702、选择单元703、计算单元704和第二发送单元705。
158.其中,第一发送单元701,用于通过网页即时通信向通信对端发送视频流数据包,视频流数据包用于供通信对端渲染并播放游戏视频画面;
159.获取单元702,用于获取与通信对端进行视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值;
160.选择单元703,用于根据实际网络延迟与网络延迟阈值的关系,在至少两种抗丢包策略中选择与实际网络延迟对应的目标抗丢包策略;
161.计算单元704,用于根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数;
162.第二发送单元705,用于基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
163.可选的,实际网络延迟包括实际往返时间,视频流数据包包括第一传输控制包和第二传输控制包,获取单元702还用于:
164.获取向通信对端发送第一传输控制包的发送时间;
165.获取通信对端接收第一传输控制包和发送第二传输控制包的第一时间差;
166.获取接收第二传输控制包的接收时间;
167.计算接收时间、第一时间差和发送时间的差值,形成第二时间差,将第二时间差作为实际往返时间。
168.可选的,网络延迟阈值包括第一网络延迟阈值和第二网络延迟阈值,第一网络延迟阈值小于第二网络延迟阈值,抗丢包策略包括第一策略和第二策略,选择单元703还用于:
169.若实际网络延迟小于等于第一网络延迟阈值,选择实际网络延迟对应的目标抗丢
包策略为第一策略;
170.若实际网络延迟大于等于第二网络延迟阈值,选择实际网络延迟对应的目标抗丢包策略为第二策略;
171.若实际网络延迟大于第一网络延迟阈值,且小于第二网络延迟阈值,选择实际网络延迟对应的目标抗丢包策略为第一策略和第二策略。
172.可选的,相关参数包括缓存队列长度和冗余度,计算单元704还用于:
173.若目标抗丢包策略包括第一策略,根据实际网络延迟,计算实施第一策略时确认抗丢包数据所需的缓存队列长度;
174.若目标抗丢包策略包括第二策略,根据实际网络延迟,计算实施第二策略时确认抗丢包数据所需的冗余度。
175.可选的,计算单元704还用于:
176.若目标抗丢包策略包括第一策略,根据实际网络延迟计算缓存队列长度的调整参考长度;
177.若实际网络延迟满足预设延迟条件,获取最新的历史缓存队列长度;
178.根据调整参考长度和历史缓存队列长度,计算实施第一策略时确认抗丢包数据所需的缓存队列长度。
179.可选的,计算单元704还用于:
180.若实际网络延迟不满足预设延迟条件,将调整参考长度作为实施第一策略时确认抗丢包数据所需的缓存队列长度。
181.可选的,视频流数据包包括丢包率,计算单元704还用于:
182.从视频流数据包中获取丢包率;
183.若丢包率满足预设丢包条件,根据实际网络延迟和第一网络延迟阈值计算冗余度的第一参考信息;
184.根据第二网络延迟阈值和第一网络延迟阈值计算冗余度的第二参考信息;
185.根据第一参考信息和第二参考信息,计算实施第二策略时确认抗丢包数据所需的冗余度。
186.可选的,计算单元704还用于:
187.若目标抗丢包策略为第一策略,根据缓存队列长度缓存视频流数据包,形成第一缓存队列;
188.当通信对端丢失视频流数据包,且接收到通信对端发送的第一数据重传请求时,根据第一数据重传请求确定丢失的视频流数据包的第一标识;
189.第二发送单元705还用于:
190.基于第一策略在第一缓存队列中确定第一标识对应的视频流数据包,为抗丢包数据;
191.向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
192.可选的,计算单元704还用于:
193.若目标抗丢包策略为第二策略,根据冗余度和视频流数据包生成第一冗余数据,作为抗丢包数据;
194.第二发送单元还用于:
195.向通信对端发送视频流数据包和抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
196.可选的,抗丢包数据包括第一抗丢包数据和第二抗丢包数据,计算单元704还用于:
197.若目标抗丢包策略为第一策略和第二策略,根据冗余度和视频流数据包生成第二冗余数据,作为第一抗丢包数据;
198.第二发送单元还用于:
199.向通信对端发送视频流数据包和第一抗丢包数据,以使通信对端丢失视频流数据包时基于第一抗丢包数据对丢失的视频流数据包进行恢复。
200.可选的,第二发送单元705还用于:
201.根据缓存队列长度缓存视频流数据包,形成第二缓存队列;
202.当通信对端丢失视频流数据包,若通信对端无法基于第一抗丢包数据恢复丢失的视频流数据包,且接收到通信对端发送的第二数据重传请求,根据第二数据重传请求确定丢失的视频流数据包的第二标识;
203.在第二缓存队列中确定第二标识对应的视频流数据包,作为第二抗丢包数据;
204.向通信对端发送第二抗丢包数据,以使通信对端基于第二抗丢包数据对丢失的视频流数据包进行恢复。
205.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
206.本技术实施例提供的数据传输装置,第一发送单元701通过网页即时通信向通信对端发送视频流数据包,视频流数据包用于供通信对端渲染并播放游戏视频画面;之后,通过获取单元702获取与通信对端进行视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值;接着,通过选择单元703根据实际网络延迟与网络延迟阈值的关系,在至少两种抗丢包策略中选择与实际网络延迟对应的目标抗丢包策略,然后,通过计算单元704根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数;最后,通过第二发送单元705基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。从选择的目标抗丢包策略和相关参数两方面提高丢包恢复的效率,进一步提升用户的操作体验。
207.相应的,本技术实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理等终端设备。如图8所示,图8为本技术实施例提供的计算机设备的结构示意图。该计算机设备800包括有一个或者一个以上处理核心的处理器801、有一个或一个以上计算机可读存储介质的存储器802及存储在存储器802上并可在处理器上运行的计算机程序。其中,处理器801与存储器802电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
208.处理器801是计算机设备800的控制中心,利用各种接口和线路连接整个计算机设
备800的各个部分,通过运行或加载存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行计算机设备800的各种功能和处理数据,从而对计算机设备800进行整体监控。
209.在本技术实施例中,计算机设备800中的处理器801会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能:
210.通过网页即时通信向通信对端发送视频流数据包,视频流数据包用于供通信对端渲染并播放游戏视频画面;获取与通信对端进行视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值;根据实际网络延迟与网络延迟阈值的关系,在至少两种抗丢包策略中选择与实际网络延迟对应的目标抗丢包策略;根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数;向通信对端发送视频流数据包;基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
211.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
212.可选的,如图8所示,计算机设备800还包括:触控显示屏803、射频电路804、音频电路805、输入单元806以及电源807。其中,处理器801分别与触控显示屏803、射频电路804、音频电路805、输入单元806以及电源807电性连接。本领域技术人员可以理解,图8中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
213.触控显示屏803可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏803可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户兑现手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器801,并能接收处理器801发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器801以确定触摸事件的类型,随后处理器801根据触摸事件的类型在显示面板上提供相应的视觉输出。在本技术实施例中,可以将触控面板与显示面板集成到触控显示屏803而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏803也可以作为输入单元806的一部分实现输入功能。
214.在本技术实施例中,通过处理器801计算实际网络延迟,并获取网络延迟阈值,进而根据两者的关系,确定实际网络延迟对应的目标抗丢包策略,并且通过处理器801根据实际网络延迟计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数,从而通过处理器801确定抗丢包数据。
215.射频电路804可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
216.音频电路805可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路805可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路805接收后转换为音频数据,再将音频数据输出处理器801处理后,经射频电路804以发送给比如另一计算机设备,或者将音频数据输出至存储器802以便进一步处理。音频电路805还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
217.输入单元806可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
218.电源807用于给计算机设备800的各个部件供电。可选的,电源807可以通过电源管理系统与处理器801逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源807还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
219.尽管图8中未示出,计算机设备800还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
220.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
221.由上可知,本实施例提供的计算机设备,可以根据视频流数据包传输时的实际网络延迟,在至少两种抗丢包策略中选择实际网络延迟对应的目标抗丢包策略,从而确定对当前网络情况更有效的抗丢包策略。并且基于实际网络延迟计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数,当发生丢包时,根据相关参数确定的抗丢包数据可以有效地帮助通信对端对丢失的视频流数据包进行恢复。从选择的目标抗丢包策略和相关参数两方面提高丢包恢复的效率,进一步提升用户的操作体验。
222.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
223.为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种数据传输方法中的步骤。例如,该计算机程序可以执行如下步骤:
224.通过网页即时通信向通信对端发送视频流数据包,视频流数据包用于供通信对端渲染并播放游戏视频画面;获取与通信对端进行视频流数据包传输的实际网络延迟,以及预先设置的网络延迟阈值;根据实际网络延迟与网络延迟阈值的关系,在至少两种抗丢包策略中选择与实际网络延迟对应的目标抗丢包策略;根据实际网络延迟,计算实施目标抗丢包策略时确定抗丢包数据所需的相关参数;向通信对端发送视频流数据包;基于目标抗丢包策略和相关参数向通信对端发送视频流数据包丢失时所需的抗丢包数据,以使通信对端丢失视频流数据包时基于抗丢包数据对丢失的视频流数据包进行恢复。
225.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
226.其中,该存储介质可以包括:只读存储器(read only memory,rom)、随机存取记忆体(random access memory,ram)、磁盘或光盘等。
227.由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种数据传输方法中的步骤,因此,可以实现本技术实施例所提供的任一种数据传输方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
228.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
229.以上对本技术实施例所提供的数据传输方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献