CN117729157A - 数据处理方法、装置、电子设备和存储介质 - Google Patents
数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117729157A CN117729157A CN202310764093.4A CN202310764093A CN117729157A CN 117729157 A CN117729157 A CN 117729157A CN 202310764093 A CN202310764093 A CN 202310764093A CN 117729157 A CN117729157 A CN 117729157A
- Authority
- CN
- China
- Prior art keywords
- queue
- rate
- sending
- data
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 239000000872 buffer Substances 0.000 claims abstract description 209
- 230000005540 biological transmission Effects 0.000 claims abstract description 139
- 238000000034 method Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 34
- 238000001514 detection method Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 description 37
- 230000000903 blocking effect Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000003247 decreasing effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据处理方法、装置、电子设备和存储介质,涉及视频传输技术领域,通过根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例,获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率,根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整;本发明实施例通过网络状态确定缓冲队列的队列调整比例以及速率调整比例,对缓冲队列的队列深度以及发送速率进行调整,通过适配不同网络状态下的缓冲队列的队列深度以及发送速率,降低网络上的拥堵,如此,可以改善由于网络抖动造成的传输堵塞问题。
Description
技术领域
本发明涉及视频传输技术领域,具体涉及一种数据处理方法、装置、电子设备和存储介质。
背景技术
随着宽带的普及和网络技术的发展,互联网上的多媒体业务渐渐成为主流。上一代的视频应用主要是基于视频点播服务的,而随着网络状况的逐步改善以及视频技术的不断发展,人们对视频直播的需求不断增长,基于视频直播服务构建的应用也开始快速涌现,比如电视节目直播、视频会议、视频通话等。其中,最新的直播应用能够让用户通过手机设备创建直播内容。
随着网络状况的不断改善,使用TCP协议在视频直播方面的可用性大大提高。其中,RTMP协议(Real Time Messaging Protocol,实时消息传输协议)是Adobe公司开发的一种基于TCP协议的实时数据通信网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信,被广泛应用于点播和直播服务,具有较强的稳定性、可靠性。
然而,虽然网络环境得到了不断改善,但是网络状况的波动依然时常发生,网络状况的波动会直接影响到TCP协议进行数据传输的吞吐量,例如当主播的网络发生抖动,因为RTMP协议本身的限制,这种抖动引发的延时就会累积,同时数据发送的过程也会变为不均匀,这将造成视频传输堵塞,造成用户端的画面延时严重,出现播放卡顿。
发明内容
本发明实施例提供一种数据处理方法、装置、电子设备和存储介质,以改善现有基于RTMP协议进行视频传输时由于网络抖动造成的传输堵塞问题。
一方面,本发明实施例提供一种数据处理方法,所述方法包括:
根据发送队列中数据包的发送时长,确定网络状态,并确定所述网络状态对应的队列调整比例以及速率调整比例;
获取缓冲队列的队列深度、以及所述缓冲队列中数据的发送速率;
根据所述队列调整比例,对所述缓冲队列的队列深度进行调整,以及根据所述速率调整比例对所述缓冲队列的数据发送速率进行调整。
另一方面,本发明实施例提供一种数据处理装置,所述装置包括:
网络检测模块,用于根据发送队列中数据包的发送时长,确定网络状态;
发送控制模块,用于确定所述网络状态对应的队列调整比例以及速率调整比例,获取缓冲队列的队列深度、以及所述缓冲队列中数据的发送速率,根据所述队列调整比例,对所述缓冲队列的队列深度进行调整,以及根据所述速率调整比例对所述缓冲队列的数据发送速率进行调整。
另一方面,本发明实施例提供一种电子设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行上述数据处理方法中的操作。
另一方面,本发明实施例提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述数据处理方法中的步骤。
本发明实施例提供一种数据处理方法、装置、电子设备和存储介质,涉及视频传输技术领域,通过根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例,获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率,根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整;本发明实施例通过网络状态确定缓冲队列的队列调整比例以及速率调整比例,基于队列调整比例以及速率调整比例对缓冲队列的队列深度以及发送速率进行调整,通过适配不同网络状态下的缓冲队列的队列深度以及发送速率,降低网络上的拥堵,如此,可以改善现有基于RTMP协议进行视频传输时由于网络抖动造成的传输堵塞问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据处理方法的应用场景示意图;
图2是本发明实施例提供的数据处理方法的流程示意图;
图3是本发明实施例提供的网络状态的确定方法的流程示意图;
图4是本发明实施例提供的队列深度调整方法的流程示意图;
图5是本发明实施例提供的目标队列调整比例确定方法的流程示意图;
图6是本发明实施例提供的缓冲队列的发送速率的调整方法的流程示意图;
图7是本发明实施例提供的候选目标发送速率确定方法的流程示意图;
图8是本发明实施例提供的另一种数据处理方法的流程示意图;
图9是本发明实施例提供的数据处理装置的结构示意图;
图10是本发明实施例提供的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
如背景技术所述,在直播中,传统的RTMP协议需要在网络相对较好的条件下使用,但是主播的网络环境较为复杂,会造成主播端网络堵塞,进而造成用户端的观看延时以及卡顿。例如当主播的网络发生抖动,因为RTMP协议本身的限制,这种抖动引发的延时就会累积,同时数据发送的过程也会变为不均匀,造成用户端看到的画面延时会变高,会变卡。同时,RTMP是TCP链接,如果网络拥塞的特别厉害TCP的重传会加剧拥塞从而导致TCP断掉,对于主播侧来讲这种情况下就只能重连,重连是一个非常耗时的操作,往往需要5-6s的时间观众才能重新拉取到音视频流,这将进一步加剧网络堵塞,以及用户端的画面延时和卡顿。
基于此,为了改善现有基于RTMP协议进行视频传输时由于网络抖动造成的传输堵塞问题,本发明实施例提供一种数据处理方法、装置、电子设备和存储介质,通过网络状态确定缓冲队列的队列调整比例以及速率调整比例,基于队列调整比例以及速率调整比例对缓冲队列的队列深度以及发送速率进行调整,通过适配不同网络状态下的缓冲队列的队列深度以及发送速率,降低网络上的拥堵,如此,可以改善现有基于RTMP协议进行视频传输时由于网络抖动造成的传输堵塞问题。
示例性的,以视频直播场景为例进行说明,如图1所示,图1是本发明实施例提供的数据处理方法的应用场景示意图,所示的应用场景包括主播端、云端以及用户端。云端通过网络分别与主播端和用户端通信连接。
其中,主播端设置有数据处理系统和视频采集单元,视频采集单元采集视频图像,对视频图像进行编码和分装,生成数据包,将数据包发送至数据处理系统;数据处理系统对接收到的数据包进行缓存,并通过网络将数据包传输到云端;用户端通过网络从云端拉取数据包,对数据包进行解析,生成视频流,并播放视频流。
其中,云端可以是云CDN。
网络可以是因特网,也可以是任何网络,包括但不限于广域网、城域网、区域网、第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)、长期演进(Long TermEvolution LTE)、全球互通微波访问(Worldwide Interoperability for MicrowaveAccess WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite TCP/IP)、用户数据报协议(User Datagram Protocol UDP的计算机网络通信等。
在一些实施方式中,数据处理系统中包括缓存队列以及发送队列,其中,缓存队列中缓存视频采集单元发送的数据包,并将缓存队列中数据包按照发送速率发送至发送队列;发送队列中存放有待传输到云端的数据包。
具体地,在数据处理系统在将数据包传输至云端过程中,数据处理系统根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例,获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率,根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整,基于队列深度调整后的缓冲队列确定数据包的缓冲数量,并基于调整后的发送速率将数据包发送至发送队列。
如此,通过调整缓冲队列的队列深度以及缓冲队列中数据的发送速率,适配不同网络状态,从而缓解用于网络抖动造成的数据堵塞问题,改善用户端的视频播放卡顿和延时问题。
在一些实施方式中,如图1所示,数据处理系统包括缓冲队列单元、发送队列单元、网络监控单元以及发送控制单元。
其中,缓冲队列单元与发送队列单元连接,缓冲队列单元用于接收视频采集单元上传的数据包,并以缓冲队列的形式存放数据包,按照发送速率将数据包发送至发送队列单元;发送队列单元以队列形式将数据包发送到云端;网络监控单元分别与发送队列单元和发送控制单元连接,网络监控单元用于根据发送队列中数据包的发送时长,确定网络状态,将网络状态发送至发送控制单元;发送控制单元分别与网络监控单元和缓冲队列单元连接,发送控制单元用于基于网络控制单元发送的网络状态,确定网络状态对应的队列调整比例以及速率调整比例,获取缓冲队列单元中缓冲队列的队列深度、以及缓冲队列中数据的发送速率,根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整;缓冲队列单元基于队列深度调整后的缓冲队列确定数据包的缓冲数量,并基于调整后的发送速率将数据包发送至发送队列单元。
本发明提供的应用场景中,通过在主播端设置数据处理系统,通过数据处理系统调整缓冲队列的队列深度以及缓冲队列中数据的发送速率,适配不同网络状态,从而缓解用于网络抖动造成的传输堵塞问题,改善用户端的视频播放卡顿和延时问题。
基于图1所示的应用场景,本发明实施例提供一种数据处理方法,如图2所示,图2是本发明实施例提供的数据处理方法的流程示意图,所示的数据处理方法可以应用于图1所示的主播端,也可以应用于图1所示的数据处理系统,还可以应用于具备数据处理能力的电子设备,本发明实施例对此不进行具体限定。具体地,图2所示的数据处理方法至少包括步骤210至步骤230,详细描述如下:
步骤210,根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例。
在一些实施方式中,发送队列中存放有至少一个待传输到云端的数据包。
可选的,发送时长可以是发送队列中数据包传输到云端的平均时长,即在预设时间端内发送队列中数据包传输到云端的瞬时时长的平均值;可选的,发送时长可以是发送队列中数据包传输到云端的瞬时时长;可选的,发送时长还可以是发送队列传输预设数量的数据包到云端所耗费的总时长。
其中,数据包的发送时长可以是数据包的RTT(Round trip time,往返时延)。
在一些实施方式中,网络状态表征主播端的网络变化状态,其包括但不限于网络变好、网络变差以及网络不变。
在一些实施方式中,网络状态表征主播端的网络状况,其包括但不限于网络流畅、网络堵塞。
在一些实施方式中,由于网络状况会直接影响到数据传输的吞吐量,进而增加数据包的发送时长,因此可以根据发送队列中数据包的发送时长确定网络状态。
在一些实施方式中,网络状态表征主播端的网络堵塞程度,其包括但不限于无堵塞、轻度堵塞、中度堵塞以及重度堵塞。
可选的,当网络状态表征主播端的网络状况时,可以将数据包的发送时长与预设发送时长阈值进行比较,若数据包的发送时长大于预设发送时长阈值,则确定网路状态为网络堵塞,若数据包的发送时长小于或等于预设发送时长阈值,则确定网络状态为网络流畅。其中,预设发送时长阈值可以是在过去一段时间内数据包的历史发送时长的平均值,也可以是在过去一段时间内数据包的历史发送时长中的众数或中位数,预设发送时长阈值也可以是预先设置的发送时长。过去一段时间可以是过去1分钟,过去1小时等,本发明实施例对此不进行具体限定。
可选的,当网络状态表征主播端的网络变化状态时,可以将数据包的发送时长与数据包的历史发送时长之间的时间差与预设时间差阈值进行比对;若时间差小于预设时间差阈值,说明数据包的发送时长减少了,则确定网络状态为网路变好;若时间差等于预设时间差阈值,说明数据包的发送时长与数据包的历史发送时长相同,则确定网络状态为网络不变;若时间差大于预设时间差阈值,说明数据包的发送时长增加了,则确定网络状态为网络变差。
可选的,当网络状态表征主播端的网络堵塞程度时,可以根据数据包的发送时长与数据包的历史发送时长之间的时间差以及预设时间差与堵塞程度之间的映射数据,确定时间差所在的目标预设时间差范围,将目标预设时间差范围所对应的网络堵塞程度确定为网络状态。
其中,预设时间差与堵塞程度之间的映射数据包括多种预设时间范围以及每种预设时间差范围所对应的网络堵塞程度。
其中,队列调整比例用于表征缓冲队列的队列深度调整方式以及队列深度的调整量;速率调整比例用于表征缓冲队列中数据的发送速率的调整方法以及发送速率的调整量。其中调整方式包括增加和降低。其中,队列深度指的是缓冲队列的队列长度。可理解的,通过队列调整比例调整队列深度,是调整缓冲队列中可缓存的数据包的数量。发送速率用于量化缓冲队列在单位时间内向发送队列发送的数据包数量,可理解的,通过速率调整比例调整缓冲队列中数据的发送速率可以调整缓冲队列在单位时间内向发送队列发送的数据包数量,同时调整缓冲队列中的数据包数量。
例如,当队列调整比例小于1时,确定缓冲队列的队列深度调整方式为降低队列深度,队列深度的调整量为队列深度*(1-队列调整比例),即需要将缓冲队列的队列深度调整为队列深度*队列调整比例;当队列调整比例大于1时,确定缓冲队列的队列深度调整方式为队列深度增加。
在一些实施方式中,可以通过网络状态以及预设的状态与比例之间的映射关系,得到网络状态对应的队列调整比例以及速率调整比例。
其中,预设的状态与比例之间的映射关系用于指示网络状态与网络状态对应的队列调整比例以及网络状态对应的速率调整比例之间的映射关系。
其中,预设的状态与比例之间的映射关系可以是状态与比例之间的映射数据,其包括多种网络状态,以及每种网络状态所对应的队列调整比例以及速率调整比例;预设的状态与比例之间的映射关系也可以是预设的状态与比例之间的映射模型,示例性的,可以对网络状态进行数值化处理,得到网络状态对应的数值,将网络状态对应的数值输入到预设的状态与比例之间的映射模型,得到网络状态对应的队列调整比例以及速率调整比例。其中,映射模型可以基于机器学习的映射模型,例如基于逻辑回归的映射模型,基于SVM的映射模型;映射模型也可以是基于神经网络的映射模型,例如基于CNN的映射模型。
在一些实施方式中,可以通过网络状态以及预设的状态与队列比例之间的映射关系,得到网络状态对应的队列调整比例;通过网络以及预设的状态与速率比例之间的映射关系,得到网络状态对应的速率调整比例。
其中,预设的状态与队列比例之间的映射关系用于指示网络状态与对应的队列调整比例之间的映射关系;在一些实施方式中,预设的状态与队列比例之间的映射关系可以是状态与队列比例之间的映射数据,其包括多种网络状态以及每种网络状态所对应的队列调整比例;在一些实施方式中,预设的状态与队列比例之间的映射关系可以状态与队列比例之间的映射函数,示例性的,可以对网络状态进行数值化处理,得到网络状态对应的数值,将网络状态对应的数值输入到状态与队列比例之间的映射函数,得到网络状态所对应的队列调整比例,其中,映射函数可以是线性函数,也可以是非线性函数。
其中,预设的状态与速率比例之间的映射关系用于指示网络状态与对应的速率调整比例之间的映射关系;在一些实施方式中,预设的状态与速率比例之间的映射关系可以是状态与速率比例之间的映射数据,其包括多种网络状态以及每种网络状态所对应的速率调整比例;在一些实施方式中,预设的状态与速率比例之间的映射关系可以状态与速率比例之间的映射函数,示例性的,可以对网络状态进行数值化处理,得到网络状态对应的数值,将网络状态对应的数值输入到状态与队列比例之间的映射函数,得到网络状态所对应的速率调整比例,其中,映射函数可以是线性函数,也可以是非线性函数。
步骤220,获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率。
步骤230,根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整。
在一些实施方式中,可以通过队列调整比例*队列深度,得到缓冲队列的目标队列深度,按照目标队列深度对缓冲队列的队列深度进行调整,将缓冲队列的队列深度调整为目标队列深度。
在一些实施方式中,可以通过速率调整比例*发送速率得到缓冲队列中数据的目标发送速率,将缓冲队列中数据的发送速率调整到目标发送速率。
本发明实施例提供的数据处理方法,通过网络状态确定缓冲队列的队列调整比例以及速率调整比例,基于队列调整比例以及速率调整比例对缓冲队列的队列深度以及发送速率进行调整,通过适配不同网络状态下的缓冲队列的队列深度以及发送速率,降低网络上的拥堵,如此,可以改善现有基于RTMP协议进行视频传输时由于网络抖动造成的传输堵塞问题。
考虑到网络抖动会影响发送队列中数据包的发送时长,即发送队列中数据包在不同网络状态下具有不同的发送时长,如果基于发送队列中数据包在瞬时的发送时长,在网络存在抖动时,会频繁调整缓冲队列的队列深度以及发送速率,降低数据包发送的平稳,基于此,为了提高网络抖动下数据包发送的平稳性同时缓解网络抖动造成的数据堵塞问题,在本发明一些实施方式中,可以基于发送队列在连续多个单位时长内的数据包的平均发送时长,得到数据包的发送时长的变化序列,基于数据包的发送时长的变化序列,确实网络状态。如此,通过连续多个单位时长内的数据包的平均发送时长之间的变化情况,确定网络状态,减少缓冲队列的队列深度以及发送速率调整次数,从而提高网络抖动下数据包发送的平稳性同时缓解网络抖动造成的数据堵塞问题。
具体地,如图3所示,图3是本发明实施例提供的网络状态的确定方法的流程示意图,所示的网络状态的确定方法包括步骤211-213:
步骤211,确定发送队列中预设时间段内每个单位时长内各数据包的发送时长。
其中,预设时间段可以是3s,5s或者10s。单位时长可以是1s。可理解的,预设时间段内包括至少三个单位时长。
在一些实施方式中,可以统计在预设时间段内,发送队列在每个单位时长内各数据包的发送时长。
可选的,在发送队列发送每一个数据包时,可以通过监听TCP的ACK来获取每个数据包传输到云端所耗费的时间,得到每个数据包的发送时长。
步骤212,基于预设时间段内每个单位时长内各数据包的发送时长,确定在预设时间段内发送时长的变化序列。
在一些实施方式中,可以将每个单位时长内各数据包的发送时长进行差分处理,得到在预设时间段内发送时长的变化序列。
在一些实施方式中,考虑到每个单位时长内可能多个数据包被传输到云端,如果对每个单位时长内的每个数据包的发送时长都进行差分处理,数据量的巨大的,将影响数据处理方法的处理效率,基于此,对于每个单位时长,可以基于该单位时长内各数据包的发送时长,得到该单位时长内数据包的平均发送时长,对各单位时长内数据包的平均发送时长进行差分处理,得到预设时间段内发送时长的变化序列。
具体地,发送时长的变化序列的确定方法包括步骤a1~a3:
步骤a1,获取发送队列在预设时间段内每个单位时长内各数据包的数据发送时长以及单位时长内数据包的发送数量。
步骤a2,根据各单位时长内各数据包的数据发送时长以及各单位时长内数据包的发送数量,得到各单位时长内的数据包的平均发送时长。
步骤a3,对各单位时长内数据包的平均发送时长进行差分,得到在预设时间段内发送时长的变化序列。
在一些实施方式中,可以根据各单位时长在预设时间段内的时间顺序,对各单位时长内数据包的平均发送时长进行排序,得到预设时间段内的平均发送时长序列,对预设时间段内的平均发送时长序列进行差分处理,得到在预设时间段内发送时长的变化序列。
在一些实施方式中,可以分别各单位时长内数据包的平均发送时长与预设发送时长阈值进行差分处理,得到在预设时间段内发送时长的变化序列。
步骤213,根据在预设时间段内发送时长的变化序列,确定网络状态。
在一些实施方式中,可以根据在预设时间段内发送时长的变化序列,确定发送时长的变化趋势,基于变化趋势,确定网络状态。其中,变化趋势包括递增、递减、不变。
可选的,可以将在预设时间段内发送时长的变化序列中各差值与相邻差值进行比较;若差值小于相邻差值,则确定发送时长的变化趋势为递减;若差值大于相邻差值,则确定发送时长的变化趋势为递增;若差值等于相邻差值,则确定发送时长的变化趋势为不变。
可选的,可以将在预设时间段内发送时长的变化序列中各差值进行差分处理,得到差分序列;若差分序列中存在连续多个差分值小于0、且差分序列中最后一个差分值小于0,则确定发送时长的变化趋势为递减;若差分序列中存在多个数值大于0的差分值、且差分序列中最后一个差分值大于0,则确定发送时长的变化趋势为递增;若差分序列中所有差分值都等于0,则确定发送时长的变化趋势为不变。
可选的,以网络状态表征主播端的网络变化状态为例,若发送时长的变化趋势为递增,说明发送时长在逐渐增加,则确定网络状态为网络变差;若发送时长的变化趋势为递减,说明发送时长在逐渐降低,则确定网络状态为网络变好;若发送时长的变化趋势为不变,说明发送时长不变,则确定网络状态为网络不变。
可选的,以网络状态表征主播端的网络状况为例,若发送时长的变化趋势为递增,说明发送时长在逐渐增加,则确定网络状态为网络堵塞;若发送时长的变化趋势为递减或不变,则确定网络状态为网络流畅。
可选的,以网络状态表征主播端的网络堵塞程度为例,若发送时长的变化趋势为递增,说明发送时长在逐渐增加,则根据在预设时间段内发送时长的变化序列,确定发送时长的总变化值,根据发送时长的总变化值查询预设时间差与堵塞程度之间的映射数据,得到发送时长的总变化值对应的网络堵塞程度,将发送时长的总变化值对应的网络堵塞程度确定为网络状态;若发送时长的变化趋势为递减或不变,确定网络状态为无堵塞。
在一些实施方式中,在确定网络状态之后,则按照步骤210确定网络状态对应的队列调整比例以及速率调整比例。
考虑到网络严重堵塞时,仅通过队列调整比例调整缓冲队列的队列深度以及通过速率调整队列调整缓冲队列中数据的发送速率,并不能有效缓解网络的堵塞问题,基于此,在一些实施方式中,当确定网络堵塞严重时,可以丢弃缓冲队列中部分数据包,和/或降低视频数据的编码速率,通过降低缓冲队列中的数据包的数量以及数据包的生成速率,缓解传输堵塞问题,降低用户端的卡顿。
可选的,可以将缓冲队列中数据包的生成时间与预设时间阈值之间的时间差大于预设时间阈值的数据包删除。其中,预设时间阈值可以是预先设置的最大网络延时。
可选的,可以根据网络堵塞程度,确定网络是否堵塞严重,例如,当网络堵塞程度为重度堵塞时,确定网络堵塞严重,当网络堵塞程度不为重度堵塞时,确定网络堵塞不严重。可选的,可以将缓冲队列中数据包的生成时间与预设时间阈值之间的时间差与预设时间阈值进行比对,若缓冲队列中存在数据包的生成时间与预设时间阈值之间的时间差大于预设时间阈值的数据包时,确定网络堵塞严重,若缓冲队列中不存在数据包的生成时间与预设时间阈值之间的时间差大于预设时间阈值的数据包时,确定网络堵塞不严重。
在一些实施方式中,在删除部分数据包,和/或调整视频数据的编码速率之后,根据步骤210确定网络状态对应的队列调整比例以及速率调整比例,并执行上述步骤220~230,通过队列调整比例调整缓冲队列的队列深度以及通过速率调整队列调整缓冲队列中数据的发送速率,如此通过缓冲队列的队列深度的调整、数据的发送速率的调整、以及数据包删除等多种手段缓解传输堵塞。
在一些实施方式中,在确定队列调整比例之后,可以根据上述步骤230调整缓冲队列的队列深度。
可选的,网络状态为网络堵塞时,队列调整比例大于1,可以通过队列调整比例*队列深度,增加缓存队列的队列深度。
可选的,网络状态为网络流畅时,队列调整比例小于1,可以通过队列调整比例*队列深度,降低缓存队列的队列深度。
考虑到在网络堵塞时,增加缓存队列的队列深度后,若检测到网络状态为网络流畅,为缓解传输堵塞,则需要降低缓存队列的队列深度,但是由于过去一旦时间内网络状态为网络堵塞,缓存队列可能缓存可较多的数据包,如果直接根据队列调整比例降低缓存队列的队列深度,可能会造成数据丢包,引发用户端的直播跳帧,但是维持之前队列深度,又有可能会造成网络堵塞,基于此,为了缓解传输堵塞,同时改善数据丢包的问题,在一些实施方式中,在网络状态为堵塞时,可以基于缓冲队列的当前队列数据量对队列调整比例进行修正,基于修正后的队列调整比例对缓冲队列的队列深度进行调整,从而可以根据缓冲队列的当前队列数据量自适应的调整队列调整比例。
具体地,如图4,图4是本发明实施例提供的队列深度调整方法的流程示意图,所示的队列深度调整方法包括步骤231~233:
步骤231,若网络状态为网络通畅,则根据缓冲队列的当前队列数据量以及队列深度,得到缓冲队列的队列占用率。
其中,队列占用率用于表征缓冲队列的当前队列数据量在队列深度中的占比。
在一些实施方式中,可以通过缓冲队列的当前队列数据量/队列深度,得到缓冲队列的队列占用率。
步骤232,若队列占用率小于或等于预设的占用率阈值,则根据队列占用率,对队列调整比例进行调整,得到目标队列调整比例。
在一些实施方式中,可以根据队列占用率以及预设的占用率与调整系数之间的映射关系,得到队列占用率对应的调整系数,根据调整系数和队列调整比例,得到目标队列调整比例。
示例性的,当队列占用率为0.5时,队列占用率对应的调整系数为1,即将队列调整比例确定为目标队列调整比例;当队列占用率为0.8时,队列占用率对应的调整系数为1.6,即将1.6*队列调整比例确定为目标队列调整比例。例如,当队列调整比例为0.5时,当队列占用率为0.5时,目标队列调整比例为0.5,当队列占用率为0.8时,目标队列调整比例为0.8。
其中,预设的占用率阈值表征队列占用率的最大值,可理解的,在队列占用率大于预设的占用率阈值时,降低缓冲队列的队列深度,可能造成数据丢包,因此在队列占用率大于预设的占用率阈值时,将目标队列调整比例设置为1,即不对缓冲队列的队列深度进行调整。
考虑到缓冲队列的当前队列数据量过多时,说明缓冲队列中缓存的数据包过多,如果减少缓存队列的队列深度,由于数据包的生成速率并没有变化,会造成缓存队列中数据太多,而增加缓存队列的队列深度,可能会造成网络堵塞,基于此,在一些实施方式中,在确定缓冲队列的队列占用率后,可以将缓冲队列的队列占用率与队列调整比例进行比较,根据比较结果对队列调整比例进行调整,得到目标队列调整比例。
具体地,如图5所示,图5是本发明实施例提供的目标队列调整比例确定方法的流程示意图,所示的目标队列调整比例确定方法包括步骤2321~2323:
步骤2321,将队列占用率与队列调整比例进行比较。
步骤2322,若队列占用率大于队列调整比例,则将预设的占用率阈值确定为目标队列调整比例。
步骤2323,若队列占用率小于或等于队列调整比例,则将队列调整比例确定为目标队列调整比例。
示例性的,以队列调整比例为0.5、预设的占用率阈值为0.8为例进行说明,当队列占用率大于5且小于或等于0.8时,则将0.8确定为目标队列调整比例;当队列占用率小于或等于0.5时,则将0.5确定为目标队列调整比例。
例如,缓冲队列的队列深度为60时,当缓冲队列的当前队列数据量小于或等于队列深度*0.5时,则将0.5确定为目标队列调整比例,将缓冲队列的队列深度调整为30;当缓冲队列的当前队列数据量大于队列深度*0.5、且小于或等于队列深度*0.8时,则将0.8确定为目标队列调整比例,将缓冲队列的队列深度调整为54;当缓冲队列的当前队列数据量大于队列深度*0.8时,则对缓冲队列的队列深度不做调整。
步骤233,基于目标队列调整比例,对缓冲队列的队列深度进行调整。
考虑到在网络堵塞时,发送队列中堆积了待传输到云端的数据包,如果缓存队列还是以相同的发送速率先发送队列发送数据包,将进一步家去网络堵塞;在网络通畅时,如果缓存队列还是以相同的发送速率先发送队列发送数据包,将不能充分利用网络带宽;因此在网络堵塞时,需要降低缓存队列中数据的发送速率,在网络通畅时,需要提升缓存队列中数据的发送速率,但是缓存队列中数据的发送速率过低,而视频数据的编码效率未变化,将使得大量的数据包堆积在缓存队列中,从而引发数据包丢弃,造成数据丢包;并且缓存队列中数据的发送速率过高时,会造成发送队列中数据包堆积,进而造成网路堵塞。基于此,为了充分利用网络带宽,同时缓解传输堵塞,在一些实施方式中,可以发送速率以及速率调整比例,得到候选目标发送速率,在候选目标发送速率在预设目标发送速率范围内时,基于候选目标发送速率对缓冲队列的发送速率进行调整,如此,将缓冲队列的发送速率限制在目标发送速率范围内,从而避免缓冲队列的发送速率太低或太高引发的数据丢包和传输堵塞问题。
具体地,如图6所示,图6是本发明实施例提供的缓冲队列的发送速率的调整方法的流程示意图,所示的缓冲队列的发送速率的调整方法包括步骤234~236:
步骤234,根据发送速率以及速率调整比例,得到候选目标发送速率。
在一些实施方式中,可以通过发送速率*速率调整比例,得到候选目标发送速率。
考虑到如果网络状态为网络堵塞时,选择相同的速率调整比例,不考虑网络堵塞程度,将使得调整后的发送速率与网络状态之间的不适配,进而不能很好缓解传输堵塞问题;相同的,当网络状态为网络流畅时,也选择相同的速率调整比例,也会不能充分利用网络带宽。并且数据包的发送时长变化情况直接反应网络状态,基于此,为例实现发送速率的精细化调整,在一些实施方式中,可以根据数据包的时长变化率、发送速率以及速率调整比例,得到候选目标发送速率。其中,数据包的时长变化率用于量化当前单位时长内的数据包的平均发送时长与上一个单位时长内的数据包的历史平均发送时长之间的变化情况。
具体地,如图7所示,图7是本发明实施例提供的候选目标发送速率确定方法的流程示意图,所示的候选目标发送速率确定方法包括步骤2341~2343:
步骤2341,获取发送队列中的数据包的发送时长。
步骤2342,根据数据包的发送时长,得到数据包的时长变化率。
在一些实施方式中,可以根据数据包的发送时长,确定当前单位时长内的数据包的平均发送时长,获取上一个单位时长内的数据包的历史平均发送时长,通过(当前单位时长内的数据包的平均发送时长-上一个单位时长内的数据包的历史平均发送时长)/(上一个单位时长内的数据包的历史平均发送时长)得到数据包的时长变化率。
步骤2343,根据数据包的时长变化率、发送速率以及速率调整比例,得到候选目标发送速率。
在一些实施方式中,可以通过速率调整比例*数据包的时长变化率*发送速率,得到候选目标发送速率。
步骤235,若候选目标发送速率满足预设发送速率阈值,则基于候选目标发送速率对缓冲队列的发送速率进行调整。
其中,预设发送速率阈值包括预设发送速率上限阈值和预设发送速率下限阈值。
在一些实施方式中,可以将候选目标发送速率分别与预设发送速率上限阈值和预设发送速率下限阈值进行比较,若候选目标发送速率大于或等于预设发送速率下限阈值、且小于或等于预设发送速率上限阈值,则确定候选目标发送速率满足预设发送速率阈值;若候选目标发送速率小于预设发送速率下限阈值,或大于预设发送速率上限阈值,则确定候选目标发送速率不满足预设发送速率阈值。
步骤236,若候选目标发送速率不满足预设发送速率阈值,则基于预设发送速率阈值对缓冲队列的发送速率进行调整。
在一些实施方式中,若候选目标发送速率小于预设发送速率下限阈值,则将预设发送速率下限阈值确定为目标发送速率,通过目标发送速率对缓冲队列的发送速率进行调整。
在一些实施方式中,若候选目标发送速率大于预设发送速率上限阈值,则将预设发送速率上限阈值确定为目标发送速率,通过目标发送速率对缓冲队列的发送速率进行调整。
考虑到网络堵塞时,缓冲队列中缓存的数据包较多时,通过队列调整比例调整缓冲队列的队列深度,可能会进一步增加缓存队列中缓存的数据包,当后续网络状态仍然处于堵塞时,可能会引发严重网络堵塞,并且在网络严重堵塞时,即使时增加缓存队列的队列深度也难以缓解传输堵塞的问题。基于此,为缓解由于缓冲队列中数据量太多引发的传输堵塞问题,在一些实施方式中,基于图2所示的数据处理方法,可以获取缓冲队列中的当前队列数据量,在当前队列数据量达到最大数据量阈值时,丢弃缓冲队列中预设数量的数据包,如此,在缓冲队列中数据量过多时,对缓冲队列中缓存的数据包进行丢失,通过减少缓存的数据包数据来降低网络堵塞。
具体地,如图8所示,图8是本发明实施例提供的另一种数据处理方法的流程示意图,所示的数据处理方法包括步骤810~850:
步骤810,根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例。
在一些实施方式中,可以参考图2中步骤810,根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例,本发明实施例在此不进行赘述。
在一些实施方式中,可以参考图3提供的网络状态的确定方法,确定网络状态,根据步骤210确定网络状态对应的队列调整比例以及速率调整比例,本发明实施例在此不进行赘述。
步骤820,获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率。
步骤830,获取缓冲队列的当前队列数据量,根据基于缓冲队列的队列深度,确定缓冲队列的队列数据量阈值。
在一些实施方式中,可以通过队列深度-1,得到缓冲队列的队列数据量阈值。
步骤840,若当前队列数据量小于或等于队列数据量阈值,则根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整。
在一些实施方式中,若当前队列数据量小于或等于队列数据量阈值,则可以按照图4提供的队列深度调整方法对缓冲队列的队列深度进行调整,按照图6提供的缓冲队列的发送速率的调整方法对缓冲队列的数据发送速率进行调整,本发明实施例在此不进行赘述。
步骤850,步骤830之后,若当前队列数据量大于队列数据量阈值,则丢弃缓冲队列中预设数量的数据包。
在一些实施方式中,若当前队列数据量大于队列数据量阈值,说明网络发生了严重堵塞,即便是增加缓冲队列的队列深度也难以缓解网路堵塞,则丢弃缓冲队列中预设数量的数据包。
可选的,可以从缓冲队列的队列头开始丢弃预设数量的数据包。示例性的,从缓冲队列的队列头开始的第一个I帧到第二个I帧中间所有视频帧所对应的数据包丢弃。
可选的,可以确定缓冲队列中数据包的生成时间与预设时间阈值之间的时间差大于预设时间阈值的候选数据包,将预设数量的候选数据包丢弃。
在一些实施方式中,在步骤850,执行图2所示的数据处理方法,或者执行图8所示的数据处理方法。
本发明实施例提供的数据处理方法,通过网络状态确定缓冲队列的队列调整比例以及速率调整比例,基于队列调整比例以及速率调整比例对缓冲队列的队列深度以及发送速率进行调整,通过适配不同网络状态下的缓冲队列的队列深度以及发送速率,降低网络上的拥堵,如此,可以改善现有基于RTMP协议进行视频传输时由于网络抖动造成的传输堵塞问题。
为了更好实施本发明实施例提供的数据处理方法,在数据处理方法实施例基础上,本发明实施例提供一种数据处理装置,如图9所示,图9是本发明实施例提供的数据处理装置的结构示意图,所示的数据处理装置包括:
网络检测模块,用于根据发送队列中数据包的发送时长,确定网络状态;
发送控制模块,用于确定网络状态对应的队列调整比例以及速率调整比例,获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率,根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整。
在一些实施方式中,发送控制模块包括队列深度调整单元;
队列深度调整单元,用于若网络状态为网络通畅,则根据缓冲队列的当前队列数据量以及队列深度,得到缓冲队列的队列占用率;若队列占用率小于或等于预设的占用率阈值,则根据队列占用率,对队列调整比例进行调整,得到目标队列调整比例;基于目标队列调整比例,对缓冲队列的队列深度进行调整。
在一些实施方式中,队列深度调整单元,用于将队列占用率与队列调整比例进行比较;若队列占用率大于队列调整比例,则将预设的占用率阈值确定为目标队列调整比例;若队列占用率小于或等于队列调整比例,则将队列调整比例确定为目标队列调整比例。
在一些实施方式中,发送控制模块,用于获取缓冲队列的当前队列数据量;根据基于缓冲队列的队列深度,确定缓冲队列的队列数据量阈值;若当前队列数据量大于队列数据量阈值,则丢弃缓冲队列中预设数量的数据包;若当前队列数据量小于或等于队列数据量阈值,则执行根据队列调整比例,对缓冲队列的队列深度进行调整操作。
在一些实施方式中,发送控制模块包括速率调整单元;
速率调整单元,用于根据发送速率以及速率调整比例,得到候选目标发送速率;若候选目标发送速率满足预设发送速率阈值,则基于候选目标发送速率对缓冲队列的发送速率进行调整;若候选目标发送速率不满足预设发送速率阈值,则基于预设发送速率阈值对缓冲队列的发送速率进行调整。
在一些实施方式中,速率调整单元,用于:
获取发送队列中的数据包的发送时长;
根据数据包的发送时长,得到数据包的时长变化率;
根据数据包的时长变化率、发送速率以及速率调整比例,得到候选目标发送速率。
在一些实施方式中,网络检测模块,用于:
确定发送队列中预设时间段内每个单位时长内各数据包的发送时长;
基于预设时间段内每个单位时长内各数据包的发送时长,确定在预设时间段内发送时长的变化序列;
根据在预设时间段内发送时长的变化序列,确定网络状态。
在一些实施方式中,网络检测模块,用于:
获取发送队列在预设时间段内每个单位时长内各数据包的数据发送时长以及单位时长内数据包的发送数量;
根据各单位时长内各数据包的数据发送时长以及各单位时长内数据包的发送数量,得到各单位时长内的数据包的平均发送时长;
对各单位时长内数据包的平均发送时长进行差分,得到在预设时间段内发送时长的变化序列。
在一些实施方式中,发送控制模块,用于:
将队列深度调整后的缓冲队列中待传输的数据包按照调整后的发送速率传输到发送队列,控制发送队列中数据包发送至云端。
本发明实施例提供的数据处理装置,通过网络状态确定缓冲队列的队列调整比例以及速率调整比例,基于队列调整比例以及速率调整比例对缓冲队列的队列深度以及发送速率进行调整,通过适配不同网络状态下的缓冲队列的队列深度以及发送速率,降低网络上的拥堵,如此,可以改善现有基于RTMP协议进行视频传输时由于网络抖动造成的传输堵塞问题。
本发明实施例还提供一种服务器,如图10所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器1001、一个或一个以上计算机可读存储介质的存储器1002、电源1003和输入单元1004等部件。本领域技术人员可以理解,图10中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器1001是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器1002内的软件程序和/或模块,以及调用存储在存储器1002内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器1001可包括一个或多个处理核心;优选的,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。
存储器1002可用于存储软件程序以及模块,处理器1001通过运行存储在存储器1002的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1002可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1002还可以包括存储器控制器,以提供处理器1001对存储器1002的访问。
服务器还包括给各个部件供电的电源1003,优选的,电源1003可以通过电源管理系统与处理器1001逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1003还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元1004,该输入单元1004可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器1001会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1002中,并由处理器1001来运行存储在存储器1002中的应用程序,从而实现各种功能,如下:
根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例;
获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率;
根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种数据处理方法中的步骤。例如,该指令可以执行如下步骤:
根据发送队列中数据包的发送时长,确定网络状态,并确定网络状态对应的队列调整比例以及速率调整比例;
获取缓冲队列的队列深度、以及缓冲队列中数据的发送速率;
根据队列调整比例,对缓冲队列的队列深度进行调整,以及根据速率调整比例对缓冲队列的数据发送速率进行调整。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种数据处理方法中的步骤,因此,可以实现本发明实施例所提供的任一种数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种数据处理方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
根据发送队列中数据包的发送时长,确定网络状态,并确定所述网络状态对应的队列调整比例以及速率调整比例;
获取缓冲队列的队列深度、以及所述缓冲队列中数据的发送速率;
根据所述队列调整比例,对所述缓冲队列的队列深度进行调整,以及根据所述速率调整比例对所述缓冲队列的数据发送速率进行调整。
2.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述队列调整比例,对所述缓冲队列的队列深度进行调整,包括:
若所述网络状态为网络通畅,则根据所述缓冲队列的当前队列数据量以及所述队列深度,得到所述缓冲队列的队列占用率;
若所述队列占用率小于或等于预设的占用率阈值,则根据所述队列占用率,对所述队列调整比例进行调整,得到目标队列调整比例;
基于所述目标队列调整比例,对所述缓冲队列的队列深度进行调整。
3.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述队列占用率,对所述队列调整比例进行调整,得到目标队列调整比例,包括:
将所述队列占用率与所述队列调整比例进行比较;
若所述队列占用率大于所述队列调整比例,则将所述预设的占用率阈值确定为目标队列调整比例;
若所述队列占用率小于或等于所述队列调整比例,则将所述队列调整比例确定为目标队列调整比例。
4.根据权利要求1至3任一项所述的数据处理方法,其特征在于,所述根据所述队列调整比例,对所述缓冲队列的队列深度进行调整之前,所述方法包括:
获取所述缓冲队列的当前队列数据量;
根据基于所述缓冲队列的队列深度,确定所述缓冲队列的队列数据量阈值;
若所述当前队列数据量大于所述队列数据量阈值,则丢弃所述缓冲队列中预设数量的数据包;
若所述当前队列数据量小于或等于所述队列数据量阈值,则执行根据所述队列调整比例,对所述缓冲队列的队列深度进行调整操作。
5.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述速率调整比例对所述缓冲队列的发送速率进行调整,包括:
根据所述发送速率以及所述速率调整比例,得到候选目标发送速率;
若所述候选目标发送速率满足预设发送速率阈值,则基于所述候选目标发送速率对所述缓冲队列的发送速率进行调整;
若所述候选目标发送速率不满足预设发送速率阈值,则基于所述预设发送速率阈值对所述缓冲队列的发送速率进行调整。
6.根据权利要求5所述的数据处理方法,其特征在于,所述根据所述速率调整比例,得到候选目标发送速率,包括:
获取发送队列中的数据包的发送时长;
根据所述数据包的发送时长,得到所述数据包的时长变化率;
根据所述数据包的时长变化率、所述发送速率以及所述速率调整比例,得到候选目标发送速率。
7.根据权利要求1所述的数据处理方法,其特征在于,所述根据发送队列中数据包的发送时长,确定网络状态,包括:
确定发送队列中预设时间段内每个单位时长内各数据包的发送时长;
基于所述预设时间段内每个单位时长内各数据包的发送时长,确定在预设时间段内发送时长的变化序列;
根据所述在预设时间段内发送时长的变化序列,确定网络状态。
8.根据权利要求7所述的数据处理方法,其特征在于,所述基于所述预设时间段内每个单位时长内各数据包的发送时长,确定在预设时间段内发送时长的变化序列,包括:
获取发送队列在预设时间段内每个单位时长内各数据包的数据发送时长以及单位时长内数据包的发送数量;
根据各所述单位时长内各数据包的数据发送时长以及各所述单位时长内数据包的发送数量,得到各所述单位时长内的数据包的平均发送时长;
对各所述单位时长内数据包的平均发送时长进行差分,得到在预设时间段内发送时长的变化序列。
9.根据权利要求1所述数据处理方法,其特征在于,所述根据所述队列调整比例,对所述缓冲队列的队列深度进行调整,以及根据所述速率调整比例对所述缓冲队列的发送速率进行调整之后,所述方法包括:
将队列深度调整后的缓冲队列中待传输的数据包按照调整后的发送速率传输到发送队列,控制所述发送队列中数据包发送至云端。
10.一种数据处理装置,其特征在于,所述装置包括:
网络检测模块,用于根据发送队列中数据包的发送时长,确定网络状态;
发送控制模块,用于确定所述网络状态对应的队列调整比例以及速率调整比例,获取缓冲队列的队列深度、以及所述缓冲队列中数据的发送速率,根据所述队列调整比例,对所述缓冲队列的队列深度进行调整,以及根据所述速率调整比例对所述缓冲队列的数据发送速率进行调整。
11.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至9任一项所述的数据处理方法中的操作。
12.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310764093.4A CN117729157A (zh) | 2023-06-26 | 2023-06-26 | 数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310764093.4A CN117729157A (zh) | 2023-06-26 | 2023-06-26 | 数据处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117729157A true CN117729157A (zh) | 2024-03-19 |
Family
ID=90198486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310764093.4A Pending CN117729157A (zh) | 2023-06-26 | 2023-06-26 | 数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117729157A (zh) |
-
2023
- 2023-06-26 CN CN202310764093.4A patent/CN117729157A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111628847B (zh) | 数据传输方法及装置 | |
CN107623851B (zh) | 视频码流传输控制装置及控制方法 | |
US11006129B2 (en) | System and method for automatic encoder adjustment based on transport data | |
CA2842098C (en) | A system and method for transmission of data signals over a wireless network | |
US10542064B2 (en) | Method, server side and system for computing bandwidth of network transmission of streaming media | |
RU2497304C2 (ru) | Динамическая модификация свойств видео | |
CN109660879B (zh) | 直播丢帧方法、系统、计算机设备和存储介质 | |
US8861372B2 (en) | Method and device for fast pushing unicast stream in fast channel change | |
CN109600610B (zh) | 一种数据编码方法、终端及计算机可读存储介质 | |
US20120250762A1 (en) | System and method for implementation of dynamic encoding rates for mobile devices | |
JP7496022B2 (ja) | クライアント、サーバ、受信方法及び送信方法 | |
CN110913245A (zh) | 一种控制视频转码码率的方法和装置 | |
AU2019201095A1 (en) | System and method for automatic encoder adjustment based on transport data | |
CN113242436A (zh) | 直播数据的处理方法、装置及电子设备 | |
WO2015044104A1 (en) | Video traffic management | |
CN117729157A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN111954007B (zh) | Udp直播中vbr视频快速平滑发送方法与装置 | |
JP2023043851A (ja) | ビデオストリームの送信を制御するための方法およびデバイス | |
CN117041469A (zh) | 视频会议码率平滑方法、装置、设备及存储介质 | |
CN118573660A (zh) | 应用于ipc设备的传输方法及装置 | |
CN116684652A (zh) | 音视频拉取方法、装置、存储介质及计算机设备 | |
WO2021144139A1 (en) | Method, apparatus and computer program product providing for signaling of viewport orientation timing in panoramic video delivery | |
CN118828071A (zh) | 一种视频监控数据的传输方法、装置、设备及存储介质 | |
CN117579569A (zh) | 音视频数据传输方法、装置、计算机设备及可读存储介质 | |
CN118354133A (zh) | 一种视频同屏转码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |