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

文档序号:12493004阅读:179来源:国知局
数据的传输方法及装置与流程

本发明涉及通信领域,特别是涉及一种数据的传输方法及装置。



背景技术:

在进行实时多方音视频通信时,如果网络延时较大,则影音数据的播放会受到影响。由于影音数据中音频数据比视频数据小,因此可能出现影音数据中视频和音频不同步的情况,这是由于较小的音频文件已从发送端传输到接收端,而较大的视频文件还未传输到接收端。

针对现有技术中,在网络延时的时候,较大数据可能传输不畅的问题,目前业界没有理想的解决方式。



技术实现要素:

本发明目的在于提供一种数据的传输方法及装置,旨在解决网络延时的时候,较大数据可能传输不畅的问题。

本发明提供了一种数据的传输方法,该方法包括:获取多条数据的发送端时间和接收端时间;根据发送端时间和接收端时间确定多条数据中的超时数据并丢弃超时数据;根据超时数据的数量调整发送端的数据发送量。

本发明还提供了一种数据的传输装置,该装置包括:获取模块,用于获取多条数据的发送端时间和接收端时间;确定模块,用于根据发送端时间和接收端时间确定多条数据中的超时数据并丢弃超时数据;调整模块,用于根据超时数据的数量调整发送端的数据发送量。

通过本发明,接收到能够快速将网络情况反馈给发送端,发送端根据网络情况调节清晰度,从而保证了播放的流畅。

附图说明

图1是本发明实施例提供的数据的传输方法的流程图;

图2是本发明实施例提供的丢弃超时数据的方法的流程图;

图3是本发明实施例提供的调整数据发送量的方法的流程图;

图4是本发明优选实施例提供的数据的传输方法的流程图;

图5是本发明实施例提供的数据的传输装置的结构框图。

具体实施方式

为了使本发明要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供了一种数据的传输方法,图1是本发明实施例提供的数据的传输方法的流程图,如图1所示,该方法具体包括以下步骤S110至步骤S130。

步骤S110,获取多条数据的发送端时间和接收端时间。

本实施例中的数据可以是影音数据,即视频数据和音频数据。发送端时间是发送数据时的时间,接收端时间是接收数据时的时间。通过获取发送端和接收端两端的时间可以确定“相对时间”。在交互的过程中,发送端和接收端获取的时间可能是不一样的,因此不能用其中一端的时间作为数据传输的标准,否则无法保证实时性。“相对时间”可以作为一些操作的标准,例如,接收端在合并视频所用“相对时间”是发送端时间。相对时间的精度一般为微秒或纳秒。

为了准确地获取发送端时间,优选的,可以通过获取发送端的时间戳确定发送端时间,发送端在发送数据时写入时间戳。发送端将时间戳并入待发送的数据,接收端在接收数据时即可获取到发送不同数据时各自对应的时间戳。从而获取发送端时间。

步骤S120,根据发送端时间和接收端时间确定多条数据中的超时数据并丢弃超时数据。

根据发送端时间和接收端时间的差值可以确定数据是否超时,如果继续播放超时数据,可能导致音频和视频不同步的问题,因此在确认数据超时后,可以丢弃该数据,尽快达到视频和音频的同步。

图2是本发明实施例提供的丢弃超时数据的方法的流程图,该方法是对步骤S120的优选实施方式,如图2所示,该方法包括步骤S210至步骤S230。

步骤S210,计算发送端时间与接收端时间的时间差值。

通过时间戳或者其他时间表达方法,均可以对发送端时间和接收端时间求差值。

步骤S220,获取时间差阈值。

时间差阈值是人工预设的,用于确定数据超时程度,进而避免视频数据与音频数据的时间点明显不一致的情况。因此当一帧数据的时间差值超过时间差阈值时,可以确定当前数据超时。

步骤S230,判断多条数据中每条数据的时间差值和时间差阈值的大小,并丢弃时间差值大于时间差阈值的数据。

对各条数据逐条判断,判断数据的时间差值大于时间差阈值时,则丢弃对应的数据,继续对下一条数据进行判断,如果下一条数据的时间差值小于或等于时间差阈值,则播放该数据。

步骤S130,根据超时数据的数量调整发送端的数据发送量。

本实施例在网络延时较大时,对发送的数据进行调整,所以能够通过智能地控制保持影音数据的流畅度。图3是本发明实施例提供的调整数据发送量的方法的流程图,如图3所示,该方法包括:

步骤S310,根据多条数据中超时数据的占比,统计丢包率。

数据的条数可以以帧为单位,每一帧数据可以有对应的编号或标识。通过统计发送端各数据的帧的编号,以及接收端各数据的帧的编号,可以获知有多少帧数据被丢弃,从而可以统计丢包率为多少。

步骤S320,获取丢包率阈值。

丢包率的阈值是人为设定的,一定程度上反映了网络延时情况,当丢包率大于该丢包率阈值,说明网络延时比较明显。

步骤S330,当丢包率大于丢包率阈值时,通知发送端减小数据发送量。

网络延时比较明显说明数据量较大而网络带宽不够,此时可以通过降低清晰度的方式较小数据发送量。清晰度包括音频数据的清晰度和视频数据的清晰度。作为一种优选的实现方式,本实施例可以降低视频数据的帧率、码流和音频数据的码流。

具体地,可以通过降低发送端“视频帧率、码流”和“音频码流”等参数,降低上行带宽,例如,接收端通过统计网络下行码率如果小于发送端上行码率90%以下,则接收端远程调节发送端的视频帧率减少3帧/秒以上,从而明显减少视频流卡顿;在音频卡顿时,码率从48K降低到32K,从而明显提高声音流畅度。在网络恢复正常时,恢复原视频帧率、音频码流。

本实施例通过超时数据的数量判断网络延时情况,当网络延时较大时,通过降低清晰度的方式减小数据发送量,以促使数据及时发送到接收端,从而保证了数据发送的流畅性。

本发明优选实施例提供了一种数据的传输方法,图4是本发明优选实施例提供的数据的传输方法的流程图,如图4所示,该方法包括:

步骤S01,发送端视频采集。

步骤S02,发送端对视频数据进行编码。

步骤S03,发送端发送视频数据帧。

步骤S04,发送端判断该视频数据帧的长度是否超过子包长度。如果是,则执行S05;如果否,则执行S07。

子包是数据长度小于或者等于额定发送长度的数据包,子包可以是由较大数据包拆分出来的。

步骤S05,发送端将视频帧拆分成多个子包,并分别写入各子包的ID和时间戳。

步骤S06,发送端发送子包队列。

步骤S07,发送端发送子包数据。执行完本步骤后,执行步骤S15。

步骤S08,发送端生成数据帧的子包队列。

步骤S09,发送端重发该子包队列,然后执行S06。

步骤S10,发送端音频采集。

步骤S11,发送端对音频数据进行编码。

步骤S12,发送端发送音频数据帧。

步骤S13,发送端在音频数据帧中写入时间戳。

步骤S14,发送端发送音频数据。

步骤S15,接收端接收视频数据帧。

步骤S16,接收端解析数据各子包的ID和时间戳。

步骤S17,接收端判断是否超时。如果是,执行步骤S36;如果否,执行否,执行步骤S18。

步骤S18,接收端合并子包。

步骤S19,接收端判断子包是否合并完全。如果是,执行步骤S24;如果否,执行步骤S20。

本步骤判断缓存队列中时间戳最小帧是否接收完全。

步骤S20,接收端计算接收数据帧的网络延时和超时

步骤S21,接收端查询上一帧数据接收情况。

步骤S22,接收端判断是否合并完全。如果是,返回步骤S15,接收下一条视频数据帧;如果否,执行步骤S23。

本步骤判断时间戳次小数据帧是否接收完全。时间戳次小数据帧的要等待最小帧接收完全。

步骤S23,接收端请求重传数据帧中未接收到的子包。

步骤S24,接收端提交到接收完成队列。

步骤S25,接收端按时戳排序。

步骤S26,接收端获取最小时间戳的数据帧。

步骤S27,接收端判断是否有更小时间戳的数据帧。

步骤S28,接收端接收步骤S14发送的音频数据。

步骤S29,接收端进行音频解析。

步骤S30,接收端进行音频播放。

步骤S31,比较接收端和发送端的时间戳。

步骤S32,接收端根据时间戳判断是否超时。如果是,执行步骤S35;如果否,执行步骤S33。

步骤S33,接收端进行视频解码。

步骤S34,接收端进行视频渲染。

步骤S35,接收端回收音频中的超时帧。

步骤S36,接收端回收视频中的超时帧。

步骤S37,接收端统计丢包率。

步骤S38,接收端远程音视频参数调节。

步骤S39,发送端设置音视频参数。

步骤S40,发送端等待视频数据帧重发请求。

步骤S41,发送端判断是否超时。如果是,执行步骤S42;如果否,执行步骤S43。

步骤S42,发送端回收超时帧。

步骤S43,发送端获取重发子包序列。

通过本实施例,接收到能够快速将网络情况反馈给发送端,发送端根据网络情况调节清晰度,从而保证了播放的流畅。

本发明实施例还提供了一种数据的传输装置,图5是本发明实施例提供的数据的传输装置的结构框图,如图5所示,该装置包括获取模块510、确定模块520和调整模块530。

获取模块510用于获取多条数据的发送端时间和接收端时间。

确定模块520用于根据发送端时间和接收端时间确定多条数据中的超时数据并丢弃超时数据。

调整模块530用于根据超时数据的数量调整发送端的数据发送量。

优选的,获取模块510还用于通过获取发送端的时间戳确定发送端时间,发送端在发送数据时写入时间戳。

优选的,确定模块520包括:计算单元,用于计算发送端时间与接收端时间的时间差值;第一获取单元,用于获取时间差阈值;判断单元,用于判断多条数据中每条数据的时间差值和时间差阈值的大小,并丢弃时间差值大于时间差阈值的数据。

优选的,调整模块530包括:统计单元,用于根据多条数据中超时数据的占比,统计丢包率;第二获取单元,用于获取丢包率阈值;通知单元,用于当丢包率大于丢包率阈值时,通知发送端减小数据发送量。

优选的,数据包括视频数据和音频数据,调整模块还用于降低视频数据的帧率和音频数据的码流。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元的具体工作过程,可以参考前述装置实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同装置来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例装置的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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