数据传输方法及装置与流程

文档序号:22118806发布日期:2020-09-04 15:55阅读:133来源:国知局
数据传输方法及装置与流程

本申请涉及互联网技术领域,尤其涉及一种数据传输方法、装置、计算机设备及计算机可读存储介质。



背景技术:

随着计算机技术的发展,越来越多种类的电子设备被开发并被广泛使用。各类电子设备一般具有各自的设备特点,例如,手机的便携性更好,电视屏幕的显示效果更好,而音箱的音质效果更好。为了充分发挥不同电子设备的设备特点,电子设备可以通过投屏等方式实现显示内容在多个设备之间的切换和显示。现有技术中,在投屏显示过程中,经常出现延时和卡顿现象,显示效果较差。



技术实现要素:

本申请提出一种数据传输方法、装置、计算机设备及计算机可读存储介质,能够解决现有技术中投屏显示中的延时和卡顿的问题。

首先,为实现上述目的,本申请提供一种数据传输方法,所述方法包括:

接收投屏终端的投屏请求,建立与所述投屏终端之间的音视频数据连接通道;通过所述音视频数据连接通道获取音视频数据并进行播放;监测所述音视频数据连接通道的网络状态;当所述网络状态变差时,根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。

在一个例子中,所述监测所述音视频数据连接通道的网络状态包括:对预设第一数量的采样点或者预设时间区段内的采样点进行监测;当其中大于或等于预设第二数量的采样点的指标值偏离对应的指标值标准,则表示网络状态变差。

在一个例子中,所述网络状态至少包括丢包率、延时、抖动和带宽中的至少一种指标值。

在一个例子中,所述监测所述音视频数据连接通道的网络状态包括:统计预设时间区段内接收到的数据包的序号和接收时间,从而得到所述时间区段的丢包率和延时。

在一个例子中,所述监测所述音视频数据连接通道的网络状态包括:统计预设时间区段内接收到的数据包的序号和接收时间;根据所述时间区段中前n个数据包的接收时间建立数据包接收时间预测曲线,并根据所述数据包接收时间预测曲线预测第n+1个数据包接收时间,其中(1<n<n,n++),n为所述时间区段内所有的数据包个数;根据第n+1个数据包的实际接收时间和预测接收时间来计算所述时间区段的抖动。

在一个例子中,所述根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式包括:当抖动大于预设第一阈值时,则启用第一动态缓存用于缓存接收到的音视频数据的数据包;当抖动大于预设第二阈值时,则启用第二动态缓存用于缓存接收到的音视频数据的数据包;其中,第二阈值大于第一阈值,第二动态缓存大于第一动态缓存。

在一个例子中,所述根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式包括:当丢包率高且带宽充足时,通过前向纠错方式执行数据包传输;当丢包率高且带宽不足且延时低时,通过丢包重传方式执行数据包传输;当丢包率高且带宽不足且延时高时,通过丢包重传方式执行数据包传输,并降低传输码率和显示分辨率。

此外,为实现上述目的,本申请还提供一种数据传输装置,所述装置包括:

建立模块,用于接收投屏终端的投屏请求,建立与所述投屏终端之间的音视频数据连接通道;播放模块,用于通过所述音视频数据连接通道获取音视频数据并进行播放;监测模块,用于监测所述音视频数据连接通道的网络状态;执行模块,用于当所述网络状态变差时,根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。

进一步地,本申请还提出一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的数据传输方法的步骤。

进一步地,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据传输方法的步骤。

相较于现有技术,本申请所提出的数据传输方法、装置、计算机设备及计算机可读存储介质,能够接收投屏终端的投屏请求,建立与所述投屏终端之间的音视频数据连接通道;然后通过所述音视频数据连接通道获取音视频数据并进行播放;然后监测所述音视频数据连接通道的网络状态,当所述网络状态变差时,则根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。因此,能够根据网络状态的指标值动态选择适当的传输方式,从而解决了延时和卡顿的问题,提升了显示效果。

附图说明

图1是本申请一实施例的应用环境示意图;

图2是本申请数据传输方法一具体实施例的流程示意图;

图3是基于图2中步骤s204的一具体实施例的流程示意图;

图4是图2中步骤s204的一具体实施例的流程示意图;

图5是图2中步骤s206中的根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式的一具体实施例的流程示意图;

图6是图2中步骤s206中的根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式的另一具体实施例的流程示意图;

图7是本申请数据传输装置一实施例的程序模块示意图;

图8是本申请计算机设备一可选的硬件架构的示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

