发明内容
本发明提供了一种应用于视频监控系统的数据传输方法及设备,用以提高数据传输链路的吞吐量。
本发明提供的数据传输方法,应用于视频监控系统,该方法包括:
视频监控业务的媒体流发送端在接收到视频管理服务器发送的传输媒体流给媒体流接收端的通知后,与媒体流接收端建立TCP连接,并在TCP连接建立过程中获取与媒体流接收端之间的往返时延RTT;
所述媒体流发送端向所述视频管理服务器发送TCP连接数量获取请求,其中携带有所述RTT,并接收所述视频管理服务器根据TCP滑动窗口大小和所述RTT以及视频监控业务的带宽需求,确定并返回的传输所述视频监控业务的媒体流所需的TCP连接数量;
所述媒体流发送端根据所述视频管理服务器返回的所述TCP连接数量,与媒体流接收端建立相应数量的TCP连接;
所述媒体流发送端分别通过所述相应数量的TCP连接,向所述媒体流接收端发送媒体流。
本发明提供的视频编码器,应用于视频监控系统,包括编码模块,还包括:控制模块、连接处理模块、连接数量获取模块、传输模块,其中:
控制模块,用于根据视频管理服务器发送的传输媒体流给媒体流接收端的通知,指示所述连接处理模块建立与所述媒体流接收端之间的TCP连接,根据所述连接处理模块获取到的RTT,指示所述连接数量获取模块获取视频监控业务的媒体流所需的TCL连接数量,在所述连接数量获取模块获取到连接数量后,指示所述连接处理模块与所述媒体流接收端建立相应数量的TCP连接;
连接处理模块,用于根据所述控制模块的指示,建立与所述媒体流接收端之间的TCP连接,并在TCP连接建立过程中获取与所述媒体流接收端之间的RTT;
连接数量获取模块,用于根据所述控制模块的指示向所述视频管理服务器发送获取TCP连接数量的请求,其中携带有获取到的RTT,并接收所述视频管理服务器根据TCP滑动窗口大小和所述RTT以及视频监控业务的带宽需求,确定并返回的传输所述视频监控业务的媒体流所需的TCP连接数量;
传输模块,用于分别通过所述相应数量的TCP连接,向所述媒体流接收端发送所述编码模块编码后的媒体流;
其中,所述媒体流接收端包括视频客户端或媒体交换服务器。
本发明提供的媒体交换服务器,应用于视频监控系统,包括:控制模块、连接处理模块、连接数量获取模块、第一传输模块、第二传输模块,其中:
控制模块,用于根据视频管理服务器发送的传输媒体流给视频客户端的通知,指示所述连接处理模块建立与视频客户端之间的TCP连接,根据所述连接处理模块获取到的RTT,指示所述连接数量获取模块获取视频监控业务的媒体流所需的TCL连接数量,在所述连接数量获取模块获取到连接数量后,指示所述连接处理模块与所述视频客户端建立相应数量的TCP连接;
连接处理模块,用于根据所述控制模块的指示,建立与视频客户端之间的TCP连接,并在TCP连接建立过程中获取与所述视频监控客户端之间的RTT;以及,与视频编码器之间建立TCP连接,其中与所述视频编码器之间的TCP连接是所述视频管理服务器根据所述媒体交换服务器与所述视频编码器之间的RTT和TCP滑动窗口大小确定出传输媒体流所需的TCP连接数量后指示所述视频编码器建立的相应数量的TCP连接;
连接数量获取模块,用于根据所述控制模块的指示向所述视频管理服务器发送TCP连接数量的请求,其中携带有获取到的RTT,并接收所述视频管理服务器根据TCP滑动窗口大小和所述RTT以及视频监控业务的带宽需求,确定并返回的传输所述视频监控业务的媒体流所需的TCP连接数量;
第一传输模块,用于分别通过与所述视频编码器之间的TCP连接接收媒体流;
第二传输模块,用于分别通过与所述视频客户端之间的TCP连接转发所述第一传输模块接收到的媒体流给所述视频客户端。
本发明提供的视频管理服务器,应用于视频监控系统,包括:业务处理模块、通知模块、连接数量请求处理模块,其中:
业务处理模块,用于在接收到视频客户端建立视频监控业务的请求后,指示所述通知模块通知媒体流发送端传输媒体流,指示媒体流接收端接收媒体流;
通知模块,用于根据所述业务处理模块的指示,通知媒体流发送端将媒体流发送给媒体流接收端;
连接数量请求处理模块,用于接收媒体流发送端在根据接收到的通知建立与媒体流接收端的TCP连接后发送的获取TCP连接数量的请求,根据TCP滑动窗口大小和所述获取TCP连接数量的请求中携带的RTT,确定能够满足视频监控业务的媒体流带宽需求的TCP连接数量,并返回响应,其中携带确定出的TCP连接数量,以使媒体流发送端与媒体流接收端建立相应数量的TCP连接;
其中,对于无需媒体交换服务器转发媒体流的视频监控业务,所述媒体流发送端为视频编码器,所述媒体流接收端为视频客户端;对于需要媒体交换服务器转发媒体流的视频监控业务,所述媒体流发送端包括视频编码器和媒体交换服务器,所述视频编码器发送的媒体流的接收端为媒体交换服务器,所述媒体交换服务器发送的媒体流的接收端为视频客户端。
与现有技术相比,本发明具有以下有益技术效果:
本发明实施例根据设备间的TCP滑动窗口大小及RTT值,以及视频监控业务的带宽需求,计算能够满足该需求的TCP连接数量,并建立相应数量的TCP连接,从而让视频监控业务的媒体流分别经不同的TCP连接传输,提高了媒体流传输的吞吐量。
具体实施方式
本发明实施例所适用的视频监控系统可如图1所示,主要由以下基本单元构成:EC、VM、DC、VC,DM、MS、IPSAN,以及相应的软件管理系统及网络传输设备。其中:
EC:位于监控系统前端,可以将模拟音视频信号按照指定格式、指定码率进行编码,可以单播或组播给DC设备和客户端点播,以及存储到IPSAN中;
DC:可将系统中的音视频编码信号还原成模拟的视频音频信号并输出;
VM:是监控系统中的视频管理服务器,可以集中管理控制监控系统所有设备,调度各种视频监控业务;
MS:在单播网络环境下,该服务器可以提供单播音媒体流的复制分发;
DM:可对存储单元进行统一的资源管理和配置和故障检测;
IPSAN:用于对视频数据进行存储;
VC:可以通过该设备进行实况视频监控。
基于上述视频监控系统,本发明实施例根据设备间的TCP滑动窗口大小及测试所得的RTT值计算视频监控网络的吞吐量,然后对比视频监控业务所需要用到的实际网络带宽,让该视频监控业务的媒体流发送端和接收端之间建立多条TCP连接,并让视频监控业务的媒体流分别经不同的TCP连接传输,从而提高媒体流的带宽。
在具体实施时,媒体流发送端与接收端之间建立一条TCP连接,并在SYN(Synchronize,同步)报文的选项中携带本机时间,流量接收者在回应ACK(确认)报文的时候将该选项值返回给发送端,这样流量发送端可根据该值计算出网络RTT值。流量发送端将该RTT值及滑动窗口值Wr发给VM。VM根据RTT和Wr以及视频监控业务流量的码率,计算出需要建立的TCP连接数,并通知流量发送端建立相应数量的TCP连接来传输该视频监控业务的媒体流。
对于视频监控系统,媒体流的转发路径包括两种情况:一种是媒体流从EC发送给视频客户端,如图2所示;另一种是媒体流从EC发送给MS,再从MS转发给视频客户端,如图3所示。
下面结合具体实施例,以上述两种媒体流传输路径为例,对本发明进行详细描述。
实施例一
本实施例描述了无需MS转发的媒体流传输流程。
视频客户端需要查看某EC通道的图像,即需要建立与某EC之间的视频监控业务时,会向VM发送请求。VM收到该请求后,通知相应EC发送媒体流给该视频客户端,并通知该视频客户端接收该媒体流。EC使用TCP封装发送媒体流给视频客户端前,需要首先与其建立TCP的连接,然后通过TCP的连接向视频客户端传输媒体流。其TCP连接的建立过程,以及通过建立的TCP连接传输媒体流的过程,可如图3所示,包括:
步骤401,EC在接收到VM发送的传输媒体流给视频客户端的通知后,与该视频客户端建立TCP连接,并在TCP连接建立过程中检测出与该视频客户端之间的RTT。
具体的,EC在与视频客户端之间建立TCP连接时,EC首先发送SYN报文,其中携带有该EC本地的时间戳,如可放置在报文的option选项字段;视频客户端收到该SYN报文后,将该时间戳(即SYN报文中携带的时间戳)携带于ACK报文,如携带于option选项字段,并返回该ACK报文给EC;EC接收到该ACK报文后向该视频客户端返回ACK报文,这样EC和视频客户端之间建立起TCP连接。其中,在EC接收到视频客户端返回的ACK报文后,通过将该报文中携带的时间戳与本地当前的时间进行比较,得到该EC与该视频客户端之间的RTT,该RRT即为本地当前时间与ACK报文中携带的时间戳之间的差值。
步骤402,EC向VM发送获取TCP连接数量的请求,其中携带有检测出的RTT。
步骤403,VM根据TCP滑动窗口大小、接收到的RTT,以及该视频客户端与EC之间建立的视频监控业务的带宽,计算该视频监控业务的媒体流所需的TCP连接数量,并将计算出的TCP连接数量携带于响应消息中返回给EC。
TCP在进行数据传输时使用了滑动窗口机制。TCP滑动窗口用来暂存数据收发设备间要传送的数据分组。每台运行TCP协议的设备有两个滑动窗口:一个用于数据发送,另一个用于数据接收。发送端待发数据分组在缓冲区排队等待送出。被滑动窗口框入的分组,是可以在未收到接收确认的情况下最多送出的部分。此处的TCP滑动窗口是指视频客户端用于TCP报文接收的窗口,其窗口大小通常在视频客户端注册时注册到VM中。
具体的,VM根据前述公式(1)进行网络TCP流量吞吐带宽计算,得到一个TCP连接的网络吞吐量,然后在结合视频监控业务的媒体流总的带宽需求,得到该视频监控业务所需的TCP连接数量。譬如,RTT值为200ms,TCP滑动窗口值Wr为65535,则一个TCP连接的网络吞吐量为:
V=W*8/Tr=65535*8/200=2.6214M bit/s
如果视频监控业务的媒体流的码流带宽为6M,使用6除以2.6214等于2.29,则表示至少需要建立3个TCP的连接来发送该视频监控业务的媒体流。然后VM通知EC与视频客户端建立3个TCP的连接来传输媒体流。
考虑到视频客户端用于TCP报文接收的窗口通常能够与EC用于TCP报文发送的窗口大小匹配或者能够满足视频客户端接收窗口的要求,因此VM可以无需参考EC的发送窗口大小。但是在有视频客户端支持其它的接收窗口大小的情况下,VM可参考EC的发送窗口以及视频客户端的接收窗口,选择其中较小者,作为计算TCP连接数量的依据。通常,EC和视频客户端在向VM注册时,会将自己的TCP滑动窗口大小信息注册到VM中。
进一步的,考虑到EC的TCP滑动窗口值也可能会动态调整,因此,EC可在将检测出的RTT发送给VM时,一同将自己用于发送TCP报文窗口值发送给VM,作为VM计算TCP连接数量的参考依据。
步骤404,EC根据VM返回的TCP连接数量,与该视频客户端建立相应数量的TCP连接。
具体的,如果需要建立3个TCP连接,由于之前已经建立了一个TCP连接(步骤401),此步骤中只要再建2个TCP连接就可以了。
步骤405,EC在向该视频客户端传输媒体流时,分别通过建立起来的各TCP连接传输媒体流。
具体的,EC将每一帧图像进行编码,打包后分别放到各个TCP连接的发送缓存中进行发送,其中,一帧图像的所有数据包放到一个TCP连接的发送缓存中,下一帧图像的所有数据包放到另一个TCP连接的发送缓存中。相应的,接收端接收各个TCP连接发送过来的报文,然后按照顺序进行排序。图5示出了EC进行图像编码打包后分别通过3个TCP连接发送的情况。
为了让接收端能准确的进行数据排序,下面先介绍视频媒体流打包过程,如图6和图7所示:
视频数据通过视频编码器进行编码变成基本流ES,然后由PES打包器按照视频帧的概念进行PES的封装,一帧数据封装为一个PES,一个PES包(PESPacket)由包头(PES Header)和负荷(payload)组成;然后TS复用器对PES数据再进行TS的封装,即将PES包按照188字节为单位分成多个TS包(Transport Packet,传输包)。
如图8所示,每一个TS的头部(Transport Header)包括4字节头前缀,负荷部分包括可变长度的自适应字段和有效载荷。表1示出了TS包各字段的说明。
表1
一个帧被分成多个TS进行发送,而这些TS在网路传输中可能需要多个TCP报文来发送,也就是说接收端收到多个TCP报文中携带的多个TS,然后将这些TS组成一个PES,再解码出来就是1帧的图像。在每一个PES的第一个TS段,其头部的PCR tag不为0,且数据可以用于判断帧间的先后顺序。
本发明实施例中,EC在多个TCP连接中,轮流发送一帧视频数据,也就是1个PES,即,将一个PES对应的所有TS通过一个TCP连接发送,将下一个PES对应的所有TS通过另一个TCP连接发送。如图9所示,EC将PES1包对应的所有PS包通过TCP连接1发送,将PES2包对应的所有PS包通过TCP连接2发送,将PES3包对应的所有PS包通过TCP连接3发送,然后再将将PES4包对应的所有PS包通过TCP连接1发送,以此类推。其中,EC将每一个PES包的尾TS包的Adaptation field extension flag字段置为1,并将Adaptation字段赋值为FF,表示该TS包为一个PES的尾TS,如下所示:
Adaptation field extension flag:1
Adaptation field extension data length:1
Adaptation field extension data:FF
视频客户端在接收媒体流过程中,先将同一个TCP连接上的TS组成一个PES包,方式是先找到第一个TS,该TS的PCR字段为1,然后按照顺序将该TCP上收到的TS依次组合起来,直到收到Adaptation field extension flag字段标记为1、Adaptation field extension data为FF的TS。这样就完成了一个帧的组合,然后将这些帧放入缓存中,再根据PCR数值的大小,判断帧间的顺序,按照顺序分别将接收到的PES进行解码。以前述视频监控业务的媒体流的码流带宽为6M,RTT值为200ms,TCP滑动窗口值Wr为65535为例,通过上述处理,媒体流就可以同时在3个TCP连接上进行传输,总带宽可以达到6.87M,满足6M的码流带宽要求。
需要说明的是,以上流程是以TCT连接1、TCP连接2…TCP连接n的顺序,依次选择TCP连接来传输视频帧为例描述的,本领域技术人员应该能够理解,还可以按照其它顺序来选择TCP连接来传输视频帧,如按照随机顺序选择。
实施例二
本实施例描述了需要MS转发的媒体流传输流程。
视频客户端需要查看某EC通道的图像,即需要建立与某EC之间的视频监控业务时,会向VM发送请求。VM收到该请求后,通知相应EC发流媒体流给MS,通知MS进行该流量的转发,转发给发起请求的视频客户端,并通知该视频客户端接收该流量。EC在向MS发送媒体流,以及MS向视频客户端转发媒体流之前,EC与MS,以及MS与视频客户端之间需要建立TCP连接,以便通过TCP连接传输媒体流。其TCP连接的建立过程,以及通过建立的TCP连接传输媒体流的过程,可如图10所示,包括:
步骤1001,EC在接收到VM发送的传输媒体流给MS的通知后,与MS建立TCP连接,并在TCP连接建立过程中检测出与MS之间的RTT,然后向VM发送获取TCP连接数量的请求,其中携带有检测出的RTT。
具体实现方式同实施例一的步骤401,即,通过TCP SYN报文携带时间戳的方法来获取EC到MS网络的RTT值。
步骤1002,MS在接收到VM发送的转发媒体流给视频客户端的通知后,与该视频客户端建立TCP连接,并在TCP连接建立过程中检测出与该视频客户端之间的RTT,然后向VM发送获取TCP连接数量的请求,其中携带有检测出的RTT。
上述步骤1001和步骤1002的实现方式基本同实施例一的步骤401,即,通过TCP SYN报文携带时间戳的方法来获取本端到对端的RTT值。上述步骤1001和步骤1002在时序上没有严格要求。
步骤1003,VM根据TCP滑动窗口大小、从EC接收到的RTT,以及该视频监控业务的带宽,计算从EC到MS发送该视频监控业务的媒体流所需的TCP连接数量,并将计算出的TCP连接数量返回给EC;VM根据TCP滑动窗口大小、从MS接收到的RTT,以及该视频监控业务的带宽,计算从MS到视频客户端发送该视频监控业务的媒体流所需的TCP连接数量,并将计算出的TCP连接数量返回给MS。
该步骤的具体实现方式可参照实施例一的相应步骤。假设EC到MS的RTT1值为200ms,一个TCP连接最多可达到2.6214M,对于6M的码流需要建立3个TCP连接;MS到视频客户端的RTT2值为100ms,一个TCP连接最多可达到5.2428M,对于6M的码流需要建立2个TCP连接,因此,VM通知EC建立3个到MS的TCP连接,通知MS建立2个到视频客户端的TCP连接。
步骤1004,EC根据VM返回的TCP连接数量,与MS建立相应数量的TCP连接。
步骤1005,MS根据VM返回的TCP连接数量,与视频客户端建立相应数量的TCP连接。
上述步骤1004和步骤1005的具体实现可参考实施例一的相应步骤,且这两个步骤间没有严格的时序要求。
步骤1006,EC分别通过与MS之间的各TCP连接传输媒体流给MS,MS分别通过与视频客户端之间的各TCP连接转发媒体流给视频客户端。
该步骤的具体实现方式可参照实施例一的相应步骤。以前述针对6M的码流,EC与MS之间建立3个TCP连接,MS与视频客户端之间建立2个TCP连接为例,如图11所示,EC通过3个TCP连接传输PES包给MS,MS将接收到的PES包通过2个TCP连接转发给视频客户端,即,以一个PES包为单位,先将PES1通过TCP连接1转发出去,然后将PES2通过TCP连接2转发出去,再将PES3通过TCP连接1转发出去,以此类推。视频客户端根据前述实施例一的方式接收和处理MS转发来的媒体流。
考虑到视频客户端用于TCP报文接收的窗口通常能够与EC用于TCP报文发送的窗口大小匹配或者能够满足视频客户端接收窗口的要求,因此VM可以无需参考EC的发送窗口大小。但是在有视频客户端支持其它的接收窗口大小的情况下,VM可参考EC的发送窗口以及视频客户端的接收窗口,选择其中较小者,作为计算TCP连接数量的依据。通常,EC和视频客户端在向VM注册时,会将自己的TCP滑动窗口大小信息注册到VM中。
进一步的,考虑到EC的TCP滑动窗口值也可能会动态调整,因此,EC可在将检测出的RTT发送给VM时,一同将自己用于发送TCP报文窗口值发送给VM,作为VM计算TCP连接数量的参考依据。
实施例三
本实施例提供了一种可应用于上述视频监控系统和流程的视频编码器。如图12所示,该视频编码器可包括:编码模块1201,还包括:控制模块1203、连接处理模块1205、连接数量获取模块1204、传输模块1202,其中:
控制模块1203,用于根据视频管理服务器发送的传输媒体流给媒体流接收端的通知,指示连接处理模块1205建立与所述媒体流接收端之间的TCP连接,根据所述连接处理模块1205获取到的RTT,指示连接数量获取模块1204获取视频监控业务的媒体流所需的TCL连接数量,在连接数量获取模块1204获取到连接数量后,指示连接处理模块1205与所述媒体流接收端建立相应数量的TCP连接;
连接处理模块1205,用于根据控制模块1203的指示,建立与所述媒体流接收端之间的TCP连接,并在TCP连接建立过程中获取与所述媒体流接收端之间的RTT;
连接数量获取模块1204,用于根据控制模块1203的指示向所述视频管理服务器发送获取TCP连接数量的请求,其中携带有获取到的RTT,并接收所述视频管理服务器根据TCP滑动窗口大小和所述RTT以及视频监控业务的带宽需求,确定并返回的传输所述视频监控业务的媒体流所需的TCP连接数量;
传输模块1202,用于分别通过所述相应数量的TCP连接,向所述媒体流接收端发送编码模块1201编码后的媒体流;
其中,所述媒体流接收端包括视频客户端或媒体交换服务器。例如,在无需媒体交换服务器转发媒体流的视频监控业务中,连接处理模块1205与视频客户端建立TCP连接,传输模块1202将编码后的媒体流发送给该视频客户端;在需要媒体交换服务器转发媒体流的视频监控业务中,连接处理模块1205与媒体交换服务器建立TCP连接,传输模块1202将编码后的媒体流发送给该媒体交换服务器。
具体的,传输模块1202以视频帧为单位,分别通过与所述媒体流接收端之间的各TCP连接发送媒体流,其中,一个视频帧的所有传输TS报文通过一个TCP连接发送。
具体的,传输模块1202顺序发送视频帧,在发送当前视频帧的过程中,以预先确定的轮询顺序从与所述媒体流接收端之间的各TCP连接中选择TCP连接,并通过选择的TCP连接发送当前视频帧的所有TS包。
具体的,传输模块1202具体用于,将视频帧的头TS包的PCR字段置位,将该视频帧的尾TS包中的自适应字段的扩展标志置位,并将该尾TS包中的自适应字段赋值为预设数值,以使所述媒体流接收端接收媒体流的过程中,以PCR字段已置位的TS包开始,按照顺序将从传输该TS包的TCP连接所接收到的TS包依次组合,直到收到自适应字段的扩展标志被置位、自适应字段被赋值为预设数值的TS包为止,得到一个视频帧的所有TS包。
具体的,连接处理模块1205具体用于,向所述媒体流接收端发送SYN报文,其中携带有本地的时间戳;接收所述媒体流接收端返回的响应报文,其中携带有所述本地的时间戳;根据所述响应报文中携带的时间戳和接收所述响应报文时的时间,确定与所述媒体流接收端之间的RTT。
实施例四
本实施例提供了一种可应用于上述视频监控系统和流程的媒体交换服务器,如图1所示,该媒体交换服务器可包括:第一传输模块1301、第二传输模块1302、控制模块1303、连接数量获取模块1304、连接处理模块1305,其中:
控制模块1303,用于根据视频管理服务器发送的传输媒体流给视频客户端的通知,指示连接处理模块1305建立与视频客户端之间的TCP连接,根据连接处理模块1305获取到的RTT,指示连接数量获取模块1304获取视频监控业务的媒体流所需的TCL连接数量,在连接数量获取模块1304获取到连接数量后,指示连接处理模块1305与所述视频客户端建立相应数量的TCP连接;
连接处理模块1305,用于根据控制模块1303的指示,建立与视频客户端之间的TCP连接,并在TCP连接建立过程中获取与所述视频监控客户端之间的RTT;以及,与视频编码器之间建立TCP连接,其中与所述视频编码器之间的TCP连接是所述视频管理服务器根据所述媒体交换服务器与所述视频编码器之间的RTT和TCP滑动窗口大小确定出传输媒体流所需的TCP连接数量后指示所述视频编码器建立的相应数量的TCP连接;
连接数量获取模块1304,用于根据控制模块1303的指示向所述视频管理服务器发送TCP连接数量的请求,其中携带有获取到的RTT,并接收所述视频管理服务器根据TCP滑动窗口大小和所述RTT以及视频监控业务的带宽需求,确定并返回的传输所述视频监控业务的媒体流所需的TCP连接数量;
第一传输模块1301,用于分别通过与所述视频编码器之间的TCP连接接收媒体流;
第二传输模块1302,用于分别通过与所述视频客户端之间的TCP连接转发所述第一传输模块接收到的媒体流给所述视频客户端。
具体的,第二传输模块1302以视频帧为单位,分别通过与所述视频客户端之间的各TCP连接发送媒体流,其中,一个视频帧的所有传输TS报文通过一个TCP连接发送。
具体的,第二传输模块1302顺序发送视频帧,在发送当前视频帧的过程中,以预先确定的轮询顺序从与所述视频客户端之间的各TCP连接中选择TCP连接,并通过选择的TCP连接发送当前视频帧的所有TS包。
具体的,第二传输模块1302将视频帧的头TS包的PCR字段置位,将该视频帧的尾TS包中的自适应字段的扩展标志置位,并将该尾TS包中的自适应字段赋值为预设数值,以使视频客户端接收媒体流的过程中,以PCR字段已置位的TS包开始,按照顺序将从传输该TS包的TCP连接所接收到的TS包依次组合,直到收到自适应字段的扩展标志被置位、自适应字段被赋值为预设数值的TS包为止,得到一个视频帧的所有TS包。
具体的,连接处理模块1305具体用于,向所述视频客户端发送SYN报文,其中携带有本地的时间戳;接收所述视频客户端返回的响应报文,其中携带有所述本地的时间戳;根据所述响应报文中携带的时间戳和接收所述响应报文时的时间,确定与所述视频客户端之间的RTT。
实施例五
本实施例提供了一种可应用于上述视频监控系统和流程的的视频管理服务器,如图14所示,该视频管理服务器可包括:业务处理模块1401、通知模块1402、连接数量请求处理模块1403,其中:
业务处理模块1401,用于在接收到视频客户端建立视频监控业务的请求后,指示通知模块1402通知媒体流发送端传输媒体流,指示通知模块1402通知媒体流接收端接收媒体流;
通知模块1402,用于根据业务处理模块1401的指示,通知媒体流发送端将媒体流发送给媒体流接收端;
连接数量请求处理模块1403,用于接收媒体流发送端在根据接收到的通知建立与媒体流接收端的TCP连接后发送的获取TCP连接数量的请求,根据TCP滑动窗口大小和所述获取TCP连接数量的请求中携带的RTT,确定能够满足视频监控业务的媒体流带宽需求的TCP连接数量,并返回响应,其中携带确定出的TCP连接数量,以使媒体流发送端与媒体流接收端建立相应数量的TCP连接;
其中,对于无需媒体交换服务器转发媒体流的视频监控业务,所述媒体流发送端为视频编码器,所述媒体流接收端为视频客户端;对于需要媒体交换服务器转发媒体流的视频监控业务,所述媒体流发送端包括视频编码器和媒体交换服务器,所述视频编码器发送的媒体流的接收端为媒体交换服务器,所述媒体交换服务器发送的媒体流的接收端为视频客户端。
具体的,连接数量请求处理模块1403具体用于,根据所述媒体接收端的用于接收TCP报文的TCP滑动窗口大小和所述RTT确定TCP连接的码流带宽;根据所述视频监控业务的带宽需求和所述TCP连接的码流带宽,计算能够满足该带宽需求的TCP连接数量。
综上所述,本发明实施例根据设备间的TCP滑动窗口大小及RTT值,以及视频监控业务的带宽需求,计算能够满足该需求的TCP连接数量,并建立相同数量的TCP连接,从而让视频监控业务的媒体流分别经不同的TCP连接传输,从而提高媒体流的带宽。另外,将媒体流的PES包在多条TCP连接上轮流发送,达到了负载分担的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。