文 凱,張 潤(rùn)
(1.重慶郵電大學(xué) 通信新技術(shù)應(yīng)用研究中心,重慶 400065;2.重慶信科設(shè)計(jì)有限公司,重慶 400065)
基于ONVIF的網(wǎng)絡(luò)視頻監(jiān)控告警系統(tǒng)的實(shí)現(xiàn)
文 凱1,2,張 潤(rùn)1
(1.重慶郵電大學(xué) 通信新技術(shù)應(yīng)用研究中心,重慶 400065;2.重慶信科設(shè)計(jì)有限公司,重慶 400065)
通過(guò)分析當(dāng)前網(wǎng)絡(luò)視頻監(jiān)控告警系統(tǒng)所面臨的問(wèn)題,設(shè)計(jì)并提出了一種基于ONVIF的網(wǎng)絡(luò)視頻監(jiān)控告警系統(tǒng)方案。首先闡釋了告警系統(tǒng)的組成部分和系統(tǒng)的工作原理。然后詳細(xì)分析了告警系統(tǒng)的ONVIF事件、流媒體模塊、SMTP客戶(hù)端等主要功能模塊的實(shí)現(xiàn)流程。最后,給出了系統(tǒng)的運(yùn)行效果。
ONVIF;流媒體;SMTP;告警系統(tǒng)
視頻監(jiān)控系統(tǒng)的目的是保護(hù)用戶(hù)的生命和財(cái)產(chǎn)安全,而視頻監(jiān)控和告警聯(lián)動(dòng)是其兩大核心功能。最近幾年,視頻監(jiān)控技術(shù)得到了快速發(fā)展,但是告警發(fā)展的速度相對(duì)較慢,形成了以視頻監(jiān)控為主、報(bào)警為輔的局面。并且市場(chǎng)上存在不同廠商的安防產(chǎn)品,由于大多廠家采用自己的私有協(xié)議,造成網(wǎng)絡(luò)視頻產(chǎn)品之間的兼容性差,無(wú)法實(shí)現(xiàn)互聯(lián)互通,出現(xiàn)了用戶(hù)只能買(mǎi)同一廠家設(shè)備的情形。而且對(duì)于普通家庭用戶(hù)來(lái)說(shuō),由于經(jīng)常外出,大多只對(duì)視頻被遮擋或者有物體從攝像頭前移動(dòng)的情況感興趣,而目前大多數(shù)視頻監(jiān)控告警系統(tǒng)不能滿(mǎn)足用戶(hù)的需求。
為了解決目前存在的問(wèn)題,提高視頻設(shè)備之間的兼容性,以滿(mǎn)足用戶(hù)的要求,本文通過(guò)引入ONVIF協(xié)議和RTP/RTCP實(shí)時(shí)視頻傳輸協(xié)議來(lái)提高設(shè)備兼容性和視頻的傳輸效率。采用多線(xiàn)程技術(shù)和隊(duì)列的數(shù)據(jù)結(jié)構(gòu)來(lái)提高告警信息處理的及時(shí)性,通過(guò)SMTP郵件傳輸協(xié)議來(lái)負(fù)責(zé)發(fā)送郵件,實(shí)現(xiàn)了一個(gè)系統(tǒng)穩(wěn)定和功能完善的網(wǎng)絡(luò)視頻監(jiān)控告警系統(tǒng)。
1.1 系統(tǒng)簡(jiǎn)介
系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,主要由前端網(wǎng)絡(luò)攝像機(jī)、本地監(jiān)控終端和移動(dòng)終端3個(gè)部分組成,其中網(wǎng)絡(luò)攝像機(jī)和本地監(jiān)控終端為本文討論的重點(diǎn)。
圖1 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
1)網(wǎng)絡(luò)攝像機(jī)
網(wǎng)絡(luò)攝像機(jī)英文簡(jiǎn)稱(chēng)IPC,是集成網(wǎng)絡(luò)通信模塊和編解碼模塊的高性能音視頻采集和發(fā)送設(shè)備。主要作用是將采集到的模擬信號(hào)(音視頻、告警信息和控制信號(hào)),經(jīng)編解碼模塊編碼,通過(guò)網(wǎng)絡(luò)通信模塊發(fā)送到本地監(jiān)控終端。
目前主流的IPC大多引入了ONVIF協(xié)議,ONVIF協(xié)議通過(guò)描述網(wǎng)絡(luò)視頻的接口、模型、數(shù)據(jù)類(lèi)型和數(shù)據(jù)交互的方式,使不同廠家的網(wǎng)絡(luò)視頻監(jiān)控產(chǎn)品互聯(lián)互通。ONVIF協(xié)議中控制部分和設(shè)備管理所定義的接口都是通過(guò)Web Services的方式提供,每個(gè)支持ONVIF協(xié)議的網(wǎng)絡(luò)視頻設(shè)備都需要提供與功能相應(yīng)的Web Services,比如設(shè)備管理、設(shè)備發(fā)現(xiàn)、媒體配置、事件處理等,其他部分如音視頻通過(guò)RTP/STSP進(jìn)行。Web Services主要利用HTTP和SOAP協(xié)議實(shí)現(xiàn)服務(wù)與端客戶(hù)端之間的數(shù)據(jù)交互[1]。
ONVIF協(xié)議實(shí)現(xiàn)機(jī)制是:ONVIF客戶(hù)端根據(jù)官方提供的WSDL描述文件[2]生成一個(gè)SOAP請(qǐng)求消息,該消息會(huì)被添加到一個(gè)HTTP POST請(qǐng)求中,發(fā)送到包含對(duì)應(yīng)Web Services的Web服務(wù)器。Web Services請(qǐng)求處理解析器調(diào)用相應(yīng)的Web Services處理SOAP請(qǐng)求,生成對(duì)應(yīng)的SOAP應(yīng)答。Web服務(wù)器得到SOAP應(yīng)答后,通過(guò)HTTP把應(yīng)答消息送回客戶(hù)端[2]。
2)本地監(jiān)控終端
本地監(jiān)控終端是系統(tǒng)的核心,負(fù)責(zé)訂閱事件、接收和處理告警信息。硬件采用Hi3531芯片,該芯片能同時(shí)編解碼5路1 080p高清視頻,并集成高效的編解碼算法和優(yōu)異的媒體處理能力[3]。軟件部分由ONVIF客戶(hù)端、流媒體客戶(hù)端、SMTP客戶(hù)端和Hi3531媒體處理平臺(tái)軟件組成。ONVIF客戶(hù)端在網(wǎng)絡(luò)攝像機(jī)部分已介紹,本節(jié)主要介紹流媒體客戶(hù)端和SMTP客戶(hù)端[4]。
流媒體客戶(hù)端主要負(fù)責(zé)請(qǐng)求流媒體服務(wù)器的音視頻數(shù)據(jù),由RTSP會(huì)話(huà)控制層和RTP數(shù)據(jù)傳輸層組成。RT?SP是基于TCP的實(shí)時(shí)流控制協(xié)議,負(fù)責(zé)建立服務(wù)器和客戶(hù)端的會(huì)話(huà)控制,提供遠(yuǎn)程控制;RTP是基于UDP的實(shí)時(shí)數(shù)據(jù)傳輸協(xié)議,在UDP數(shù)據(jù)包前增加一個(gè)確保流數(shù)據(jù)實(shí)時(shí)性和連續(xù)性的RTP包頭,比如序列號(hào)和時(shí)間戳。首先,客戶(hù)端連接到服務(wù)器的RTSP端口,建立連接。其次,客戶(hù)端發(fā)送包含音視頻的URL的DESCRIBE命令到服務(wù)端。服務(wù)端收到后會(huì)傳送媒體描述文件到客戶(hù)端,描述文件包含文件名、RTP傳輸通道端口號(hào)、編碼類(lèi)型、網(wǎng)絡(luò)類(lèi)型、采樣率等。然后,客戶(hù)端發(fā)送SETUP命令到服務(wù)端,配置傳輸方式、網(wǎng)絡(luò)協(xié)議和端口等,并創(chuàng)建接收線(xiàn)程,循環(huán)等待從服務(wù)端發(fā)送來(lái)的RTP數(shù)據(jù)包。最后,客戶(hù)端發(fā)送PLAY命令,通知服務(wù)端向本地RTP端口端發(fā)送數(shù)據(jù)[5]。
SMTP客戶(hù)端負(fù)責(zé)根據(jù)郵件信息生成標(biāo)準(zhǔn)格式的郵件,發(fā)送給SMTP服務(wù)器。SMTP客戶(hù)端首先檢查郵件信息是否完整,然后根據(jù)郵件信息生成郵件頭和郵件體各部分的頭部信息,并編碼一些需要編碼的郵件體,并按照RFC822和MIME規(guī)定將這些內(nèi)容生成標(biāo)準(zhǔn)格式的郵件,最后發(fā)送郵件[6]。
1.2 系統(tǒng)的工作原理
本地監(jiān)控終端根據(jù)用戶(hù)配置的告警時(shí)間段和告警類(lèi)型向IPC訂閱告警。如果訂閱成功,則與IPC建立流媒體連接,設(shè)置子碼流的編碼方式,等待IPC通知告警信息。當(dāng)IPC偵測(cè)到告警信息后,判斷信息是否滿(mǎn)足訂閱的條件,如果滿(mǎn)足則將告警信息通知給本地監(jiān)控終端。本地監(jiān)控終端收到告警信息后,由流媒體客戶(hù)端獲取告警現(xiàn)場(chǎng)圖片,通過(guò)SMTP客戶(hù)端將告警信息發(fā)送到用戶(hù)郵箱。系統(tǒng)的工作原理流程圖如圖2所示。
圖2 告警系統(tǒng)工作原理圖
告警系統(tǒng)的主要功能集中在本地客戶(hù)端,它由三大功能模塊構(gòu)成,分別為ONVIF事件模塊、流媒體模塊和郵件發(fā)送模塊,下面介紹每個(gè)模塊的具體實(shí)現(xiàn)方法。
2.1 ONVIF事件模塊的實(shí)現(xiàn)
該模塊負(fù)責(zé)系統(tǒng)告警信令的交互,由ONVIF事件模塊完成,負(fù)責(zé)訂閱、通知、重訂閱、撤銷(xiāo)訂閱和處理告警信息等功能。在監(jiān)聽(tīng)事件前,需要通過(guò)ONVIF設(shè)備發(fā)現(xiàn)媒體配置模塊,獲取在網(wǎng)的設(shè)備信息,如設(shè)備的IP地址、設(shè)備的能力集和碼流令牌等,本地客戶(hù)監(jiān)控終端根據(jù)這些信息建立起與IPC的連接。本節(jié)重點(diǎn)討論ONVIF事件模塊的實(shí)現(xiàn),其具體實(shí)現(xiàn)流程為:
1)本地監(jiān)控終端創(chuàng)建與IPC的Event Server事件服務(wù)器的socket連接。
2)客戶(hù)端發(fā)送SubscritionRequest訂閱請(qǐng)求到Event Server,提交訂閱請(qǐng)求。當(dāng)Event Server接收到訂閱請(qǐng)求,則動(dòng)態(tài)實(shí)例化一個(gè)SubscriptionManager訂閱管理器,其主要用于通知告警信息。Event Server在訂閱響應(yīng)中返回訂閱管理的服務(wù)程序所在的IP和端口等信息[3]。
3)如果訂閱成功,Client通過(guò)IPC的IP地址及端口,直接與SubscriptionManager進(jìn)行通信,調(diào)用accept()監(jiān)聽(tīng)。同時(shí),建立視頻流連接,具體流程參考第2.2節(jié)。
4)當(dāng)SubscriptionManager偵測(cè)到告警信息,將告警事件發(fā)生時(shí)間、訂閱管理器的結(jié)束時(shí)間、事件的類(lèi)型等信息發(fā)送給客戶(hù)端。由客戶(hù)端進(jìn)行處理,具體處理參考第2.3節(jié)。
2.2 流媒體模塊的實(shí)現(xiàn)
為了獲取告警現(xiàn)場(chǎng)數(shù)據(jù),提高處理的實(shí)時(shí)性,NVR服務(wù)器在等待接收IPC返回的告警信息的同時(shí),必須不斷接收從IPC采集到的音視頻流,并將收到的每一幀數(shù)據(jù)存放在相應(yīng)通道的指定內(nèi)存區(qū)域。為了提高系統(tǒng)的開(kāi)發(fā)效率和節(jié)約成本,本地監(jiān)控終端的流媒體客戶(hù)端采用LIVE555開(kāi)源框架。下面介紹流媒體模塊的主要工作:
1)啟動(dòng)定時(shí)檢測(cè)線(xiàn)程,判斷當(dāng)前系統(tǒng)時(shí)間是否在用戶(hù)配置的訂閱時(shí)間范圍內(nèi)。如果是,則向IPC發(fā)起訂閱請(qǐng)求,訂閱的工作原理如第2.1節(jié)所示。
2)如果訂閱成功,通過(guò)ONVIF設(shè)置IPC子碼流的編碼方式為JPEG,目的是將接收到的視頻數(shù)據(jù)保存為JPEG格式的圖片。
3)連接IPC的RTSP服務(wù)端,向RTSP服務(wù)端請(qǐng)求視頻流,開(kāi)始接收數(shù)據(jù)。
4)當(dāng)收到視頻流時(shí),在PLAY命令的處理函數(shù)中,將視頻流存放在一塊特定大小的內(nèi)存中。在系統(tǒng)的過(guò)程中,不斷刷新該內(nèi)存區(qū)域,當(dāng)有告警通知到達(dá)時(shí),立即從該內(nèi)存區(qū)域提取出數(shù)據(jù),就能夠保證獲得告警現(xiàn)場(chǎng)的畫(huà)面。
2.3 郵件發(fā)送模塊的實(shí)現(xiàn)
當(dāng)多路告警消息同時(shí)到達(dá),或者到達(dá)的時(shí)間間隔較短,如果采用串行處理的方式,可能出現(xiàn)前一個(gè)告警任務(wù)還未處理完,后面的告警到達(dá)的情況。由于消息處理不及時(shí),容易造成告警漏處理,極大影響系統(tǒng)的能力。為了解決這個(gè)問(wèn)題,本系統(tǒng)采用告警接收和處理分離的方式,由告警接收線(xiàn)程快速接收告警信息,并將耗時(shí)的操作放在告警處理線(xiàn)程完成。在告警接收線(xiàn)程中將接收到的消息存放在消息隊(duì)列。告警處理線(xiàn)程從隊(duì)列中取出告警信息,并立即將接收到的一幀視頻數(shù)據(jù)保存為圖片的格式,并啟動(dòng)SMTP客戶(hù)端發(fā)送。郵件發(fā)送模塊的實(shí)現(xiàn)流程如圖3所示。
圖3 郵件發(fā)送流程圖
1)在事件處理函數(shù)中,啟動(dòng)告警接收線(xiàn)程。當(dāng)有告警通知到達(dá)時(shí),告警信息進(jìn)入告警消息隊(duì)列中。
2)在告警線(xiàn)程處理函數(shù)中,從告警消息隊(duì)列中依次取出告警信息。根據(jù)告警信息中的通道號(hào),在對(duì)應(yīng)通道的接收內(nèi)存區(qū)域內(nèi)提取視頻信息,保存為JPEG圖片。
3)從圖形用戶(hù)界面獲取用戶(hù)配置的發(fā)件人的電子郵箱賬號(hào)和密碼、收件人的郵箱賬號(hào)。為了用戶(hù)方便知道告警信息,將主要的告警信息作為發(fā)送郵件的標(biāo)題,如alarmType:dection_motion,time:2014-05-07T17:27: 12,于是用戶(hù)可以便捷地知道告警類(lèi)型為移動(dòng)偵測(cè),告警發(fā)生的時(shí)間為下午5點(diǎn)27分。啟動(dòng)SMTP客戶(hù)端。
在系統(tǒng)的測(cè)試過(guò)程中,使用大華和??档木W(wǎng)絡(luò)攝像機(jī)偵測(cè)告警信息,本地監(jiān)控終端采用本文設(shè)計(jì)的告警系統(tǒng)接收和處理告警信息。用戶(hù)在本地控制終端的事件管理界面配置2個(gè)IPC的告警的時(shí)間段,并在郵件配置界面配置發(fā)件人的賬號(hào)和密碼,以及收件人的賬號(hào)、截圖間隔和抓拍圖片的張數(shù),郵件配置界面如圖4所示。
當(dāng)攝像頭前有移動(dòng)物體或攝像頭被遮擋時(shí),IPC都能產(chǎn)生告警信息并通知本地監(jiān)控終端。當(dāng)2個(gè)IPC偵測(cè)到告警的時(shí)間間隔較短(<1 s),本地監(jiān)控終端也能夠及時(shí)接收和處理,并將告警信息作為郵件的標(biāo)題,圖片作為郵件附件的方式發(fā)送到用戶(hù)指定的郵箱,一路告警的郵件接收效果如圖5所示。整個(gè)系統(tǒng)運(yùn)行穩(wěn)定,各項(xiàng)參數(shù)指標(biāo)達(dá)到預(yù)期效果。
圖4 郵件配置界面(截圖)
圖5 接收告警郵件的效果圖(截圖)
本系統(tǒng)實(shí)現(xiàn)了一種網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)告警系統(tǒng),通過(guò)ONVIF規(guī)范管理事件,提高了系統(tǒng)的兼容性。通過(guò)RTP視頻流傳輸協(xié)議提高了視頻傳輸效率。采用多線(xiàn)程技術(shù)和隊(duì)列數(shù)據(jù)結(jié)構(gòu),解決了因多路告警通知到達(dá)時(shí)間太短而造成處理不及時(shí)的問(wèn)題。本系統(tǒng)采用模塊化設(shè)計(jì),使設(shè)計(jì)結(jié)構(gòu)清晰、容易擴(kuò)展、通用、靈活性強(qiáng)。同時(shí)具有兼容性強(qiáng)、易擴(kuò)展性、配置靈活、網(wǎng)絡(luò)傳輸效率高等特點(diǎn)。而且,Hi3531提供流媒體SDK開(kāi)發(fā)包[7],采用LIVE555開(kāi)源框架,降低了開(kāi)發(fā)難度、周期和成本。本文提出的視頻監(jiān)控告警系統(tǒng)具有廣泛的前景。
[1] ONVIF.ONVIF core specification version 2.0[S].2010.
[2]W 3C.Web Services description language(WSDL)[EB/OL].[2014-05-15].http://www.w3.org/TR/wsdl,2001,03,05.
[3] 深圳海思半導(dǎo)體有限公司.Hi3531 H.264編解碼處理器用戶(hù)指南[EB/OL].[2014-05-15].http://download.csdn.net/download/hot469517 044/4400208.
[4] 深圳海思半導(dǎo)體有限公司.海思Hi3531的中文版開(kāi)發(fā)參考文檔[EB/OL].[2014-05-15].http://download.csdn.net/download/zihundezhongcheng/4898876.
[5] 曾濤.流媒體客戶(hù)端的結(jié)構(gòu)和原理淺析[J].中國(guó)多媒體視訊,2005(6):58-61.
[6]錢(qián)誠(chéng)慎.SMTP電子郵件客戶(hù)端與服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2006.
[7] 文武,譚沅軍,劉敏.ASP.NET架構(gòu)下網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].電視技術(shù),2014,38(5):160-163.
Imp lementation of Network Video Surveillance Alarm System Based on ONVIF
WEN Kai1,2,ZHANG Run1
(1.Research Centre for Application of New Communication Technologies,Chongqing University of Posts and Telecommunications,Chongqing 400065, China;2.Chongqing Information Technology Designing Co.,Ltd,Chongqing 400065,China)
Through analyzing the current network issues faced by video surveillance alarm system,the design of a network video surveillance alarm system based on ONVIF is put forward.Firstly,the component and working principle of the alarm system are interpreted.Then,a detailed analysis of the implementation process of three main functions is given,such as ONVIF event alarm systems,streaming media modules and SMTP client.Finally,the effect of running the system and the paper summarizes are given.
ONVIF;streaming;SMTP;alarm system
TN915
A
??健男
2014-07-02
【本文獻(xiàn)信息】文凱,張潤(rùn).基于ONVIF的網(wǎng)絡(luò)視頻監(jiān)控告警系統(tǒng)的實(shí)現(xiàn)[J].電視技術(shù),2014,38(21).
科技型中小企業(yè)技術(shù)創(chuàng)新基金項(xiàng)目(11C26215113601)