图1是本申请一实施例的应用环境示意图。参阅图1所示,所述计算机设备1与投屏终端2连接,可以接收由投屏终端2发送的投屏显示请求,建立与所述投屏终端2之间的音视频数据连接通道,然后通过所述音视频数据连接通道获取音视频数据并进行播放;然后监测所述音视频数据连接通道的网络状态,当所述网络状态变差时,则根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。在本实施例中,所述投屏终端2可以是手机、平板、便携设备或者pc机等;所述计算机设备1可作为手机、平板、便携设备、pc机或者具有显示功能的电子设备等。

实施例一

图2是本申请数据传输方法一实施例的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备1为执行主体进行示例性描述。

如图2所示,所述数据传输方法可以包括步骤s200~s206其中:

步骤s200,接收投屏终端的投屏请求,建立与所述投屏终端之间的音视频数据连接通道。

步骤s202,通过所述音视频数据连接通道获取音视频数据并进行播放。

具体地,当用户想要将投屏终端上的音视频数据投屏到所述计算机设备1上时,那么投屏终端首先需要与所述计算机设备1进行网络连接,然后用户通过投屏终端向所述计算机设备1发送投屏请求。所述计算机设备1则接收所述投屏请求,然后根据所述投屏请求建立音视频数据连接通道。在本实施例中,所述投屏终端需要实时投屏的视频数据投屏到所述计算机设备1,因此,所述计算机设备1可以通过所述音视频数据连接通道获取实时投屏的音视频数据。其中,实时投屏表示所述投屏终端会直接进行音视频拍摄,然后所述计算机设备1则可以通过所述音视频数据连接通道直接获取到所述投屏终端实时拍摄的音视频数据。

对于实时视频流媒体来说,人们期望音视频数据能够及时地从一端传输到另一端,少量的丢包对于观看影响不明显,但较大的延迟和卡顿则严重影响观看体验。tcp(transmissioncontrolprotocol,传输控制协议)的拥塞控制技术不太适用于这种快速而稳定的流媒体传输,并且重传机制对于实时流媒体来说既影响效率又没必要,因此,这种情况下一般采用基于udp(userdatagramprotocol,用户数据报协议)的方式。

具体地,所述投屏终端在投屏之前需要与所述计算机设备1建立连接,因此,所述投屏终端能够建立传输网络,比如有线局域网,或者wifi、蓝牙或者其他移动通信网络,然后所述计算机设备1加入到所述传输网络。所述投屏终端则会通过所述传输网络向所述计算机设备1发送基于udp协议通信协议发送的数据链路建立请求,所述计算机设备1则接收所述数据链路建立请求从而建立音视频数据连接通道,并将所述音视频数据加载到播放器进行播放。

步骤s204,监测所述音视频数据连接通道的网络状态。

步骤s206,当所述网络状态变差时,根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。

如图3所示,在一示例性的实施例中,步骤s204可以包括步骤s300~s302。

步骤s300,对预设第一数量的采样点或者预设时间区段内的采样点进行监测。

步骤s302,当其中大于或等于预设第二数量的采样点的指标值偏离对应的指标值标准,则表示网络状态变差。

在本实施例中,对于网络状态的检测,是动态、实时的,但并非时刻都在执行切换。主要考虑到不断的切换策略,比较耗费所述计算机设备1的计算能力等资源,甚至极端情况下可能仅仅是线性统计中一个点远离预计,这种情况下执行切换对于资源损耗比较大。因此,需要对采样点进行筛选。例如,我们设置了统计1000个采样点或者5秒钟的采样点,若中间仅有几个采样点偏离,则不会触发传输方式的切换;只有在采样点满足预定的一定的条件,才会执行传输方式的切换。

在本实施例中,所述网络状态至少包括丢包率、延时、抖动和带宽中的至少一种指标值。

因此,如图4所示,在一示例行实施例中,步骤s204可以包括步骤s400~s404。

步骤s400,统计预设时间区段内接收到的数据包的序号和接收时间,从而得到所述时间区段的丢包率和延时。

步骤s402,根据所述时间区段中前n个数据包的接收时间建立数据包接收时间预测曲线,并根据所述数据包接收时间预测曲线预测第n+1个数据包接收时间,其中(1<n<n,n++),n为所述时间区段内所有的数据包个数。

步骤s404,根据第n+1个数据包的实际接收时间和预测接收时间来计算所述时间区段的抖动。

具体地,投屏终端将音视频数据传输到所述计算机设备1,一般都是通过将所述音视频数据划分为若干个数据包进行传输,每个数据包均包括序号。然后所述计算机设备1接收到投屏终端发送的所述音视频数据的数据包之后,根据每个数据包的序号将所有的数据包组合并恢复成原有的音视频数据。因此,所述计算机设备1在接收每个数据包时,可以统计数据包的序号和接收时间,例如,通过建立一个接收状态反馈报告用于保存所述音视频数据的所有数据包的序号和接收时间。

