CN104270684B - 一种面向实时应用的视音频数据网络传输系统和方法 - Google Patents

一种面向实时应用的视音频数据网络传输系统和方法 Download PDF

Info

Publication number
CN104270684B
CN104270684B CN201410493934.3A CN201410493934A CN104270684B CN 104270684 B CN104270684 B CN 104270684B CN 201410493934 A CN201410493934 A CN 201410493934A CN 104270684 B CN104270684 B CN 104270684B
Authority
CN
China
Prior art keywords
subpackage
video
audio
compound
bag
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.)
Active
Application number
CN201410493934.3A
Other languages
English (en)
Other versions
CN104270684A (zh
Inventor
刘运红
赵燕超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dayang Technology Development Inc
Original Assignee
Beijing Dayang Technology Development Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dayang Technology Development Inc filed Critical Beijing Dayang Technology Development Inc
Priority to CN201410493934.3A priority Critical patent/CN104270684B/zh
Publication of CN104270684A publication Critical patent/CN104270684A/zh
Application granted granted Critical
Publication of CN104270684B publication Critical patent/CN104270684B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23602Multiplexing isochronously with the video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4342Demultiplexing isochronously with video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets

Abstract

本发明涉及一种面向实时应用的视音频数据网络传输系统和方法,包括:发送单元,发送单元通过多条TCP链路与接收单元连接:获取和复合装置,等分包打包装置,等分包发送装置,等分包接收装置,流解析装置,数据拆包装置,解复合装置,加急发送装置。本实施例通过使用多TCP进行传输,不仅可以保证数据传输的可靠性,同时能够提高网络利用的效率、并且适用于多种网络环境。并使用视音频复合包的方式,不仅可支持多种多媒体文件传输,同时也方便了接收端的播放和存储,易于做到视音频同步。同时还设置了备份发送队列和期望包号,便于有效地确定需要加急重传的数据包,实现了加急重传,进一步保证了数据的实时性。

Description

一种面向实时应用的视音频数据网络传输系统和方法
技术领域
本发明涉及本发明涉及一种面向实时应用的视音频数据网络传输系统和方法,是一种计算机网络系统和方法,是一种用于视音频数据传输的系统和方法。
背景技术
目前越来越多的网络应用和服务都涉及到了视音频,而视音频数据的网络传输则成为决定这些应用和服务质量高低的关键环节。相对于传统的基于碎片化小文件数据的网络传输,视音频数据的网络传输又有其特殊性,一般来讲,视音频数据比网页文本类数据大得多,且具有时序性,这就要求更大的有效传输带宽和更小的延时,尤其是面向实时性视音频应用时,对网络传输带宽以及延时的要求就更为苛刻。这对于目前的网络环境来说是一大挑战。目前的网络,在延时、实际传输带宽、丢包率等方面很难做到高稳定,延时突然增长、丢包暂时恶化等情况都很常见,这对于视音频数据的实时传输影响很大,会导致视频出现马赛克或者停滞,音频出现杂音、噪音及不连续等情况发生。
发明内容
为解决现有技术的问题,本发明提出一种面向实时应用的视音频数据网络传输系统和方法。所述的系统和方法旨在解决如何高效的实现视音频数据的网络实时传输的问题,尤其是能够应对网络环境不稳定且对实时性要求高的情况,例如在丢包现象非常常见的3G等一些无线网络下的视音频实时传输;同时还能够解决具有高带宽、高延时特点的长肥网络缓存制约效率的问题,保证传输的实时性。
本发明的目的是这样实现的:一种面向实时应用的视音频数据网络传输系统,包括:发送单元,所述的发送单元通过多条TCP链路与接收单元连接;所述的发送单元包括:获取和复合装置,所述的获取和复合装置与等分包打包装置连接,所述的等分包打包装置与具有多个发送处理线程的等分包发送装置连接;所述的接收单元包括:具有多个接收处理线程的等分包接收装置,所述的等分包接收装置与流解析装置连接,所述的流解析装置与数据拆包装置连接,所述的数据拆包装置与解复合装置连接;所述的发送单元还包括加急发送装置,所述的加急发送装置与等分包发送装置连接;其中,
发送单元,用于将视音频数据实时的发送给远端相应的接收单元;
接收单元,用于实时的接收和处理所述发送单元发送的视音频数据,使其能够提供给上层应用使用;
获取和复合装置,用于获取准备传输的视音频数据,并将其解析以生成按照视频和音频数据各自采样时间对齐的复合在一起的视音频复合包;其中,视音频复合包还包括了带有复合包号、复合包大小、音频数据大小和起始位置、视频数据大小和起始位置等信息的复合包头;
等分包打包装置,用于将所述的视音频复合包打包成适合网络传输的数据量大小相等的等分包;其中,等分包还包括了带有等分包号的等分包头;
等分包发送装置,用于将所述的等分包通过一条或多条TCP链路进行发送;
等分包接收装置,用于接收所述等分包发送装置发送的等分包;
流解析装置,用于将等分包接收装置接收的等分包利用等分包号重排成连续的等分包队列,丢弃掉重复接收的等分包,并实时通知发送单元期望包号;
数据拆包装置,用于将所述的连续等分包队列中的等分包去掉等分包头,并根据复合包头信息还原视音频复合包;
解复合装置,用于将通过数据拆包装置拆包的视音频复合包中的视频和音频数据根据复合包头中的信息进行分离和输出,以供上层应用程序使用;
加急发送装置,用于通过设置发送时间阈值,和流解析装置回传的期望包号来判断已经发送过的等分包中需要重传的,并将其通过等分包发送装置进行加急重传。
进一步的,所述的等分包发送装置中设置了一个常规发送队列和一个备份发送队列;
所述的等分包打包装置,首先设定一固定值L,其次按照视音频的时间顺序依次取一个视音频复合包,将该视音频复合包的数据大小,亦即长度与L进行比较,如果大于,将该视音频复合包以L进行等分为一个或多个部分,不足L的部分与下一个或多个视音频复合包合并直到补足到L;如果小于,将该视音频复合包与下一个或多个视音频复合包合并直到补足到L;如果等于,不动作;最后将每部分长度为L的视音频复合包数据增加等分包头,打包为等分包,并将等分包放置于常规发送队列中;
所述的等分包发送装置,用于检测各条TCP链路是否有空闲,并将常规发送队列中排在最前面的等分包放入与空闲TCP链路所对应的传输处理线程中进行传输,并将该等分包放入备份发送队列中;
所述的流解析装置,将通过等分包接收装置获取的等分包按照其等分包号从小到大的顺序进行排序,并记录最大的连续等分包号;将最大连续等分包号+1作为期望包号并通知给发送单元;
所述的加急发送装置,用于判断是否有重传包、选择传输代价最小的空闲链路、提取重传包放入该传输代价最小的空闲链路;具体包括:
将收到ACK的等分包从备份发送队列中删除;
将小于期望包号的等分包从备份发送队列中删除,判断剩余的等分包是否超过发送时间阈值,超过的作为重传包;
判断空闲的TCP链路是否已经传输过该重传包,在其余未传输过该重传包的空闲TCP链路中选择出传输重传包代价最小的;
并在备份发送队列中提取重传包,放入传输重传包代价最小的TCP链路。
一种使用上述系统的面向实时应用的视音频数据网络传输方法,所述的方法的步骤如下:
获取视音频数据的步骤:用于获取和复合装置获取准备传输的视音频编码数据;
形成视音频复合包的步骤:用于通过获取和复合装置将视音频压缩数据解析并生成按照视频和音频数据各自采样时间对齐的复合在一起的视音频复合包;其中视音频复合包还包括带有复合包号的复合包头;
等分打包的步骤:用于等分包打包装置将视音频复合包等分为定长的数据段,加上带有等分包号的等分包头,打包为等分包,并将等分包放置于常规发送队列中;
判断TCP链路是否有空闲的步骤:用于等分包发送装置检测各条TCP链路是否有空闲,如果出现空闲的TCP链路,进入下一步;否则,不动作;
判断是否有重传包的步骤:通过加急发送装置判断备份发送队列中是否有需要重传的等分包,如果“是”则进入“加急重传等分包的步骤”,如果“否”则进入下一步骤;
常规发送等分包的步骤:用于等分包发送装置将常规发送队列中排在最前面的等分包放入与空闲TCP链路所对应的传输处理线程中进行传输,并将该等分包放入备份发送队列中;
接收等分包的步骤:用于等分包接收装置的各个传输处理线程接收发送单元传来的等分包,并将这些等分包交予流解析装置处理;
流解析的步骤:流解析装置从等分包接收装置获取等分包之后利用等分包号将其连续化;
等分包拆包的步骤:用于数据拆包装置获取通过流解析装置连续化的队列中的多个等分包,根据复合包头所包含的信息将多个等分包组成长度不等的视音频复合包;
解复合的步骤:用于解复合装置根据复合包头中的信息将视音频复合包中的视频数据和音频数据分离并输出;
加急重传等分包的步骤:用于重传作为重传包的等分包。
进一步的,所述的“形成视音频复合包的步骤”包括如下子步骤:
获取一帧视频数据作为采样视频数据,并取得所述采样视频数据的时间戳t和视频采样间隔Δt;
于所述采样视频数据对应的音频数据中获取[t, t+Δt ]这一时间段内的多个音频采样点,作为一帧音频采样数据;
将一帧视频采样数据与对应的音频采样数据打包并增加复合包头,形成一个视音频复合包,所述的复合包头的包头信息包括:复合包号、视频信息、音频信息、数据持续时间段、视频数据和音频数据各自的存储起始位置及大小、视音频复合包的长度。
进一步的,所述的“等分打包的步骤”包括如下子步骤:
视音频复合包分部分的子步骤:用于首先设定一固定值L,其次按照视音频的时间顺序依次取一个视音频复合包,将该视音频复合包的数据大小,亦即长度与L进行比较,如果大于,将该视音频复合包以L进行等分为一个或多个部分,不足L的部分与下一个或多个视音频复合包合并直到补足到L;如果小于,将该视音频复合包与下一个或多个视音频复合包合并直到补足到L;如果等于,不动作;
增加包头信息并打包的子步骤:用于将每部分长度为L的视音频复合包数据增加等分包头,打包为等分包。
进一步的,所述的“判断是否有重传包的步骤”包括:用于加急发送装置将收到ACK的等分包从备份发送队列中删除;将小于期望包号的等分包从备份发送队列中删除,判断剩余的等分包是否有超过发送时间阈值的,有超过的,将该等分包作为重传包,并进入“加急重传等分包的步骤”;剩余的等分包都没有超过发送时间阈值,则进入“常规发送等分包的步骤”。
进一步的,所述的“加急重传等分包的步骤”包括如下子步骤:
选择空闲TCP链路中传输重传包代价最小的子步骤:用于加急发送装置判断空闲的TCP链路是否已经传输过该等待重传的等分包、空闲TCP链路中传输重传包代价最小的;
重传等分包的子步骤:用于加急发送装置从备份发送队列中提取重传包,放入空闲TCP链路中传输重传包代价最小的TCP链路,等分包发送装置通过对应的空闲发送处理线程进行重传。
进一步的,所述的“流解析的步骤”包括如下子步骤:
排序的子步骤:将等分包接收装置获取的等分包按照其等分包号从小到大的顺序进行排序;
回传期望包号的子步骤:记录下排序后的最大连续等分包号,并将最大连续等分包号+1作为期望包号并通知给发送单元。
进一步的,所述的“等分包拆包的步骤”包括:用于数据拆包装置将连续队列中的等分包的等分包头去掉,根据复合包头信息还原视音频复合包。
进一步的,上述的“解复合的步骤”包括:解复合装置根据复合包头信息确定视音频数据的位置和大小,分离并输出视频数据和音频数据。
本发明产生的有益效果是:本实施例通过使用多TCP进行传输,不仅可以保证数据传输的可靠性,同时能够提高网络利用的效率、并且适用于多种网络环境。并使用视音频复合包的方式,不仅可支持多种多媒体文件传输,同时也方便了接收端的播放和存储,易于做到视音频同步。同时还设置了备份发送队列和期望包号,便于有效地确定需要加急重传的数据包,实现了加急重传,进一步保证了数据的实时性。
附图说明
下面结合附图和实施例对本发明作进一步说明。
图1是发明实施例一所述系统的原理框图;
图2是发明实施例二所述方法的流程图;
图3是发明实施例三所述“形成视音频复合包的步骤”的流程图;
图4是发明实施例五所述“加急重传等分包的步骤”的流程图;
图5是发明实施例六所述“流解析的步骤”的流程图;
图6是发明实施例七所述“等分包拆包的步骤”的流程图。
具体实施方式
实施例一:
本实施例涉及一种面向实时应用的视音频数据网络传输系统,如图1所示。本实施例包括:发送单元,所述的发送单元通过多条TCP链路与接收单元连接;所述的发送单元包括:获取和复合装置,所述的获取和复合装置与等分包打包装置连接,所述的等分包打包装置与具有多个发送处理线程的等分包发送装置连接;所述的接收单元包括:具有多个接收处理线程的等分包接收装置,所述的等分包接收装置与流解析装置连接,所述的流解析装置与数据拆包装置连接,所述的数据拆包装置与解复合装置连接。本实施例的关键之一就是建立多条TCP链路。现代网络随着技术的发展,速度越来越快,延迟也随着网络的扩大,变得越来越大,网络硬件设备不再是传输瓶颈。现在的传输瓶颈往往出现在一些传输协议之中,而修改传输协议的难度却远远大于增加网络带宽和延时率的难度。
目前常用的传输协议是UDP或者TCP。使用TCP会出现如下问题:
(1)TCP对丢包敏感,出现丢包会迅速降低发送速度。TCP认为出现丢包就是网络发生了拥塞,就会通过减少传输数据量的方式避免拥塞。而对于像3G等一些无线网络来说,丢包现象非常常见,这会导致传输效率低;
(2)TCP在长肥网络(即高带宽、高延时的网络)中,传输效率低。造成该现象的主要原因是由于协议字段所限,TCP的窗口缓存空间有限,在延时大的网络情况下,会出现缓存制约效率的问题。
使用UDP一般会出现如下几个问题:
(1)为处理丢包问题需要付出很大的代价。由于UDP协议本身并不保证传输的可靠性,这就需要上层应用软件去做大量的工作去保证数据的可靠传输。
(2)直接使用UDP会导致丢包、乱序等问题。
(3)即使某产品对UDP协议进行封装优化,克服了其丢包乱序等问题,但这些优化一般都是针对特定的网络环境,很难能够适应各种不同的网络环境,而且还容易造成对使用TCP传输的不公平。
本实施例使用多条TCP链路传输可以弥补单条TCP传输的时候出现的上述的两个问题,突破现有协议的传输瓶颈,视音频文件之类的大型文件的快速传输。如图1所示,图1中画出了8条TCP链路,实际还可以更多和少一些。另外,由于多条TCP链路,延时、丢包等特性各不相同,容易出现各个链路数据到达时间差异较大,为此,本实施例使用了加急重传的方法,以解决各个链路质量差异导致的数据不同步的问题。
建立多条TCP链路可以基于一个网卡也可以基于多个网卡。建立多个链路,如果只有一个网卡,则这5个链路都建立在在这一个网卡上,如果有多个网卡,则会平均的利用这几个网卡。例如:有三个网卡A、B和C,要建立五个传输链路1、2、3、4、5。则本实施会依次的将链路1绑定到网卡A上,然后向接收端发送连接请求,接收端接收后链路1建立完毕;然后是链路2绑定到网卡B上,建立连接;链路3绑定到网卡C上,建立连接;链路4绑定到网卡A上,建立连接。链路5绑定到网卡B上,建立连接。
视音频编码数据通过两种途径获取:一种是多媒体文件,例如存储在网站硬盘、服务器硬盘中的电视节目、短片或电影等;另一种是上层输入,例如电视台的节目编辑系统、节目播出系统等。多媒体文件或从上层获得多数是视音频编码数据,即通常经编码形成一定视音频格式,例如: h264+AAC等,本实施例首先将这些不同编码格式的视音频数据进行打包 ,形成统一的复合视音频数据格式,再进行传输处理。
本实施例所述的获取和复合装置主要是获取准备传输的视音频编码数据,并将编码视音频数据变为统一格式的复合视音频数据,根据其时间信息进行复合,使得相同时间段内产生的视音频数据复合在一起。这个功能主要带来两方面的好处:一方面,将以各种多媒体文件格式存储的视音频数据转化成统一的视音频复合数据格式,可以方便接收端进行统一处理,使得本实施例能够兼容各种格式的多媒体文件。另一方面,接收单元收到视音频数据之后,不用再做视音频对齐处理,方便解码播放。
每帧视频和每个音频采样点都有自己的时间戳(即采样时间)。上层应用软件输入调用需要根据接口的定义进行输入,需要输入数据、采样时间戳、视频或者音频等信息。这些数据被放入到一个缓存中,视音频复合装置从缓存中获取相应的数据进行复合。对于多媒体文件,需要根据其文件格式的定义,进行相应的解析,可以获取视音频数据和这些数据的信息,视音频复合装置从文件中读取相应的数据进行复合。
所述的等分包打包装置主要是将视音频复合数据打包成长度相等的二进制等分包,并增加等分包头,组成网络数据包。其中包头信息主要包括等分包号、数据帧类型等相关信息,接收端可根据这些信息将不同TCP链路传输的数据进行解析组合成顺序且连续的数据。所谓等分是按照数据大小,亦即长度进行的等分,即各个等分包的长度定为一个相等的值,这是一种视音频文件/数据在网络上传输的常规做法。
所述的等分包发送装置主要通过多条TCP链路进行传输。等分包发送装置中设立与TCP链路数目相同的发送处理线程,对传输的等分包进行传输处理。同时在等分包发送装置中还要设置多个等分包缓存队列,通常至少包括一个常规发送队列和一个备份发送队列。常规发送队列用于暂时存储等待传输的等分包,一旦某个等分包进入某个传输处理线程,即将该等分包从常规发送队列中删除。备份发送队列用于存储已从常规发送队列中删除但未被接收单元确认收到的等分包,以便随时准备进行加急重传,一旦某个等分包被接收单元所确认收到,即从备份发送队列中删除。等分包发送装置对各个发送处理线程及其对应的TCP链路进行检测,一旦发现哪个发送处理线程(TCP链路)出现空闲,马上从常规队列中提取排在最前面的等分包放入该空闲的发送处理线程中进行传输处理。
上面已经分析过单个的TCP连接有一些缺点,这些缺点使得传输变得效率低,从而影响实时性。使用多条连接,一方面可以增加总的TCP缓存,缓存的增加能够使得TCP连接在长肥网络环境下更有效率,同时拥塞窗口变大的时候,能够保证有数据可发。另一方面可以弥补因某条链路丢包,导致该TCP链路速度下降。当一条TCP链路上发生丢包后,TCP会降低发送速度,但当使用多条链路的时候,一条降低,还有其他链路正常,总体上传输速度会更稳定有效。
在发送单元中还增加了一个加急发送装置。在实时性要求高、网络不稳定的环境中(例如无线网络),很容易出现数据丢失的情况。而TCP协议中规定,如果出现数据丢失,接收端就会不断的请求发送端发送丢失的数据,直到收到丢失数据为止。问题是,如果接收端总是不能收到丢失的数据,就会不断请求发送端发送该丢失的数据,结果造成链路的传输速度降低,出现堵塞。而在本实施例中,由于采用多条TCP链路,当一个TCP链路出现了堵塞,如果该链路上传输的数据包又是期望包,缺少该包,流解析装置就无法正常解析视频数据,这时候加急发送装置将该期望包通过其他传输情况好的链路进行重传;并且,如果连重传期望包的请求也由于网络不稳定等因素的影响而迟迟到达不了发送单元,此时还可以利用备份发送队列自身的发送时间阈值来控制进行重传,这样能够大大加快该数据包到达的速度,从而保证数据传输的实时性。
应当说明的是本实施例所述的期望包指的是这样一个特殊的等分包:期望包代表的是按照等分包号由小到大的顺序进行排列的过程中,在本次排序中未找到的比上一次排序时的最大连续号数大1 的等分包,它是流解析装置当前将接收到的等分包进行连续化处理时急需的等分包,如果该包没有达到,则流解析装置就需要一直等待,这是由于视音频数据必须连续的特点所决定的,一旦上层应用程序使用了不连续的数据就可能出现解码错误等问题。举例说明,例如某一时刻收到的等分包按照包号从小到大排序后为:89、90、91、97、98、100、101、……,那么连续队列为89、90、91,最大连续号数为91则包号为92的等分包即为期望包。
本实施例所述的等分包接收装置通过多条TCP链路接收等分包发送装置发来的等分包。由于使用了多TCP链路进行数据的发送,等分包接收装置也是一个接收处理线程对应一个TCP链路。一个接收处理线程只负责自己线程链路上的数据接收,接收完一个等分包后,将其交给流解析装置,供流解析装置使用。
流解析装置主要是将乱序且不连续的等分包整理成顺序且连续的等分包队列。单条TCP链接传输的数据是顺序的,对于本实施例所述的多个TCP链路来说,由于各个链路的速度不一样,从而导致了数据流到达的时间差异比较大,这时候就需要对数据进行解析。解析的方式主要获取各个等分包的等分包号,按照从小到大的顺序进行整理。另外,如果存在加急重传的等分包,这就会导致同一等分包通过多个链路到达多次,需要将后到达的数据丢弃。
数据拆包装置从连续包队列中获取等分包,去掉它们的等分包头,然后根据复合包头中的信息进行组合,使得这些长度定长的二进制等分包还原成长度不等的视音频复合包。
解复合装置根据复合包头中的信息对视音频复合包进行拆包。复合包头所包含的信息是该包所具有的视音频数据的位置及大小,依据这些信息可以直接获取并分离出音视频数据。然后将分离出的视音频数据交给播放系统进行播放,或者经处理保存成各种格式的多媒体文件。
实施例二:
本实施例是实施例一中关于加急发送装置处理的优化。具体为:当流解析装置找不到当前急需的等分包时,将其作为期望包并将期望包号通知给发送单元;此时等分包号小于期望包号的等分包都已经被接收端正确收到了,所以此时加急发送装置首先将收到ACK(Acknowledgement即确认字符,在数据通信传输中,接收站发给发送站的一种传输控制字符。它表示确认发来的数据已经接收无误)的等分包从备份发送队列中删除;将备份发送队列中小于该期望包号的等分包全部删除而不用等到接收到其ACK,再从该队列中剩下的等分包中找出发送时间(即用现在的时间减去发送该包的时间)超过阈值的作为重传包。
实施例三:
本实施例是一种使用实施例一所述系统的面向实时应用的视音频数据网络传输方法,所述的方法的步骤如下,流程图见图2:
获取视音频数据的步骤:用于获取和复合装置获取准备传输的视音频编码数据。通过相关应用程序的实时采集或读取文件的方式获取已压缩的视音频数据。
形成视音频复合包的步骤:用于通过获取和复合装置将视音频压缩数据解析并生成按照视频和音频数据各自采样时间对齐的复合在一起的视音频复合包;其中视音频复合包还包括带有复合包号的复合包头。本步骤将已获取的视音频数据中对应于同一时间段的视频帧、音频采样 进行复合生成视音频复合包。每帧视频和每个音频采样点都有自己的时间戳(即采样时间:此帧视频或此音频采样点产生的时刻)。调用到的上层的应用程序需要根据接口定义进行输入,需要输入的包括视音频数据、采样时间戳、视频或者音频其他相关信息等。这些数据被放入到一个缓存中,获取和复合装置从缓存中获取相应的数据进行复合。而对于视音频文件,获取和复合装置需要根据该文件格式的定义,进行相应的解析,从而获取视音频数据和这些数据的相关信息进行复合。复合包号是一个正整数的自然数列,以便接受单元可以按照复合包号对接收的视音频复合包进行排序,形成完整的视音频复合包序列。
等分打包的步骤:用于等分包打包装置将视音频复合包等分为定长的数据段,加上带有等分包号的等分包头,打包为等分包,并将等分包放置于常规发送队列中。等分包打包的过程就是将长度不同的视音频复合包等分为长度定长的等分包。等分包号是一个正整数的自然数列,以便接收单元可以按照等分包号对接收的等分包进行排序,形成完整的等分包序列。
判断TCP链路是否有空闲的步骤:用于等分包发送装置检测各条TCP链路是否有空闲,如果“是”则进入下一步骤,如果“否”则等待。由于TCP链路的效率和等分包数据量不同的原因,等分包在TCP链路中的传输时间并不相同,各个链路出现空闲的时间也不同,所以要不断的监测,一旦出现空闲马上放入待传输的等分包,这样可以提高传输效率。因为,在传输过程中有丢包或由于种种原因使某个TCP链路的传输发生阻塞,但由于视音频数据的传输实时性,某个数据段的缺失就会造成整体无法使用,因此就必须有加急传输,将缓慢或丢失的等分包立刻传输,因此,链路一有空闲就要先判断是否有加急传输的等分包。本实施例所述的TCP传输是一种智能传输,等分包发送装置不但监测各个TCP链路的发送等分包的情况,还监测各个TCP链路的发送性能,使各个TCP链路发挥最佳的性能进行数据发送。
判断是否有重传包的步骤:通过加急发送装置判断备份发送队列中是否有需要重传的等分包,如果“是”则进入“加急重传等分包的步骤”,如果“否”则进入下一步骤。在发送单元中设置一备份发送队列,将所有放入各个线程进行传输的等分包再放入备份发送队列中作为备份,以防止等分包发送超时(超过“超时阈值”)或丢失,使接收的数据流间断。备份发送队列中保留有发送后未得到ACK的等分包,一旦发现这些等分的发送时间超过超时阈值或接收单元要求立刻重发,则这些等分包则成为重传包。未得到ACK的原因是:一方面可能是该等分包未传输到接收单元,另一方面也有可能是ACK丢失或传输阻塞造成未传输到发送单元。针对第二种情况,可以将其实已经传输到接收单元但ACK传输回发送单元的等分包剔除,使重传机制变得更有效率。具体做法是:流解析装置如果在排序的过程中找不到当前急需的等分包,就会将这个等分包作为期望包,并将期望包号通知给发送单元,发送单元在接收到通知后一方面在备份发送队列中将与收到的期望包号对应的等分包提出作为重传包等待重传,另一方面会将备份发送队列中小于该期望包号的等分包全部删除,这样就会把实际不需要重传的等分包从备选队列中剔除,避免不必要的重传浪费网络传输资源。
常规发送等分包的步骤:用于等分包发送装置将常规发送队列中排在最前面的等分包放入与空闲TCP链路所对应的传输处理线程中进行传输,并将该等分包放入备份发送队列中。由于是多TCP链路的传输,可以同时传输多个等分包。等分包发送装置不断的从常规发送队列中获取等分包,并不断的将等分包放入各个发送传输线程中,多个等分包同时传输。同时又有等分包传输完毕,发送传输线程出现空闲,等分包发送装置则马上填补这个空闲,因此,本实施例所述的方法可以十分高效率的传输数据。
接收等分包的步骤:用于等分包接收装置的各个传输处理线程接收发送单元传来的等分包,并将收到的等分包交由流解析装置进行处理。同样由于是多条TCP链路进行传输,等分包接收装置也有多个接收传输线程,可以同时接收多个等分包。这是本实施例的优势所在,通过多个TCP链路的传输可以突破TCP协议的瓶颈,提高传输速度,使实时的视频播出更加流畅。
流解析的步骤:流解析装置从等分包接收装置获取等分包之后利用等分包号将其连续化. 因为是多条 TCP传输,所以不能像单条TCP传输那样,收到的等分包都是连续的,所以要经过流解析处理之后,才能利用。流解析就是将不同TCP链路、不同时间收到的等分包理顺,成为按照从大到小的等分包号顺序并连续排列的等分包序列。将纷乱的等分包序列排列为顺序并连续的等分包序列的过程可以有多种方式,本实施例采取了期望包的方式,这种方式不但可以达到将纷乱的期望包序列排列为顺序并连续的等分包序列的过程,还可以利用期望包号提高传输效率。本实施例所述的流解析过程包括:流解析装置从等分包接收装置获取等分包之后,进行如下子步骤:
a.初始化的子步骤:用于流解析装置创建一非连续队列和一连续队列。
b.顺序化的子步骤:流解析装置将获取的等分包按照其等分包号从小到大的顺序放入所述的非连续队列中;当非连续队列中只剩下一个空闲位置,此时判断当前的连续队列中最大连续等分包号+1的等分包是否到达非连续队列,到达,则按照从小到大的顺序放入连续队列中;未到达,则等待直到该包获取后按照从小到大的顺序放入连续队列中;
c. 连续化的子步骤:流解析装置取出非连续队列有效位置中最靠前的等分包号与连续队列中最大连续等分包号+1进行比较,如果小于则说明该包之前就已经收到,丢弃该包;如果等于,则将该包取出并放入到连续队列中;如果大于,则将该连续队列中最大连续等分包号+1作为期望包号,并通知发送单元;之后,再循环依次执行步骤b和步骤c的操作,就能够将通过多TCP链路接收到的等分包连续化。将期望包号通知发送单元的目的是希望加急传输这个等分包,因为当前这个等分包已经成为十分滞后、未达到接收单元的等分包了,再不达到就要影响视音频数据的实时解码应用了。
等分包拆包的步骤:用于数据拆包装置获取多个等分包号连续并顺序的等分包,去掉等分包头,根据这些等分包中的复合包头所包含的信息将多个等分包组成长度不等的视音频复合包。等分包拆包时的重要功能就是将等分包中的视音频复合包复原,根据复合包头中的复合包大小找到该包的存储截止位置,从复合包头开始到截止位置为一个完整的视音频复合包。
解复合的步骤:用于解复合装置根据复合包头中的信息将视音频复合包中的视频数据和音频数据分离并输出。通过将视音频复合包中的信息解复合,形成完整的视频数据和音频数据达到播放应用程序或编辑应用程序等可以使用的程度。通过复合,可以将多种的文件格式数据转化成统一的复合数据包。多媒体文件有多种格式,如rm、mp4等等,各种文件格式差异比较大,通过复合后,将这些不同格式的文件数据转化成统一的复合数据包,方便后续处理。
加急重传等分包的步骤:用于重传作为重传包的等分包。当一个等分包在备份发送队列中滞留的时间过长,超过了“超时阈值”就要作为重传包重新放入某个线程进行重传。或者某个备份发送队列中的等分包的包号与接收单元发来的期望包号相符,也要作为重传包重新放入某个线程进行重传。
实施例四:
本实施例是实施三的改进,是实施例三关于“形成视音频复合包的步骤”细化,本实施例所述的“形成视音频复合包的步骤”包括如下子步骤,流程如图3所示:
获取一帧视频数据,并取得该视频数据的时间戳t和视频采样间隔Δt。
于所述采样视频数据对应的音频数据中获取[t, t+Δt ]这一时间段内所有音频采样数据。
将这些视频数据与音频数据打包并增加复合包头,形成一个视音频复合包,所述的复合包头的包头信息包括:复合包号、视频信息、音频信息、数据持续时间段、视频数据和音频数据各自的存储起始位置及大小、视音频复合包的长度。由于每帧视频图像的信息量并不相同,所以每个视音频复合包的长度长短不等。
设置本步骤的目的就是要将不同格式的视音频数据统一,不论是实时采集压缩的视音频数据,还是各种文件格式存储的视音频数据,通过本步骤都统一为复合的视音频数据包。
实施例五:
本实施例是实施三的改进,是实施例三关于“等分打包的步骤”细化,本实施例所述的“等分打包的步骤”包括如下子步骤:
判断视音频复合包长度的子步骤:用于按照视音频的时间顺序依次取一个视音频复合包n,判断n的长度Mn是否大于、等于或者小于等分包设定的长度L,判断的步骤为:
c.取复合包号为n的视音频复合包,并使n=n+1;
d.如果Mn=L,进入增加包头信息并打包的子步骤,不等于进入下一步骤e;
e.如果Mn<L,则使M=Mn,之后进入步骤c,并使Mn=M+ Mn,之后进入上一子步骤d;否则,进入下一步骤f;
f.如果Mn>L,则取当前的一个或多个视音频复合包的MA1长度的前段,使MA1=L,进入下一增加包头信息并打包步骤;取当前的一个或多个视音频复合包的Mn长度的后段,使Mn=Mn– L,进入步骤d;
增加包头信息并打包的子步骤:用于将长度为L的视音频复合包数据增加等分包头,打包为等分包。
本实施例中L是等分包的长度, Mn是复合包号为n的视音频复合包的长度。一个等分包可能由一个或多个视音频复合包组成,一个视音频复合包的数据也可能位于一个或多个等分包中。
本实施例的目的就是将长度不同的视音频复合包打包为长度相同的等分包。首先设定一个长度L作为等分包的长度,这是一个确定的长度,这个长度是根据链路中MTU(即Maximum Transmission Unit最大传输单元,此值设定TCP/IP协议传输数据报时的最大传输单元)决定的,以太网MTU为通常1500字节,L的设置通常是将MTU的值减去必要的各类包头信息长度得到的,以便最大限度的使用MTU长度来传输有效数据。如果一个视音频复合包的长度正好等于L则比较方便,直接加上等分包头就可以打包为一个等分包。但如果视音频复合包的长度小于L,则需要将另一个视音频复合包放在一起,使其长度等于L。当然这需要两个等分包的数据加在一起正好等于L,如果大于L,则只能将另一个等分包的部分数据与前一个等分包放在一起。如果一个视音频复合包较长,可以切为K个等分包。每个等分包的长度仍为L。其中K为M/L商的下取整。将K个等分包增加包头信息,组成K个等分包。如果这个视音频复合包还有剩余的视音频数据,就将剩余的视音频数据,与下一个视音频复合包结合,再进行等分包的打包。
实施例六:
本实施例是实施三的改进,是实施例三关于“判断是否有重传包的步骤”和“加急重传等分包的步骤”细化。
判断是否有重传包的步骤包括:用于加急发送装置将收到ACK的等分包从备份发送队列中删除;将小于期望包号的等分包从备份发送队列中删除,判断剩余的等分包是否有超过“超时阈值”的,有超过的,将该等分包作为重传包,并进入“加急重传等分包的步骤”;剩余的等分包都没有超过发送时间阈值,则进入“常规发送等分包的步骤”。本步骤利用期望包号排除备份发送队列中的多余等分包。备份发送队列中小于期望保号的等分包说明已经传输成功,可以从备份发送队列中删除了。备份发送队列中大于期望保号的等分包都是没有传输成功的,至少还没有收到ACK。没有收到ACK的等分包分为两种情况,一种是还没有超过“超时阈值”,一种是超过“超时阈值”,如果没有超过超时阈值的等分包暂时不做处理继续等待,超过“超时阈值”的就要马上加急发送。
本实施例所述的“加急重传等分包的步骤”包括如下子步骤,流程如图4所示:
选择空闲TCP链路中适合传输重传包的子步骤:用于加急发送装置判断空闲的TCP链路是否已经传输过该等待重传的等分包、哪条空闲的TCP链路适合重传该等分包。本实施例首先要排除已经传输过该等分包的TCP链路,原因是由于该链路上次发送没有按时到达,说明可能该链路上的延时比较大或者丢包率较高,不适合重新传输该加急重传包;然后再选择适合传输这个等分包的TCP传输链路。
重传等分包的子步骤:用于加急发送装置从备份发送队列中提取重传包,放入空闲TCP链路中最适合传输重传包的TCP链路,等分包发送装置通过对应的空闲发送处理线程进行重传。
判断是否有等分包需要重传,判断的依据是等分包的发送时间(即用现在的时间减去发送该包的时间)。在备份发送队列中,首先剔除掉比期望包号小的等分包以及得到ACK回复的等分包,在剩下的等分包中找出发送时间最长的,如果该包的发送时间超过预设的超时阈值,则该包就是需要加急重传的等分包。超时阈值一般设置为链路平均传输时延的2倍左右。例如当链路平局传输时延为100ms时,可以设置超时阈值为200ms。超时阈值设置的过小会加重加急重传的负担,降低信道的有效利用率;但是如果超市阈值设置的过大,则可能造成视音频数据无法及时传输到使用端而影响应用。
选择适合重传的链路,主要根据链路的传输性能进行判断。评价该链路的性能的指标是确认等分包的传输速度,即接收单元收到的等分包的速度。另外需要考虑该TCP链路发送线程中缓存的数据量(已经放入发送线程中,但未发送的数据量)。假如该链路中缓存的数据量是m,要重传的等分包的数据长度为n,传输速度是r的话,则该链路重传该等分包的代价C为:C=(m+n)/r。 根据代价函数C选取性能最好的TCP链路作为重传的链路,即C为最小的链路就是最适合重传的链路。需要强调的是重传链路的选择范围只限于未发送过该等分包的链路,所以这里不计算已经发送过该等分包的一条或多条链路的代价函数C。
如果当前有等分包需要重传,则根据计算代价函数C选取空闲链路中最适合重传的链路,通过该链路发送重传包,其他的空闲链路则发送常规发送队列中的还未发送过的等分包。
实施例七:
本实施例是实施三的改进,是实施例三关于“流解析的步骤”细化,本实施例所述的“流解析的步骤”包括如下子步骤:
排序的子步骤:将等分包接收装置获取的等分包按照其等分包号从小到大的顺序进行排序;
回传期望包号的子步骤:记录下排序后的最大连续等分包号,并将最大连续等分包号+1作为期望包号回传给发送单元。
具体来讲,流解析的步骤可以进一步细化,流程图见图5所示:
初始化的子步骤:用于流解析装置创建一非连续队列和一连续队列。该非连续队列为链表的形式。非连续队列中的等分包的等分包号可以是从小到大顺序排列,但允许其中有间断,而连续队列中的等分包号则必须是连续的。
顺序化处理的子步骤:将从等分包接收装置获取的等分包,按照从小到大的顺序,放入到非连续队列中,序号小的等分包总在序号大的等分包之前;如果非连续队列中已有该序号的等分包,则直接丢弃该等分包;当非连续队列中只剩下一个空闲位置,此时判断比当前连续队列中最大等分包号大1的等分包是否到达非连续队列,到达,则按照从小到大的顺序放入连续队列中;未到达,则等待直到该包获取后按照从小到大的顺序放入连续队列中。
记录最大连续包号的子步骤:最大连续等分包号初始值为0,当从非连续队列中查找到等于最大连续等分包号+1的等分包的时候,最大连续等分包号加1。
连续化处理的子步骤:取出非连续队列有效位置中最靠前的等分包序号与最大连续等分包序号+1进行比较,如果相等,则将该等分包放入连续队列中,并执行“记录最大连续包号的子步骤”;如果小于,则将该等分包从非连续队列中删除;如果大于,则将最大连续包号+1作为期望包号并通知发送单元。
实施例八:
本实施例是实施三的改进,是实施例三关于“等分包拆包的步骤”细化,本实施例所述的“等分包拆包的步骤”包括如下子步骤,流程如图6所示:
提取等分包的子步骤:用于在连续队列中提取等分包,去掉其等分包头。由于等分包在顺序队列中已经排列为顺序,因此,提取的等分包通常为多个连续的等分包,以便拼接为复合包。
分析复合包头的子步骤;用于分析复合头中的信息,得到复合包大小。对提取的等分包中的复合包头信息进行分析,找到带有相同复合包号的等分包。
拼接视音频复合包的子步骤:用于根据复合包大小,还原视音频复合包。本子步骤根据复合包头中的复合包大小,将同一复合包号的数据放一起,将这些数据按照其拆分方式进行组合,拼接到一起就组成了一个视音频复合包。
本步骤对等分包的分析拼接可能出现三种情况,一种是从多个等分包中拼接出一个复合包,二是从一个等分包中取得一个复合包,三是从一个等分包中取得多个复合包。
实施例九:
本实施例是实施三的改进,是实施例三关于“解复合的步骤”细化,本实施例所述的“解复合的步骤”包括如下子步骤:
根据复合包头中的信息确定视音频数据的位置和大小,分离视频数据和音频数据并输出给上层应用程序进行实时应用。
本步骤完成分离视音频数据,分别交给上层进行解码播放,也可以保存成多种多媒体文件格式。复合包头中的信息含有该包具有视音频数据的位置及大小。直接取就可以得到音视频数据。
最后应说明的是,以上仅用以说明本发明的技术方案而非限制,尽管参照较佳布置方案对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案(比如链路的协议、步骤的先后顺序、各个队列的名称等)进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。本发明所述的方法可编制为应用于计算机系统的程序,并运行于本发明所述的计算机网络系统中。

Claims (5)

1.一种面向实时应用的视音频数据网络传输系统,包括发送单元和接收单元,其特征在于,所述的发送单元通过多条TCP链路与接收单元连接;所述的发送单元包括:获取和复合装置,所述的获取和复合装置与等分包打包装置连接,所述的等分包打包装置与具有多个发送处理线程的等分包发送装置连接;所述的接收单元包括:具有多个接收处理线程的等分包接收装置,所述的等分包接收装置与流解析装置连接,所述的流解析装置与数据拆包装置连接,所述的数据拆包装置与解复合装置连接;所述的发送单元还包括加急发送装置,所述的加急发送装置与等分包发送装置连接;其中,
发送单元,用于将视音频数据实时的发送给远端相应的接收单元;
接收单元,用于实时的接收和处理所述发送单元发送的视音频数据,使其能够提供给上层应用使用;
获取和复合装置,用于获取准备传输的视音频数据,并将其解析以生成按照视频数据和音频数据各自采样时间对齐的复合在一起的视音频复合包;其中,视音频复合包还包括了复合包头,复合包头包含复合包号、复合包大小、音频数据大小和起始位置、视频数据大小和起始位置;
等分包打包装置,用于将所述的视音频复合包打包成适合网络传输的数据量大小相等的等分包;其中,等分包还包括了带有等分包号的等分包头,不同的等分包其等分包号使用自然数按照先后顺序从小到大依序排列;具体是:首先设定一固定值L,其次按照视音频的时间顺序依次取一个视音频复合包,将该视音频复合包的数据大小,亦即长度与L进行比较,如果大于,将该视音频复合包以L进行等分为一个或多个部分,不足L的部分与下一个或多个视音频复合包合并直到补足到L;如果小于,将该视音频复合包与下一个或多个视音频复合包合并直到补足到L;如果等于,不动作;最后将每部分长度为L的视音频复合包数据增加等分包头,打包为等分包,并将等分包放置于常规发送队列中;
等分包发送装置,用于将所述的等分包通过一条或多条TCP链路进行发送;等分包发送装置中设置了一个常规发送队列和一个备份发送队列,检测各条TCP链路是否有空闲,并将常规发送队列中排在最前面的等分包放入与空闲TCP链路所对应的传输处理线程中进行传输,并将该等分包放入备份发送队列中;建立多条TCP链路可以基于一个网卡也可以基于多个网卡,如果只有一个网卡,则这多个链路都建立在在这一个网卡上,如果有多个网卡,则会平均的利用这几个网卡;
等分包接收装置,用于接收所述等分包发送装置发送的等分包;
流解析装置,用于将等分包接收装置接收的等分包利用等分包号重排成连续的等分包队列,丢弃掉重复接收的等分包,并实时通知发送单元期望包号;将通过等分包接收装置获取的等分包按照其等分包号从小到大的顺序进行排序,并记录排序中连续最长的等分包号序列,将连续最长的等分包号序列中最大的等分包号+1作为期望包号通知给发送单元;
数据拆包装置,用于将所述的连续等分包队列中的等分包去掉等分包头,并根据复合包头信息还原视音频复合包;
解复合装置,用于将通过数据拆包装置拆包的视音频复合包中的视频和音频数据根据复合包头中的信息进行分离和输出,以供上层应用程序使用;
加急发送装置,用于通过设置超时阈值,和流解析装置回传的期望包号来判断已经发送过的等分包中需要加急重传的,并将其通过等分包发送装置进行加急重传;
还用于判断是否有加急重传包、选择传输代价最小的空闲链路、提取加急重传包放入该传输代价最小的空闲链路;具体包括:
将收到ACK的等分包从备份发送队列中删除;
将等分包号小于期望包号的等分包从备份发送队列中删除,判断备份发送队列中剩余的等分包是否超过超时阈值,超过的作为加急重传包;
判断空闲的TCP链路是否已经传输过该加急重传包,在其余未传输过该重传包的空闲TCP链路中选择出传输加急重传包代价最小的;
在备份发送队列中提取加急重传包,放入传输加急重传包代价最小的TCP链路。
2.一种使用权利要求1所述系统的面向实时应用的视音频数据网络传输方法,其特征在于,所述的方法的步骤如下:
获取视音频数据的步骤:用于获取和复合装置获取准备传输的视音频编码数据;
形成视音频复合包的步骤:用于通过获取和复合装置将视音频压缩数据解析并生成按照视频数据和音频数据各自采样时间对齐的复合在一起的视音频复合包;其中视音频复合包还包括带有复合包号的复合包头;具体包括如下子步骤:
获取一帧视频数据作为采样视频数据,并取得所述采样视频数据的时间戳t和视频采样间隔Δt;
于所述采样视频数据对应的音频数据中获取[t, t+Δt ]这一时间段内的多个音频采样点,作为一帧音频采样数据;
将视频采样数据与音频采样数据打包并增加复合包头,形成一个视音频复合包,所述的复合包头的包头信息包括:复合包号、视频信息、音频信息、数据持续时间段、视频数据和音频数据各自的存储起始位置及大小、视音频复合包的长度,不同的复合包其复合包号使用自然数按照先后顺序从小到大依序排列;
等分打包的步骤:用于等分包打包装置将视音频复合包等分为定长的数据段,加上带有等分包号的等分包头,打包为等分包,并将等分包放置于常规发送队列中,不同的等分包其等分包号使用自然数按照先后顺序从小到大依序排列;
判断TCP链路是否有空闲的步骤:用于等分包发送装置检测各条TCP链路是否有空闲,如果“是”则进入下一步骤;如果“否”则等待;
判断是否有重传包的步骤:通过加急发送装置判断备份发送队列中是否有需要加急重传的等分包,如果“是”则进入“加急重传等分包的步骤”,如果“否”则进入下一步骤;
具体包括:
用于加急发送装置将收到ACK的等分包从备份发送队列中删除;
将小于期望包号的等分包从备份发送队列中删除,判断备份发送队列中剩余的等分包是否有超过“超时阈值”的,有超过的,将该等分包作为加急重传包,并进入“加急重传等分包的步骤”;
剩余的等分包都没有超过发送时间阈值,则进入“常规发送等分包的步骤”;
常规发送等分包的步骤:用于等分包发送装置将常规发送队列中排在最前面的等分包放入与空闲TCP链路所对应的传输处理线程中进行传输,并将该等分包从常规发送队列移出放入备份发送队列中;
接收等分包的步骤:用于等分包接收装置的各个传输处理线程接收发送单元传来的等分包,并将这些等分包交予流解析装置处理;
流解析的步骤:流解析装置从等分包接收装置获取等分包之后利用等分包号将其连续化,本步骤包括如下子步骤:
排序的子步骤:将等分包接收装置获取的等分包按照其等分包号从小到大的顺序进行排序;
回传期望包号的子步骤:记录下排序中连续最长的等分包号序列,将连续最长的等分包号序列中最大的等分包号+1作为期望包号回传给发送单元;
等分包拆包的步骤:用于数据拆包装置获取多个等分包号连续并顺序的等分包,去掉等分包头,根据这些等分包中的复合包头所包含的信息将一个或多个等分包恢复成长度不等的视音频复合包;
解复合的步骤:用于解复合装置根据复合包头中的信息将视音频复合包中的视频数据和音频数据分离并输出;
加急重传等分包的步骤:用于重传作为加急重传包的等分包;
具体包括如下子步骤:
选择空闲TCP链路中传输加急重传包代价最小的子步骤:用于加急发送装置判断空闲的TCP链路是否已经传输过该等待加急重传的等分包、哪条空闲的TCP链路中重传该加急重传等分包代价最小;
重传等分包的子步骤:用于加急发送装置从备份发送队列中提取加急重传包,放入空闲TCP链路中传输加急重传包代价最小的TCP链路,等分包发送装置通过对应的空闲发送处理线程进行重传。
3.根据权利要求2所述的方法,其特征在于,所述的“等分打包的步骤”包括如下子步骤:
视音频复合包分部分的子步骤:用于首先设定一固定值L,其次按照视音频的时间顺序依次取一个视音频复合包,将该视音频复合包的数据大小,亦即长度与L进行比较,如果大于,将该视音频复合包以L进行等分为一个或多个部分,不足L的部分与下一个或多个视音频复合包合并直到补足到L;如果小于,将该视音频复合包与下一个或多个视音频复合包合并直到补足到L;如果等于,不动作;
增加包头信息并打包的子步骤:用于将每部分长度为L的视音频复合包数据增加等分包头,打包为等分包。
4.根据权利要求3所述的方法,其特征在于,所述的“等分包拆包的步骤”包括:
提取等分包的子步骤:用于在连续队列中提取等分包,去掉其等分包头;
分析复合包头的子步骤;用于分析复合头中的信息,得到复合包大小;
拼接视音频复合包的子步骤:用于根据复合包大小,还原视音频复合包。
5.根据权利要求3所述的方法,其特征在于,所述的“解复合的步骤”包括:解复合装置根据复合包头信息确定视音频数据的位置和大小,分离并输出视频数据和音频数据。
CN201410493934.3A 2014-09-24 2014-09-24 一种面向实时应用的视音频数据网络传输系统和方法 Active CN104270684B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410493934.3A CN104270684B (zh) 2014-09-24 2014-09-24 一种面向实时应用的视音频数据网络传输系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410493934.3A CN104270684B (zh) 2014-09-24 2014-09-24 一种面向实时应用的视音频数据网络传输系统和方法

Publications (2)

Publication Number Publication Date
CN104270684A CN104270684A (zh) 2015-01-07
CN104270684B true CN104270684B (zh) 2018-05-11

Family

ID=52162161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410493934.3A Active CN104270684B (zh) 2014-09-24 2014-09-24 一种面向实时应用的视音频数据网络传输系统和方法

Country Status (1)

Country Link
CN (1) CN104270684B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639950A (zh) * 2015-02-06 2015-05-20 北京量子伟业信息技术股份有限公司 基于碎片化技术的影像加工系统及方法
CN106358051B (zh) * 2015-07-14 2019-06-11 安富科技股份有限公司 应用于多媒体同步播放中数据校正的方法
CN105512079B (zh) * 2015-12-12 2018-07-03 中国航空工业集团公司西安航空计算技术研究所 一种1394总线多通道流数据并行组包方法
US20170373881A1 (en) * 2016-06-27 2017-12-28 Qualcomm Incorporated Systems and methods for controlling isochronous data streams
CN108322811A (zh) * 2018-02-26 2018-07-24 宝鸡文理学院 一种钢琴视频教学中的同步方法及系统
CN109842821A (zh) * 2018-12-25 2019-06-04 视联动力信息技术股份有限公司 一种视频数据传输的方法和装置
CN109890053B (zh) * 2019-01-31 2021-06-11 展讯通信(上海)有限公司 数据发送方法、数据发送设备、多链路系统和存储介质
CN110007894B (zh) * 2019-03-29 2021-01-15 百度在线网络技术(北京)有限公司 用于发送音频信息的方法及装置
CN112217842A (zh) * 2019-07-09 2021-01-12 北京声智科技有限公司 一种数据传输方法及装置
CN112636880B (zh) * 2020-12-31 2023-03-24 北京中联合超高清协同技术中心有限公司 侧信道重传高可靠超高清视频卫星传输系统
CN112672223B (zh) * 2020-12-31 2023-06-30 北京中联合超高清协同技术中心有限公司 超高清视频卫星传输高可靠分发方法
CN113726680A (zh) * 2021-08-03 2021-11-30 兰州兰石集团有限公司 一种数据传输方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212671A (zh) * 2007-12-21 2008-07-02 上海广电(集团)有限公司中央研究院 一种低延迟的实时复用传输流的方法
CN101834879A (zh) * 2010-02-09 2010-09-15 北京中科大洋科技发展股份有限公司 一种适应不同网络环境的智能高效视音频数据传输方法
AU2012202123A1 (en) * 2006-03-27 2012-05-03 Vidyo, Inc. System and method for management of scalability information in scalable video and audio coding systems using control messages
CN103533450A (zh) * 2013-06-09 2014-01-22 浙江宇视科技有限公司 一种媒体流可靠传输和接收的方法以及装置
CN103686446A (zh) * 2013-12-06 2014-03-26 广州华多网络科技有限公司 视频数据传输的丢包重传方法和系统
CN103929681A (zh) * 2014-04-09 2014-07-16 安徽超远信息技术有限公司 一种提升低速网络中rtp视频流处理效率的方法
CN104053014A (zh) * 2013-03-13 2014-09-17 腾讯科技(北京)有限公司 一种基于移动终端的直播系统、方法和移动终端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2012202123A1 (en) * 2006-03-27 2012-05-03 Vidyo, Inc. System and method for management of scalability information in scalable video and audio coding systems using control messages
CN101212671A (zh) * 2007-12-21 2008-07-02 上海广电(集团)有限公司中央研究院 一种低延迟的实时复用传输流的方法
CN101834879A (zh) * 2010-02-09 2010-09-15 北京中科大洋科技发展股份有限公司 一种适应不同网络环境的智能高效视音频数据传输方法
CN104053014A (zh) * 2013-03-13 2014-09-17 腾讯科技(北京)有限公司 一种基于移动终端的直播系统、方法和移动终端
CN103533450A (zh) * 2013-06-09 2014-01-22 浙江宇视科技有限公司 一种媒体流可靠传输和接收的方法以及装置
CN103686446A (zh) * 2013-12-06 2014-03-26 广州华多网络科技有限公司 视频数据传输的丢包重传方法和系统
CN103929681A (zh) * 2014-04-09 2014-07-16 安徽超远信息技术有限公司 一种提升低速网络中rtp视频流处理效率的方法

Also Published As

Publication number Publication date
CN104270684A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN104270684B (zh) 一种面向实时应用的视音频数据网络传输系统和方法
US8078744B2 (en) Communication method and apparatus using hypertext transfer protocol
CN103338386B (zh) 基于简化时间戳的音视频同步方法
CN101267293B (zh) 基于分层模型的流媒体隐蔽通信方法
CN103634610B (zh) 直播内容分发系统及方法
CN103929681B (zh) 一种提升低速网络中rtp视频流处理效率的方法
CN101552660B (zh) 对流媒体数据进行重传、播放的方法、装置及通信系统
EP2587860B1 (en) Feedback method and device for header compression feedback information
CN101174995B (zh) 一种多媒体服务性能监测的方法和系统
US20170034589A1 (en) Adaptive profile switching system and method for media streaming over ip networks
KR20160030133A (ko) 실시간 전송 프로토콜 기반의 방송 시스템에서 미디어 방송 신호의 송수신 방법 및 장치
CN101854286B (zh) 基于用户数据报协议的数据流发送、接收方法及装置
KR20150067348A (ko) 미디어 데이터 전달 제어를 위한 방법 및 장치
CN109587551A (zh) 一种流媒体直播卡顿的判断方法、装置、设备及存储介质
CN109347815A (zh) 用于在混合网络中传送多媒体数据的装置和方法
US9369743B2 (en) Method and apparatus for transmitting and receiving broadcasting data by using MMT in digital broadcasting system
CN110113662B (zh) 一种适应多种网络状况的视频监控客户端系统
CN103532923B (zh) 一种实时媒体流传输方法及系统
CN114640886B (zh) 自适应带宽的音视频传输方法、装置、计算机设备及介质
CN106131710A (zh) 一种视频数据重传的方法及其系统
CN108769735A (zh) 一种网络传输的数据压缩中优化Spice方法
CN107295364A (zh) 用于弹幕视频的实时流传输控制方法、控制装置
CN102325275A (zh) 一种流媒体播放的丢包方法、装置及服务器
CN111193966A (zh) 音频数据传输方法、装置、计算机设备及存储介质
US20090219919A1 (en) Data transport container for transferring data in a high speed internet protocol network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant