一种音视频转发控制方法及系统的制作方法

文档序号:7995866阅读:210来源:国知局
一种音视频转发控制方法及系统的制作方法
【专利摘要】本发明提供一种音视频转发控制方法及系统,所述方法包括:发送端发送RTP包,并在发送设定数量的RTP包后,根据当前发送RTP包的数量生成SR包并发送;接收端接收所述RTP包和SR包,并在接收到所述SR包后,统计当前接收到的RTP包数量,根据所述SR包中携带的当前发送RTP包的数量,计算丢包率并生成RR包返回给所述发送端;所述发送端接收到所述RR包,获取所述丢包率;根据所述丢包率调整发送RTP包的速率。与现有技术相比,本发明能够对音视频数据传输的速率根据网络拥塞状态进行动态的调整控制。
【专利说明】一种音视频转发控制方法及系统
【技术领域】
[0001]本发明涉及多媒体网络传输【技术领域】,尤其涉及一种音视频转发控制方法及系统。
【背景技术】
[0002]近年来,随着因特网和多媒体技术的迅速发展,具有较好实时性和交互性的网络视频会议得到了广泛应用。然而目前使用的视频会议多采用TCP/IP协议来传输实时音视频数据,实时效果较差且服务器与服务器之间不能进行级联。
[0003]传统的TCP/IP协议由于采用面向连接的重传机制,已不能满足多媒体视频数据的实时传输,而其拥塞机制容易造成网络拥塞,不利于大数据量的多媒体音视频数据传输。UDP协议虽然对传输的数据采用尽量交付的方式,但它没有提供拥塞控制。
[0004]实时传输协议RTP(Real-time Transport Protocol)是专门为多媒体数据的实时传输而设计的。其配套的传输控制协议RTCP为RTP的传输提供控制功能,在实时的多媒体会议得到了广泛应用。
[0005]RTP提供端对端的网络传输功能,被定义为一对一或一对多的情况下工作。RTP提供时间戳信息以实现同步,适用于点播和组播的方式传输实时数据。RTP通常使用UDP进行数据传输,也可工作在TCP或ATM等协议之上。RTP本身不提供流量控制和拥塞控制,它依靠RTCP提供这些服务。
[0006]实时传输控制协议RTCP(Real-time Transport Control Protocol)为 RTP提供传输控制功能。在RTP会话期间,各会话参与者定期发送RTCP包反馈统计信息如发包数、丢包数、时延等,发送方据此调节发送速率。RTP和RTCP配合使用,提供数据实时传输和Qos服务来满足网络音视频数据的实时传输、时延和丢包要求。
[0007]RTCP控制包五种类型:
[0008]发送包报告包SR(Serder Report):当前发送方发送的统计信息。
[0009]接收方报告包RR(Receive Report):接收方所作的接收统计信息。
[0010]源描述项包SDES(Sender Descr iption):描述与会话源相关的统计信息。
[0011]应用包APP (Application):开发新的应用。
[0012]离开包BYE:离开会话时的报告包。
[0013]现有的基于常数增长和常数减少的流量控制算法来进行流量控制会出现如果两个增加和减小常数设定得太大,RTP流的抖动会很大,加剧网络的拥塞及如果设的太小,RTP流的速度增加就会太太慢或减小的太快,不利于网络带宽利用率的提高的问题。
[0014]现有技术中,使用TCP重传机制容易造成网络拥塞、而UDP的尽量交付传输方式虽然避免了重传机制,但由于其不提供拥塞机制,无法根据网络状况进行调整。现有技术中亟需一种能够对音视频数据传输的速率根据网络拥塞状态进行动态的调整控制的方法。