因此,所述计算机设备1可以直接通过统计接收到的数据包的序号是否出现缺失以及缺失的序号数量,从而得到数据包的丢包率;以及根据数据包的接收时间是否超时以及超时多少,从而得到数据包的延时。

对于网络的抖动,则可以通过相邻数据包的接收时间进行计算。在本实施例中,所述计算机设备1根据所述时间区段中前n个数据包的接收时间建立数据包接收时间预测曲线,通过前几个采样点建立后续采样点的预测曲线,现有技术中已有较多成熟公式,这里不再赘述。然后所述计算机设备1根据所述数据包接收时间预测曲线预测第n+1个数据包接收时间,其中(1<n<n,n++),n为所述时间区段内所有的数据包个数;第n+1个数据包的实际接收时间和预测接收时间的差值,则表示网络状态的抖动值。

当然,在其他实施例中,所述计算机设备1也可以直接根据每个数据包的延时计算网络的抖动,比如,将相邻之间的数据包的延时差计算出来作为该数据包对应时间点的抖动值。

当所述计算机设备1计算出所述网络状态的各个指标的实际值后,则可以通过与预设的各个指标对应的标准值进行对比,当偏离超过预设的值,则认为所述网络状态变差时,因此,所述计算机设备1进一步根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。在本实施例中,所述计算机设备1预先设置了对于网络状态出现不同的指标值时,自动切换到不同的传输方式的传输策略。因此,在所述计算机设备1监测到网络状态变差时,则会根据指标值和传输策略执行对应的传输方式。

如图5所示,在一示例行实施例中,步骤s206中的根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式包括步骤s500~s502。

步骤s500,当抖动大于预设第一阈值时,则启用第一动态缓存用于缓存接收到的音视频数据的数据包。

步骤s502,当抖动大于预设第二阈值时,则启用第二动态缓存用于缓存接收到的音视频数据的数据包;其中,第二阈值大于第一阈值,第二动态缓存大于第一动态缓存。

具体地,当网络抖动大的时候,网络抖动会造成数据包乱序和延时,因此,所述计算机设备1在获取到抖动值后,则可以对应地启用动态缓存,用于存储接收到的数据包。在本实施例中,当网络不稳定时(抖动发生),所述计算机设备1增加动态缓存的长度,多缓存一些数据,以应对将来可能发生的抖动;当网络稳定下来时,减小动态缓存的长度,少缓存一些数据,降低视频端到端的延迟,提高实时性。因此动态缓存的运行过程是一个根据抖动来动态调整动态缓存长度的过程。从而能够在保证尽量不卡的前提下降低端到端的延迟,即它能够在延迟和卡顿率之间取得较好的平衡。

如图6所示,在一示例行实施例中,步骤s206中的根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式包括步骤s600~s604。

步骤s600,当丢包率高且带宽充足时,通过前向纠错方式执行数据包传输。

步骤s602,当丢包率高且带宽不足且延时低时,通过丢包重传方式执行数据包传输。

步骤s604,当丢包率高且带宽不足且延时高时,通过丢包重传方式执行数据包传输,并降低传输码率和显示分辨率。

在本实施例中,所述计算机设备1在获取到丢包率之后,还会进一步获取当前网络的带宽值,例如通过带宽实时测速技术。当丢包率高且带宽充足时,所述计算机设备1则通过前向纠错方式执行数据包传输。其中,前向纠错要求发送方将要发送的数据加上一定的冗余纠错码一起发送,接收方则根据纠错码对接收到的数据进行差错检测,如发现差错,则由接收方进行纠错,虽然发送冗余占用更大的网络带宽,但是能够减少丢包率。

当丢包率高且带宽不足且延时低时,所述计算机设备1则通过丢包重传方式执行数据包传输。其中,丢包重传主要是根据数据包的序号来进行判断是否丢包,正常情况下序号是连续的;接收方如果发现数据丢失,则向发送方发出请求,请求发送端重发指定数据包。因此,也能够有效减少丢包率。

当然,如果所述计算机设备1获取到丢包率高且带宽不足且延时高时,那么,所述计算机设备1再选择通过丢包重传方式执行数据包传输的同时,还会降低传输码率,以及降低播放器显示画面的显示分辨率。从而能够有效减少数据传输量,保证显示画面的流程。

