文 凱,張 潤
(1.重慶郵電大學 通信新技術應用研究中心,重慶 400065;2.重慶信科設計有限公司,重慶 400065)
基于ONVIF的網絡視頻監控告警系統的實現
文 凱1,2,張 潤1
(1.重慶郵電大學 通信新技術應用研究中心,重慶 400065;2.重慶信科設計有限公司,重慶 400065)
通過分析當前網絡視頻監控告警系統所面臨的問題,設計并提出了一種基于ONVIF的網絡視頻監控告警系統方案。首先闡釋了告警系統的組成部分和系統的工作原理。然后詳細分析了告警系統的ONVIF事件、流媒體模塊、SMTP客戶端等主要功能模塊的實現流程。最后,給出了系統的運行效果。
ONVIF;流媒體;SMTP;告警系統
視頻監控系統的目的是保護用戶的生命和財產安全,而視頻監控和告警聯動是其兩大核心功能。最近幾年,視頻監控技術得到了快速發展,但是告警發展的速度相對較慢,形成了以視頻監控為主、報警為輔的局面。并且市場上存在不同廠商的安防產品,由于大多廠家采用自己的私有協議,造成網絡視頻產品之間的兼容性差,無法實現互聯互通,出現了用戶只能買同一廠家設備的情形。而且對于普通家庭用戶來說,由于經常外出,大多只對視頻被遮擋或者有物體從攝像頭前移動的情況感興趣,而目前大多數視頻監控告警系統不能滿足用戶的需求。
為了解決目前存在的問題,提高視頻設備之間的兼容性,以滿足用戶的要求,本文通過引入ONVIF協議和RTP/RTCP實時視頻傳輸協議來提高設備兼容性和視頻的傳輸效率。采用多線程技術和隊列的數據結構來提高告警信息處理的及時性,通過SMTP郵件傳輸協議來負責發送郵件,實現了一個系統穩定和功能完善的網絡視頻監控告警系統。
1.1 系統簡介
系統的網絡結構如圖1所示,主要由前端網絡攝像機、本地監控終端和移動終端3個部分組成,其中網絡攝像機和本地監控終端為本文討論的重點。

圖1 系統網絡結構圖
1)網絡攝像機
網絡攝像機英文簡稱IPC,是集成網絡通信模塊和編解碼模塊的高性能音視頻采集和發送設備。主要作用是將采集到的模擬信號(音視頻、告警信息和控制信號),經編解碼模塊編碼,通過網絡通信模塊發送到本地監控終端。
目前主流的IPC大多引入了ONVIF協議,ONVIF協議通過描述網絡視頻的接口、模型、數據類型和數據交互的方式,使不同廠家的網絡視頻監控產品互聯互通。ONVIF協議中控制部分和設備管理所定義的接口都是通過Web Services的方式提供,每個支持ONVIF協議的網絡視頻設備都需要提供與功能相應的Web Services,比如設備管理、設備發現、媒體配置、事件處理等,其他部分如音視頻通過RTP/STSP進行。Web Services主要利用HTTP和SOAP協議實現服務與端客戶端之間的數據交互[1]。
ONVIF協議實現機制是:ONVIF客戶端根據官方提供的WSDL描述文件[2]生成一個SOAP請求消息,該消息會被添加到一個HTTP POST請求中,發送到包含對應Web Services的Web服務器。Web Services請求處理解析器調用相應的Web Services處理SOAP請求,生成對應的SOAP應答。Web服務器得到SOAP應答后,通過HTTP把應答消息送回客戶端[2]。
2)本地監控終端
本地監控終端是系統的核心,負責訂閱事件、接收和處理告警信息。硬件采用Hi3531芯片,該芯片能同時編解碼5路1 080p高清視頻,并集成高效的編解碼算法和優異的媒體處理能力[3]。軟件部分由ONVIF客戶端、流媒體客戶端、SMTP客戶端和Hi3531媒體處理平臺軟件組成。ONVIF客戶端在網絡攝像機部分已介紹,本節主要介紹流媒體客戶端和SMTP客戶端[4]。
流媒體客戶端主要負責請求流媒體服務器的音視頻數據,由RTSP會話控制層和RTP數據傳輸層組成。RT?SP是基于TCP的實時流控制協議,負責建立服務器和客戶端的會話控制,提供遠程控制;RTP是基于UDP的實時數據傳輸協議,在UDP數據包前增加一個確保流數據實時性和連續性的RTP包頭,比如序列號和時間戳。首先,客戶端連接到服務器的RTSP端口,建立連接。其次,客戶端發送包含音視頻的URL的DESCRIBE命令到服務端。服務端收到后會傳送媒體描述文件到客戶端,描述文件包含文件名、RTP傳輸通道端口號、編碼類型、網絡類型、采樣率等。然后,客戶端發送SETUP命令到服務端,配置傳輸方式、網絡協議和端口等,并創建接收線程,循環等待從服務端發送來的RTP數據包。最后,客戶端發送PLAY命令,通知服務端向本地RTP端口端發送數據[5]。
SMTP客戶端負責根據郵件信息生成標準格式的郵件,發送給SMTP服務器。SMTP客戶端首先檢查郵件信息是否完整,然后根據郵件信息生成郵件頭和郵件體各部分的頭部信息,并編碼一些需要編碼的郵件體,并按照RFC822和MIME規定將這些內容生成標準格式的郵件,最后發送郵件[6]。
1.2 系統的工作原理
本地監控終端根據用戶配置的告警時間段和告警類型向IPC訂閱告警。如果訂閱成功,則與IPC建立流媒體連接,設置子碼流的編碼方式,等待IPC通知告警信息。當IPC偵測到告警信息后,判斷信息是否滿足訂閱的條件,如果滿足則將告警信息通知給本地監控終端。本地監控終端收到告警信息后,由流媒體客戶端獲取告警現場圖片,通過SMTP客戶端將告警信息發送到用戶郵箱。系統的工作原理流程圖如圖2所示。

圖2 告警系統工作原理圖
告警系統的主要功能集中在本地客戶端,它由三大功能模塊構成,分別為ONVIF事件模塊、流媒體模塊和郵件發送模塊,下面介紹每個模塊的具體實現方法。
2.1 ONVIF事件模塊的實現
該模塊負責系統告警信令的交互,由ONVIF事件模塊完成,負責訂閱、通知、重訂閱、撤銷訂閱和處理告警信息等功能。在監聽事件前,需要通過ONVIF設備發現媒體配置模塊,獲取在網的設備信息,如設備的IP地址、設備的能力集和碼流令牌等,本地客戶監控終端根據這些信息建立起與IPC的連接。本節重點討論ONVIF事件模塊的實現,其具體實現流程為:
1)本地監控終端創建與IPC的Event Server事件服務器的socket連接。
2)客戶端發送SubscritionRequest訂閱請求到Event Server,提交訂閱請求。當Event Server接收到訂閱請求,則動態實例化一個SubscriptionManager訂閱管理器,其主要用于通知告警信息。Event Server在訂閱響應中返回訂閱管理的服務程序所在的IP和端口等信息[3]。
3)如果訂閱成功,Client通過IPC的IP地址及端口,直接與SubscriptionManager進行通信,調用accept()監聽。同時,建立視頻流連接,具體流程參考第2.2節。
4)當SubscriptionManager偵測到告警信息,將告警事件發生時間、訂閱管理器的結束時間、事件的類型等信息發送給客戶端。由客戶端進行處理,具體處理參考第2.3節。
2.2 流媒體模塊的實現
為了獲取告警現場數據,提高處理的實時性,NVR服務器在等待接收IPC返回的告警信息的同時,必須不斷接收從IPC采集到的音視頻流,并將收到的每一幀數據存放在相應通道的指定內存區域。為了提高系統的開發效率和節約成本,本地監控終端的流媒體客戶端采用LIVE555開源框架。下面介紹流媒體模塊的主要工作:
1)啟動定時檢測線程,判斷當前系統時間是否在用戶配置的訂閱時間范圍內。如果是,則向IPC發起訂閱請求,訂閱的工作原理如第2.1節所示。
2)如果訂閱成功,通過ONVIF設置IPC子碼流的編碼方式為JPEG,目的是將接收到的視頻數據保存為JPEG格式的圖片。
3)連接IPC的RTSP服務端,向RTSP服務端請求視頻流,開始接收數據。
4)當收到視頻流時,在PLAY命令的處理函數中,將視頻流存放在一塊特定大小的內存中。在系統的過程中,不斷刷新該內存區域,當有告警通知到達時,立即從該內存區域提取出數據,就能夠保證獲得告警現場的畫面。
2.3 郵件發送模塊的實現
當多路告警消息同時到達,或者到達的時間間隔較短,如果采用串行處理的方式,可能出現前一個告警任務還未處理完,后面的告警到達的情況。由于消息處理不及時,容易造成告警漏處理,極大影響系統的能力。為了解決這個問題,本系統采用告警接收和處理分離的方式,由告警接收線程快速接收告警信息,并將耗時的操作放在告警處理線程完成。在告警接收線程中將接收到的消息存放在消息隊列。告警處理線程從隊列中取出告警信息,并立即將接收到的一幀視頻數據保存為圖片的格式,并啟動SMTP客戶端發送。郵件發送模塊的實現流程如圖3所示。

圖3 郵件發送流程圖
1)在事件處理函數中,啟動告警接收線程。當有告警通知到達時,告警信息進入告警消息隊列中。
2)在告警線程處理函數中,從告警消息隊列中依次取出告警信息。根據告警信息中的通道號,在對應通道的接收內存區域內提取視頻信息,保存為JPEG圖片。
3)從圖形用戶界面獲取用戶配置的發件人的電子郵箱賬號和密碼、收件人的郵箱賬號。為了用戶方便知道告警信息,將主要的告警信息作為發送郵件的標題,如alarmType:dection_motion,time:2014-05-07T17:27: 12,于是用戶可以便捷地知道告警類型為移動偵測,告警發生的時間為下午5點27分。啟動SMTP客戶端。
在系統的測試過程中,使用大華和海康的網絡攝像機偵測告警信息,本地監控終端采用本文設計的告警系統接收和處理告警信息。用戶在本地控制終端的事件管理界面配置2個IPC的告警的時間段,并在郵件配置界面配置發件人的賬號和密碼,以及收件人的賬號、截圖間隔和抓拍圖片的張數,郵件配置界面如圖4所示。
當攝像頭前有移動物體或攝像頭被遮擋時,IPC都能產生告警信息并通知本地監控終端。當2個IPC偵測到告警的時間間隔較短(<1 s),本地監控終端也能夠及時接收和處理,并將告警信息作為郵件的標題,圖片作為郵件附件的方式發送到用戶指定的郵箱,一路告警的郵件接收效果如圖5所示。整個系統運行穩定,各項參數指標達到預期效果。

圖4 郵件配置界面(截圖)

圖5 接收告警郵件的效果圖(截圖)
本系統實現了一種網絡視頻監控系統告警系統,通過ONVIF規范管理事件,提高了系統的兼容性。通過RTP視頻流傳輸協議提高了視頻傳輸效率。采用多線程技術和隊列數據結構,解決了因多路告警通知到達時間太短而造成處理不及時的問題。本系統采用模塊化設計,使設計結構清晰、容易擴展、通用、靈活性強。同時具有兼容性強、易擴展性、配置靈活、網絡傳輸效率高等特點。而且,Hi3531提供流媒體SDK開發包[7],采用LIVE555開源框架,降低了開發難度、周期和成本。本文提出的視頻監控告警系統具有廣泛的前景。
[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] 深圳海思半導體有限公司.Hi3531 H.264編解碼處理器用戶指南[EB/OL].[2014-05-15].http://download.csdn.net/download/hot469517 044/4400208.
[4] 深圳海思半導體有限公司.海思Hi3531的中文版開發參考文檔[EB/OL].[2014-05-15].http://download.csdn.net/download/zihundezhongcheng/4898876.
[5] 曾濤.流媒體客戶端的結構和原理淺析[J].中國多媒體視訊,2005(6):58-61.
[6]錢誠慎.SMTP電子郵件客戶端與服務器的設計與實現[D].大連:大連理工大學,2006.
[7] 文武,譚沅軍,劉敏.ASP.NET架構下網絡視頻監控系統的設計[J].電視技術,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
【本文獻信息】文凱,張潤.基于ONVIF的網絡視頻監控告警系統的實現[J].電視技術,2014,38(21).
科技型中小企業技術創新基金項目(11C26215113601)