【发明内容】
[0015]本发明的目的在于克服现有技术的缺点和不足,提供一种音视频转发控制方法及系统。
[0016]一种音视频转发控制方法,所述方法包括:
[0017]发送端发送RTP包,并在发送设定数量的RTP包后,根据当前发送RTP包的数量生成SR包并发送;
[0018]接收端接收所述RTP包和SR包,并在接收到所述SR包后,统计当前接收到的RTP包数量,根据所述SR包中携带的当前发送RTP包的数量,计算丢包率并生成RR包返回给所述发送端;
[0019]所述发送端接收到所述RR包,获取所述丢包率;根据所述丢包率调整发送RTP包的速率。
[0020]另一方面,本发明还提供了一种音视频转发控制系统,该系统包括发送端和接收端,其中,
[0021]所述发送端,用于发送RTP包,并在发送设定数量的RTP包后,根据当前发送RTP包的数量生成SR包并发送;接收到所述RR包,获取所述丢包率;根据所述丢包率调整发送RTP包的速率;
[0022]所述接收端,用于接收所述RTP包和SR包,并在接收到所述SR包后,统计当前接收到的RTP包数量,根据所述SR包中携带的当前发送RTP包的数量,计算丢包率并生成RR包返回给所述发送端。
[0023]本发明通过根据丢包率动态调整发送端RTP包发送速率来控制网络拥塞,与现有技术相比,解决了相比使用TCP的重传机制造成的网络拥塞的问题及相比使用UDP的尽量到达机制造成的网络拥塞无法控制的问题。同时,本发明实施例使用变常数增长和变常数减少的方法来进行流量控制,在一定程度上避免了如果两个常数AR和a设定得太大,RTP流的抖动会很大,加剧网络的拥塞及如果设的太小,RTP流的速度增加就会太太慢或减小的太快,不利于网络带宽利用率的提高的问题。进一步的,本发明实施例同时在多个服务器级联的情况下同样可以动态调整音视频数据在服务器与客户端、服务器与服务器之间的传输速率,增强了网络自适应性。
【专利附图】