综上所述,本实施例所提出的数据传输方法能够接收投屏终端的投屏请求,建立与所述投屏终端之间的音视频数据连接通道;然后通过所述音视频数据连接通道获取音视频数据并进行播放;然后监测所述音视频数据连接通道的网络状态,当所述网络状态变差时,则根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。因此,能够根据网络状态的指标值动态选择适当的传输方式,从而解决了延时和卡顿的问题,提升了显示效果。

实施例二

图7示意性示出了根据本申请实施例二的数据传输装置的框图,该数据传输装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。

如图7所示,该数据传输装置400可以包括建立模块410、播放模块420、监测模块430和执行模块440,其中:

建立模块410,用于接收投屏终端的投屏请求,建立与所述投屏终端之间的音视频数据连接通道。

播放模块420,用于通过所述音视频数据连接通道获取音视频数据并进行播放。

监测模块430,用于监测所述音视频数据连接通道的网络状态。

执行模块440,用于当所述网络状态变差时,根据所述网络状态的指标值从预设的传输策略中选择并执行对应的传输方式。

在示例性的实施例中,监测模块430,还用于:对预设第一数量的采样点或者预设时间区段内的采样点进行监测;当其中大于或等于预设第二数量的采样点的指标值偏离对应的指标值标准,则表示网络状态变差。

在示例性的实施例中,所述网络状态至少包括丢包率、延时、抖动和带宽中的至少一种指标值。

在示例性的实施例中,监测模块430,还用于:统计预设时间区段内接收到的数据包的序号和接收时间,从而得到所述时间区段的丢包率和延时。以及统计预设时间区段内接收到的数据包的序号和接收时间;根据所述时间区段中前n个数据包的接收时间建立数据包接收时间预测曲线,并根据所述数据包接收时间预测曲线预测第n+1个数据包接收时间,其中(1<n<n,n++),n为所述时间区段内所有的数据包个数;根据第n+1个数据包的实际接收时间和预测接收时间来计算所述时间区段的抖动。

在示例性的实施例中,执行模块440,还用于:当抖动大于预设第一阈值时,则启用第一动态缓存用于缓存接收到的音视频数据的数据包;当抖动大于预设第二阈值时,则启用第二动态缓存用于缓存接收到的音视频数据的数据包;其中,第二阈值大于第一阈值,第二动态缓存大于第一动态缓存。以及当丢包率高且带宽充足时,通过前向纠错方式执行数据包传输;当丢包率高且带宽不足且延时低时,通过丢包重传方式执行数据包传输;当丢包率高且带宽不足且延时高时,通过丢包重传方式执行数据包传输,并降低传输码率和显示分辨率。

实施例三

图8示意性示出了根据本申请实施例三的适于实现数据传输方法的计算机设备1的硬件架构示意图。本实施例中,计算机设备1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是具有网关功能的机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,计算机设备1至少包括但不限于:可通过系统总线相互通信链接存储器510、处理器520、网络接口530。其中:

存储器510至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器510可以是计算机设备1的内部存储模块,例如该计算机设备1的硬盘或内存。在另一些实施例中,存储器510也可以是计算机设备1的外部存储设备,例如该计算机设备1上配备的插接式硬盘,智能存储卡(smartmediacard,简称为smc),安全数字(securedigital,简称为sd)卡,闪存卡(flashcard)等。当然,存储器510还可以既包括计算机设备1的内部存储模块也包括其外部存储设备。本实施例中,存储器510通常用于存储安装于计算机设备1的操作系统和各类应用软件,例如数据传输方法的程序代码等。此外,存储器510还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器520在一些实施例中可以是中央处理器(centralprocessingunit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器520通常用于控制计算机设备1的总体操作,例如执行与计算机设备1进行数据交互或者通信相关的控制和处理等。本实施例中,处理器520用于运行存储器510中存储的程序代码或者处理数据。

网络接口530可包括无线网络接口或有线网络接口,该网络接口530通常用于在计算机设备1与其他计算机设备之间建立通信链接。例如,网络接口530用于通过网络将计算机设备1与外部终端相连,在计算机设备1与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(globalsystemofmobilecommunication,简称为gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。

需要指出的是,图8仅示出了具有部件510-530的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。

在本实施例中,存储于存储器510中的数据传输方法的程序代码还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器520)所执行,以完成本申请实施例。

实施例四

本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

从线程池提取预设数量的服务请求;根据配置规则将每一条服务请求配置为组装任务,其中,组装任务包括任务属性;根据所述任务属性将不同的组装任务分配到不同的任务处理管道进行处理,得到对应的反馈结果;将反馈结果分别返回给对应的请求方。

本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,简称为smc),安全数字(securedigital,简称为sd)卡,闪存卡(flashcard)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中服务平台的组件管理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。

显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。

以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1