- 1 -
中国科技论文在线
基于 sip 协议的智能媒体调度
杨犀,魏洪涛*
作者简介:杨犀(1986-),男,硕士研究生在读,流媒体、视频监控
(武汉理工大学信息工程学院,武汉 430070)
摘要:视频播放中直连方式与平台分发方式。前者简单但连接数较少,视频利用率低;后者
连接数较多,但环节较多稳定性差。为了充分利用其优点而规避缺点,提出一种新型的智能
切换技术,利用 SIP(Session Initiation Protocol)+XML(Extensible Markup Language)
来传递信令消息,使用 MESSAGE 方法,以实现直连与平台分发间的智能切换,做到在不同
的情况下调用不同的链接方式。
关键词:sip;rtp;视频监控;智能调度
中图分类号:
Intelligent Media Scheduling based on Sip protocol
Yang Xi, Wei Hongtao
(Information Engineering, Wuhan University of Technology, WuHan 430070)
Abstract: Video playback system has two connections: direct connection and platform distribution
methods. The former is simple but fewer connections, video utilization is low; the latter are more
connections, but many aspects of poor stability. To take full advantage of their advantages and avoid
disadvantages,it proposed a new type of intelligent switching technology, the use of SIP + XML
(Extensible Markup Language) to pass signaling messages, the use of MESSAGE method to achieve
the direct connection between distributed and intelligent switching platform, so call in different
situations different link mode.
Keywords:sip; rtp; video surveillance; intelligent scheduling
0 引言
数字视频监控系统是一种基于宽带网络为用户提供图像和各种报警信号远程采集、传
输、储存、处理的全新监控系统。这是由前端、中间端、后端组成的网络视频监控系统。前
端由镜头、摄像机、云台(即安装、固定摄像机的支撑设备)、监控软件等组成;中间端即
中心服务平台,进行业务管理,并对传送的图像进行转发、分发或存储,对报警进行联动处
理;在后端用户可在网络的任何一个接入点,只要通过 IE 浏览器或客户端软件,在通过用
户认证后可任意观看视频,可控制摄像机的角度、拉近拉远镜头,并可接收报警信息。
数字视频监控业务中的核心协议为:SIP协议。它是一个应用层的信令控制协议,用于
创建、修改和释放一个或多个参与者的会话。SIP协议在数字视频监控系统中的应用可以通
过使用 SIP+SDP(Session Description Protocol)来建立媒体会话:使用 SIP协议中的 INVITE
媒体请求方法来建立呼叫。使用 SIP+XML 来传递信令消息,使用 MESSAGE 方法,信令
使用 XML 携带。
目前的视频监控系统在视频媒体分发方面处理比较简单,而面对越来越庞大的用户,这
种媒体传送方式将阻碍图像传输的发展,是否具备高效的媒体分发机制也是判断视频监控系
统好坏的一项重要指标。下面将先介绍目前采用的两种媒体分发方式,然后再重点介绍基于
SIP的媒体智能调度的实现原理和设计方案。
- 2 -
中国科技论文在线
1 媒体分发方式
当利用直连方式时,即前端编码设备直接与客户端相连,视频流直接通过前端设备传输
给客户端,省去了中间环节,降低了因中间环节而引起的不稳定因素,节约了带宽资源。但
前端编码设备一个通道视频输出个数一般不能超过 3-5个,这就使得多个用户观看一个前端
编码设备通道时会出现连接受限,大大降低了视频的利用率。
当使用平台分发服务器来转发视频时,在带宽允许的情况下,一个平台分发服务器最多
可以使 1000个左右的客户端浏览该视频,解决了连接受限的问题,使得视频能够充分地得
到利用,在现在实际的工程上,一般是利用平台分发服务器来转发视频流,而当只有 1路客
户端浏览该视频时,利用平台分发服务器来转发视频又会使 ip 干线资源浪费,增加平台分
发服务器负荷,同时由于中间环节的增多,给视频传输增加了额外的不稳定因素。
2 直连与平台分发的智能媒体调度
设计目标
做到 Pu 即前端单元直连与平台分发的自动切换。当 Pu 的通道上只有一个用户申请视
频时,使用直连模式;当有两个或两个以上的用户申请该通道视频时,将原先的直连模式用
户自动切换到平台分发模式,后面的用户也用平台分发模式,无需在网管中设置。当用户关
闭视频,该通道上只有一个用户使用此视频时,自动从平台分发模式切换到直连模式。
设计原理
利用智能调度技术可充分利用直连和平台分发的优点而规避其缺点,做到取长补短。
当只有一路视频信号时,sip代理服务器会选择直连方式让客户端与前端编码设备相连,
直接通过前端设备向用户传输视频流,当有针对该前端设备同一通道的的第二路视频申请到
来时,sip 代理服务器会选择平台分发方式将客户端与前端设备相连,当平台分发方式的视
频通道建立成功后,sip代理服务器会将直连方式建立的视频通道断开。利用 SIP 协议中的
MESSAGE方法,通过 SIP+XML方式发送消息给客户端,通知客户端再次申请视频,当 sip
代理服务器收到客户端订阅该视频通道的请求时,会利用平台分发方式将客户端与平台分发
服务器连接起来。这样就使得前端编码设备该视频通道上输出的视频路数始终为 1,充分利用
平台分发服务器强大的视频转发功能来缓解前端输出设备在视频输出上的压力。当 sip代理
服务器再次收到视频订阅时,就会让平台分发服务器与客户端相连,这样就做到了直连方式
向平台分发方式的切换。
当平台分发服务器上只剩一路视频播放时,sip 代理服务器就会等待一段时间,在这段
时间内如果没有新的针对该前端视频通道的视频申请到来时,sip 代理服务器就会断开客户
端与平台分发服务器的视频连接,并且利用 SIP协议中的MESSAGE方法,通过 SIP+XML
方式发送消息给客户端,通知客户端再次发送针对该通道的视频请求。当 sip代理服务器收
到客户端订阅该视频的请求时,会利用直连方式将前端设备与客户端连接起来,这样就做到
了平台分发方式向直连方式的切换,释放平台分发服务器上的 ip 干线资源,缓解平台分发
服务器的视频处理压力。
具体设计方案
cms_pu 结构体中的 struct sPuChannel channel[MAX_CHANNEL_NUM]成员变量
iConnectDirectCount记录了直连数,sPuChannel结构体的定义如下:
- 3 -
中国科技论文在线
struct sPuChannel{
INT4 iVConnectCount;/*如果只有一台 VTDU,那么该值就只能是 0或 1*/
INT4 iAConnectCount; INT4 iConnectDirectCount;
….
INT4 iVtduConnectCount; INT4 iAlreadySendInvite;
};
在 struct sPuChannel结构体中增加一个成员变量 iVtduConnectCount用于表示 Pu(前
端单元)该通道连接的 vtdu(视频转移分发单元)的数量。通过这两个参数可以判断 Pu通
道上是否存在连接并且知道连接的具体数目。
在申请视频时(直连到平台分发的切换),当这两个参数都为零时,表明 Pu上没有连
接,此时判断 Cu(客户端单元)的连接方式,如果为 TCP就只能用平台分发,为 UDP(用
户数据包协议)则就用直连方式,此时 iConnectDirectCount++。当再次有针对该通道的视频
申请时,此时已有一路直连方式,就应选用平台分发,而为了只保留一路视频与 Pu连接,
则就发送 bye关闭先前建立的直连方式,并且新定义一个消息类型为:
MSGX_RESTART_VIDEO_REQ与MSGX_RESTART_VIDEO_RESP。
分别表示重启视频请求和重启视频响应。发送MSGX_RESTART_VIDEO_REQ消息(该
消息中带有MSG_PU_STATE参数,告知 CU重新启动的 Pu的 Id号与通道号),该消息告
知 Cu要重新发送 INVITE申请给 cms(中心管理服务器,Center Management Server),重
新申请视频连接。这样就可以做到视频从直连切换到平台分发。
在关闭视频时(平台分发到直连的切换),要判断与 Pu 连接的 vtdu,当该 vtdu 的
MediaOutSession的数目为 1,并且MediaOutSession的 RemeoteId不为 VTDU的 Id号时(表
明与 Pu连接的 vtdu只有一路流出的视频信号,并且该信号不是流向外域的,而是流入本域
中,现阶段只考虑流入 Cu与 NRU中),这样就可以先关闭此MediaOutSession,然后关闭
对应的MediaInSession,将 vtdu上此路视频关闭,并向 Pu发送 bye请求,向MediaOutSession
对应的 RemoteId的设备(CU或 NRU)发送 bye请求,如果该设备为 Cu,则发送 bye后就发
送MSGX_RESTART_VIDEO_REQ消息重新申请视频,此时由于Pu该通道上的视频已关闭,
会用直连方式去连接发送视频,这样就可以做到直连方式到平台分发的切换。
3 结论
在项目中,CU向 CMS发送视频请求是通过 SIP协议中的 INVITE事件实现的,它可以
设置成直连方式或平台分发。
直连方式下 CU端的网络流程如下:
图 1 直连方式下 CU端的网络编程
Fig. 1 CU Direct Connect mode, the network-side programming
- 4 -
中国科技论文在线
以上就是直连时,CU向 PU请求视频数据的建立过程。
平台转发方案中,要判断 CU请求的前端 PU设备是否已与 VTDU通信,如果没有则表
明 CU是第一个请求该 PU的客户,则网络抓包流程如下:
VTDU 端的抓包流程如下:
图 2 平台转发方式下 VTDU端的抓包流程
Fig. 2 Platform way forward end of the packet capture process VTDU
注:CMS IP: VTDU IP: PU IP: CU
IP:
CU请求 CMS的步骤大致如下:
(1)CU已经登陆到 CMS,向 CMS发送 INVITE视频请求,CMS自动响应 100与 101。
(2)CMS向 CU请求的 PU发送 INVITE事件,PU收到 INVITE事件后发送确认消息。
(3)CMS收到 PU发送来的 200OK后,交由上层,在 threadMediaSipMsgProc线程函
数中进行处理。该函数将调用 Rcv200ok()函数处理该事件。函数检查是否需要 VTDU 进行
转发,如果不需要转发,则为直连方式,进入直连模式(上面有叙述),需要转发则进入步
骤(8)。
(4)CMS向 VTDU发送MESSAGE事件,该事件的MESSAGE具体内容如下:
<?xml version="" encoding="UTF-8" ?><Message Version="" >..
<IE_HEADER MessageType="MSGX_START_MEDIA_REQ" SequenceNumber="1"
SessionID="" SourceID="320000105000615133" DestinationID="320000106127392956" />.
<IEX_MEDIA_LINK MediaSessionId="1_320000000265412984_1_1_1"
MediaDirection="1" MediaSrcPort="0" RemoteIp="" RemotePort="26666"
LocalIp="" LocalPort="29670" TransType="0" ConnMode="0" />..</Message>
从上面的 MessageType 为"MSGX_START_MEDIA_REQ"可以知道消息类型为请求视
频,而从 RemoteIp与 LocalIp中可以知道请求的是 PU向 VTDU发送视频数据。
(5)CMS向 PU发送应答 ACK事件,表明已收到 PU发送的 200OK的响应。
(6)CMS向 VTDU再发送一个MESSAGE消息,该消息内容如下:
<?xml version="" encoding="UTF-8" ?><Message Version="" >..
<IE_HEADER MessageType="MSGX_START_MEDIA_REQ" SequenceNumber="1"
SessionID="" SourceID="320000105000615133" DestinationID="320000106127392956" />.
… RemoteIp="" RemotePort="26666" LocalIp=""
LocalPort="29670" TransType="0" ConnMode="0" /></Message>
从消息内容中可以得知该请求是请求 VTDU与 PU间的视频通信。
(7)VTDU向 CMS发送 200OK,表明 VTDU与 CU的视频通道已建立。
(8)CMS向 CU发送 200OK,表明接受 CU的视频请求,CU收到后回复 ACK 应答
- 5 -
中国科技论文在线
消息。
(9)CU发送MESSAGE消息,MessageType仍为MSGX_CU_REPORT_REQ。
(10)CMS收到该MEESGAE后会发生 200OK作为响应,并将事件信息写入 NMS数
据库。
至此 INVITE请求建立,CU、VTDU、PU间视频通道已建立,可以进行视频数据收发。
在实际的工程中应用智能调度技术可以根据用户数量进行直连方式与平台分发方式的
自动切换,切换时会有一段时间视频流断开的情况,但此过程的延时时间只有几秒钟,不影
响整个视频的观看与录制过程,所以可以应用到实际的视频监控系统中。
[参考文献] (References)
[1] 李燕. 视频监控技术应用现状与发展趋势[C].中国通信学会信息通信网络技术委员会 2009年年会论文
集(下册).北京:中国学术期刊电子杂志社,2009:153-157.
[2] 卢秋波.视频监控技术简介与发展趋势[J].安防科技,2007,””(5):21-23
[3] 张智江.SIP协议及其应用[M].北京:电子工业出版社,2003:18-43
[4] 高伟,雷杰,金卫东.SIP协议在网络视频监控中的应用[J].光通信技术,:21-25
[5] 李立仁,李少军,刘忠领.智能视频监控技术综述[J].中国安防,2009,””(10)
[6] 刘永刚,金辉.基于 TCP/IP 的分布式网络视频监控系统[J].齐齐哈尔大学学报,
[7] 王艳艳,房子河,郅晨等.基于数字网络视频监控的 SIP信令系统设计[J].电视技术,2008(5)
[8] 程堂勇.浅谈 RTP/RTCP的网络视频监控系统[J].科技信息,2009(17)