【附图说明】
[0024]图1为本发明实施例1提供的音视频转发控制方法原理流程图;
[0025]图2为本发明实施例2提供的音视频转发控制系统结构示意图;
[0026]图3为本发明实施例3提供的音视频转发控制系统中发送端结构示意图;
[0027]图4为本发明实施例4提供的发送端中发送速率控制单元35结构示意图;
[0028]图5为本发明实施例5提供的接收端结构示意图。
【具体实施方式】
[0029]下面结合附图对本发明的【具体实施方式】进行详细描述。但本发明的实施方式不限于此。
[0030]本发明方法实施例原理为利用多个服务器级联使用RTP/RTCP协议,根据RTCP的动态反馈可以各个服务器之间及服务器与客户之间动态的进行传输速率的调整。服务器端接收从源客户端或源服务器发送过来的实时视频数据RTP包或RTCP包,然后对数据包进行分析,如果是RTP包则直接转发到目标客户端或者目标服务器;如果是SR包则计算RTP数据包接收量,同时根据接收的源客户端或源服务器的SR统计包,统计接收的丢包率、时延、抖动等信息以构造接收方统计包RR,向源客户端或源服务器反馈网络状况。
[0031]为方便对本发明技术方案的理解,以下以本发明技术方案在多个服务器级联情况下的实现为例,具体说明本发明技术方案在该频段内的实现方式。然而,服务器级联并不构成本发明实现的限制条件,本发明的实现并非必然局限在服务器级联的状况下,相应的,本发明所指的发送端可以是级联服务器的上级服务器或者源服务器、源终端,接收端可以是级联服务器的下级服务器或者终端。本发明无意对技术方案实现时所采用的具体的级联方式或者与此相关的具体设备进行限制。同理,本发明技术方案并不限制于音视频文件的转发控制,实际上,只要是可以应用RTP协议而需要进行由于网络拥塞而进行流量控制的情况,均可以适用本发明各个实施例所提供的技术方案。
[0032]如图1所示,为本发明实施例1提供的音视频转发控制方法原理流程图,具体如下:
[0033]步骤10,发送端发送RTP包,并在发送设定数量的RTP包后,根据当前发送RTP包的数量生成SR包并发送。
[0034]本发明实施例是基于RTP/RTCP协议框架下的,因而,本发明实施例中的发送端与接收端建立有基于RTP、RTCP协议的通信与联系方式。发送端需要将RTP包数据发送给接收端,并在发送了一定数量的RTP包后,根据当前已经发送的RTP包的数量构造SR包,并将SR包也发送给接收端。这里的SR包中至少包含在此之前发送RTP包的数量,这个数量可以通过每个RTP包头的序列号计算。
[0035]步骤20,接收端接收RTP包和SR包,并在接收到SR包后,统计当前接收到的RTP包数量,根据SR包中携带的当前发送RTP包的数量,计算丢包率并生成RR包返回给发送端。
[0036]一般的,接收端从发送端接收数据,并在接收数据后,判断接收的是RTP包或者SR包。如果接收的是RTP包,则直接转发给下级的服务器或者终端,否则,如果接收的是SR包,则需要统计在此之前一共接收到的RTP包的数量。对于RTP包接收数量的统计,可以设置一个计数器来进行。
[0037]由于发送端发送的SR包中包含有同一个时段内发送端发送RTP包的数量,因而,接收端可以根据SR包中携带的发送RTP包的数量和自行统计的接收RTP包的数量计算丢包率curP,具体为curP =丢失的包数/实际发送的包数,而丢失的包数=发送的包数_接收的包数。
[0038]得到丢包率curP后,可以根据curP构建RR包,其中携带curP信息,并将RR包返回给发送端。
[0039]步骤30,发送端接收到RR包,获取丢包率;根据丢包率调整发送RTP包的速率。
[0040]发送端接收到RR包后,获取其中携带的丢包率curP信息,并根据丢包率curP信息来调整RTP包的发送速率,也就是根据之前丢包率来调整之后发送数据的速率,从而实现对于数据发送的动态控制。
[0041]具体的控制方法可以如下:[0042]设定丢包率的门限值P;
[0043]丢包率< P时,提高发送RTP包的速率;否则,降低发送RTP包的速率。
[0044]特别的,本发明实施例提供了一种变常数增长和变常数减少的方法动态调整发送端的发送速率,具体如下:
[0045]设定当前发送速率CurRate,初始发送速率InitRate,最小发送速率MinRatednitRate > MinRate),最大速率为MaxRate,速率增加值AR,递减因子a(0 < a
<I),上次的丢包率为IastP且初始值为零。
[0046]发送端发送RTP数据包,发送速率CurRate = InitRate ;发送端每发送N个包向接收端发送SR报告包;接收端接收RTP包后周期性进行数据包统计,将统计丢包率打包到RR包中发送给发送端;发送端从接收到的RR获取丢包率信息,据此判断网络状态调整发送速率:
[0047]当curP < P 且(curP-lastP) ^ O 时,有
[0048]CurRate = min ((CurRate+AR*Abs (curP-lastP)), MaxRate);
[0049]当curP < P 且(curP-lastP) > O 时,有
[0050]CurRate = max ((CurRate-AR), MinRate);
[0051]当curP > P 且(curP-lastP) > O 时,有
[0052]CurRate = max ((CurRate*a/ (curP-lastP)), MinRate);
[0053]当curP > P 且(curP-lastP) ^ O 时,有
[0054]CurRate = max ((CurRate^a), MinRate)。
[0055]据此,可以准确的根据网络状态动态调整发送速率,通过使用变常数增长和变常数减少的方法来进行流量控制,在一定程度上避免了如果两个常数AR和a设定得太大,RTP流的抖动会很大,加剧网络的拥塞及如果设的太小,RTP流的速度增加就会太太慢或减小的太快,不利于网络带宽利用率的提高的问题。
[0056]实际上,接收端接收从发送端发送过来的实时视频数据RTP包或RTCP包(注:此处为SR包即Sender R印ort),然后对数据包进行分析,如果是RTP包则直接转发到目标客户端或者目标服务器;如果是SR包则计算RTP数据包接收量,同时根据接收的源客户端或源服务器的SR统计包,统计接收的丢包率、时延、抖动等信息以构造接收方统计包RR,向发送端反馈网络状况。
[0057]发送端在向接收端发送RTP数据包之后,构造发送端报告包SR,统计自己的发送情况以通知接收端。发送端接收到接收端反馈的RR统计包,根据反馈信息调整发送RTP包的速率,以避免网络拥塞。一旦发生网络拥塞,数据的传输速率将受到严重影响,导致图像质量急剧下降,延时很大,图像的实时性就难以保证。因而,系统中的流量控制比较重要。
[0058]采用类TCP的拥塞控制方法,根据网络的拥塞情况进行流量控制。判断网络拥塞的主要参数有丢包率和时延。它们通过统计信息包SR和RR求得。基于时延的拥塞控制,在与TCP竞争进会丢失一部分带宽,本发明实施例采用基于丢包率的拥塞控制。
[0059]当前丢包率curP=丢失的包数/实际发送的包数;实际发送的包数可通过RTP包头的序列号字段计算,丢失的包数为实际发送的包数减去实际接收的包数。实际接收的包数可在接收端设置计数器进行统计。设置丢包率的门限值为P,当前丢包率curP < P时,网络状态为负载可提高数据传输速率;当网络状态进入拥塞,就降低传输速率。[0060]如图2所示,为本发明实施例2提供的音视频转发控制系统结构示意图,该系统包括发送端和接收端,具体如下:
[0061]发送端,用于发送RTP包,并在发送设定数量的RTP包后,根据当前发送RTP包的数量生成SR包并发送;接收到RR包,获取丢包率;根据丢包率调整发送RTP包的速率;
[0062]接收端,用于接收RTP包和SR包,并在接收到SR包后,统计当前接收到的RTP包数量,根据SR包中携带的当前发送RTP包的数量,计算丢包率并生成RR包返回给发送端。
[0063]这里的发送端可以是源客户端或源服务器,接收端可以是目标客户端或者目标服务器。
[0064]如图3所示,为本发明实施例3提供的音视频转发控制系统中发送端结构示意图,该发送端包括RTP包生成单元31、SR包生成单元32、第一发送单元33、第一接收单元34和发送速率控制单元35,具体如下:
[0065]RTP包生成单元31,用于生成RTP包;
[0066]SR包生成单元32,用于根据当前发送RTP包的数量生成SR包;
[0067]第一发送单兀33,用于发送RTP包和SR包;
[0068]第一接收单元34,用于接收接收端发送的RR包;
[0069]发送速率控制单元35,用于根据RR包中携带的丢包率调整控制发送RTP包的速率。
[0070]如图4所示,为本发明实施例4提供的发送端中发送速率控制单元35结构示意图,该发送速率控制单元35进一步包括参数设定子单元351、速率计算子单元352和控制子单元353,具体如下:
[0071]参数设定子单元351,用于设定丢包率的门限值P,最小发送RTP包的速率MinRate,最大发送RTP包的速率MaxRate,速率增加值AR,递减因子a,其中,O < a < I ;
[0072]速率计算子单元352,用于根据设定参数与获取的丢包率,计算当前发送RTP包的速率;
[0073]控制子单元353,用于根据速率计算子单元352计算得到的当前发送RTP包的速率,控制第一发送单元33的发送速率。
[0074]如图5所示,为本发明实施例5提供的接收端结构示意图,该接收端包括第二接收单元51、统计单元52、丢包率计算单元53、RR包生成单元54和第二发送单元55,具体如下:
[0075]第二接收单元51,用于接收所述RTP包和SR包;
[0076]统计单元52,用于统计接收到RTP包的数量;
[0077]丢包率计算单元53,用于根据SR包中携带的当前发送RTP包的数量和当前接收到的RTP包的数量,计算丢包率;
[0078]RR包生成单元54,用于根据丢包率生成RR包;
[0079]第二发送单元55,用于将RR包发送给所述发送端。
[0080]上述各个实施例中,发送端和接收端可以是级联的服务器的上下两级服务器,发送端也可以是源客户端或源服务器,接收端也可以是目标客户端或者目标服务器。
[0081]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【权利要求】
1.一种音视频转发控制方法,其特征在于,所述方法包括: 发送端发送RTP包,并在发送设定数量的RTP包后,根据当前发送RTP包的数量生成SR包并发送; 接收端接收所述RTP包和SR包,并在接收到所述SR包后,统计当前接收到的RTP包数量,根据所述SR包中携带的当前发送RTP包的数量,计算丢包率并生成RR包返回给所述发送端; 所述发送端接收到所述RR包,获取所述丢包率;根据所述丢包率调整发送RTP包的速率。
2.如权利要求1所述的方法,其特征在于,所述接收端接收到所述RTP包和SR包后,判断所接收的是否为RTP包,如果是,则转发所述RTP包;否则,继续后续操作。
3.如权利要求1所述的方法,其特征在于,所述计算丢包率,包括: 丢包率=丢失的RTP包数/实际发送的RTP包数; 丢失的RTP包数=实际发送的RTP包数-实际接收的RTP包数。
4.如权利要求1所述的方法,其特征在于,所述根据所述丢包率调整发送RTP包的速率,包括: 设定丢包率的门限值P ; 丢包率< P时,提高发送RTP包的速率;否则,降低发送RTP包的速率。
5.如权利要求1或4所述的方法,其特征在于,所述根据所述丢包率调整发送RTP包的速率,还包括: 设定当前发送RTP包的速率CurRate,初始发送RTP包的速率InitRate,最小发送RTP包的速率MinRate,最大发送RTP包的速率MaxRate,速率增加值AR,递减因子a,其中,O < a<I,上次的丢包率为IastP且初始值为零,丢包率curP,丢包率的门限值P ; 发送端初始发送RTP包速率CurRate = InitRate ; 当curP≤P且(curP-lastP)≤O时,设定当前发送RTP包的速率 CurRate = min((CurRate+AR*Abs(curP-lastP)), MaxRate); 当curP≤P且(curP-lastP) > O时,设定当前发送RTP包的速率 CurRate = max ((CurRate-AR), MinRate); 当curP > P且(curP-lastP) > O时,设定当前发送RTP包的速率 CurRate = max ((CurRate*a/(curP-lastP)), MinRate); 当curP > P且(curP-lastP)≤O时,设定当前发送RTP包的速率 CurRate = max ((CurRate*a), MinRate)。
6.一种音视频转发控制系统,其特征在于,该系统包括发送端和接收端,其中, 所述发送端,用于发送RTP包,并在发送设定数量的RTP包后,根据当前发送RTP包的数量生成SR包并发送;接收到所述RR包,获取所述丢包率;根据所述丢包率调整发送RTP包的速率; 所述接收端,用于接收所述RTP包和SR包,并在接收到所述SR包后,统计当前接收到的RTP包数量,根据所述SR包中携带的当前发送RTP包的数量,计算丢包率并生成RR包返回给所述发送端。
7.如权利要求6所述的系统,其特征在于,所述发送端包括RTP包生成单元、SR包生成单元、第一发送单元、第一接收单元和发送速率控制单元,其中, 所述RTP包生成单元,用于生成RTP包; 所述SR包生成单元,用于根据当前发送RTP包的数量生成SR包; 所述第一发送单元,用于发送所述RTP包和SR包; 所述第一接收单元,用于接收所述接收端发送的RR包; 所述发送速率控制单元,用于根据所述RR包中携带的丢包率调整控制发送RTP包的速率。
8.如权利要求7所述的方法,其特征在于,所述发送速率控制单元进一步包括参数设定子单元、速率计算子单元和控制子单元,其中, 所述参数设定子单元,用于设定丢包率的门限值P,最小发送RTP包的速率MinRate,最大发送RTP包的速率MaxRate,速率增加值AR,递减因子a,其中,O ≤a ≤1 ; 所述速率计算子单元,用于根据设定参数与获取的丢包率,计算当前发送RTP包的速率; 所述控制子单元,用于根据所述速率计算子单元计算得到的当前发送RTP包的速率,控制所述第一发送单元的发送速率。
9.如权利要求6所述的系统,其特征在于,所述接收端包括第二接收单元、统计单元、丢包率计算单元、RR包生成单元和第二发送单元,其中, 所述第二接收单元,用于接收所述RTP包和SR包; 所述统计单元,用于统计接收到所述RTP包的数量; 所述丢包率计算单元,用于根据所述SR包中携带的当前发送RTP包的数量和当前接收到的RTP包的数量,计算丢包率; 所述RR包生成单元,用于根据所述丢包率生成RR包; 所述第二发送单元,用于将所述RR包发送给所述发送端。
10.如权利要求6所述的系统,其特征在于,所述发送端和接收端为级联的服务器中的上下两级。
【文档编号】H04L12/811GK103944834SQ201310025677
【公开日】2014年7月23日 申请日期:2013年1月22日 优先权日:2013年1月22日
【发明者】白青松 申请人:北京随锐科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1