文 武,譚沅軍,劉 敏
(1.重慶郵電大學(xué)通信與信息工程學(xué)院,重慶400065;2.重慶信科設(shè)計(jì)有限公司,重慶400065)
隨著科技和社會(huì)的不斷發(fā)展,安全問題日益突出,安全防衛(wèi)已經(jīng)成為社會(huì)各界關(guān)注的焦點(diǎn)之一。網(wǎng)絡(luò)視頻監(jiān)控已經(jīng)融入到校園安防、城市交通、平安城市、森林防火和災(zāi)后重建等社會(huì)各個(gè)領(lǐng)域中。特別是在互聯(lián)網(wǎng)、電信網(wǎng)、廣播電視網(wǎng)和電網(wǎng)等四網(wǎng)開始融合以后,安防監(jiān)控行業(yè)更是朝著數(shù)字化、網(wǎng)絡(luò)化、智能化、一體化等方向快速發(fā)展。但隨著國民經(jīng)濟(jì)進(jìn)一步增長,人們對(duì)安防重視程度的提高,使得該行業(yè)的市場(chǎng)容量急劇上升,目前市場(chǎng)存在的小規(guī)模、單一廠商的監(jiān)控系統(tǒng)已經(jīng)不能滿足客戶需求。顯然一體化的滯后已成為影響該行業(yè)發(fā)展的重要因素之一。
而基于ASP.NET的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),以B/S架構(gòu)、Web Services為基礎(chǔ),集成了高效、較好的用戶感知、強(qiáng)兼容性、易于升級(jí)和擴(kuò)展于一體的優(yōu)點(diǎn)。采用以融合、開放思想的開放式協(xié)議(Open Network Video Interface Forum,ONVIF),為該行業(yè)沖出瓶頸提供了有利條件。
ASP.NET是微軟建立在Web上的.NET平臺(tái)的應(yīng)用程序開發(fā)技術(shù),與HTML和.NET協(xié)同工作使得Web開發(fā)效率有效提高。本系統(tǒng)由ASP.NET部署B(yǎng)/S的三層架構(gòu)UI、業(yè)務(wù)邏輯、數(shù)據(jù)訪問組成,有效分離了頁面、邏輯和數(shù)據(jù),使得監(jiān)控系統(tǒng)的處理更加靈活,便于后期的維護(hù)和擴(kuò)展。
ActiveX也叫OCX,是一個(gè)開放的、面向?qū)ο蟮募煽丶?,可以制定多種功能。使用該控件,可輕松地在Web Form中插入交互式對(duì)象、多媒體效果以及復(fù)雜的應(yīng)用程序;也可方便地應(yīng)用于VB、C#等語言中,拓展各個(gè)語言間的開發(fā)能力以及實(shí)現(xiàn)小型組件的應(yīng)用、重用、代碼的共享,從而提高了開發(fā)的效率,縮短了開發(fā)周期。
ONVIF是于2008年聯(lián)合成立的一個(gè)開放型網(wǎng)絡(luò)視頻接口論壇[1],致力于制定使基于IP網(wǎng)絡(luò)的不同IPC設(shè)備生產(chǎn)商所生產(chǎn)的網(wǎng)絡(luò)視頻服務(wù)器(NVS)、網(wǎng)絡(luò)攝像機(jī)(IPC)等網(wǎng)絡(luò)視頻相關(guān)產(chǎn)品相互兼容的標(biāo)準(zhǔn)。其側(cè)重點(diǎn)在于網(wǎng)絡(luò)視頻的發(fā)送設(shè)備與客戶端之間的接口,該協(xié)議涉及到設(shè)備開發(fā)、設(shè)備配置、視頻分析、云臺(tái)控制、事件報(bào)警等,通過SOAP協(xié)議最終實(shí)現(xiàn)信息交互。ONVIF中其他部分如音頻、視頻流則是通過實(shí)時(shí)傳輸協(xié)議/實(shí)時(shí)流傳輸協(xié)議[2](Realtime Transport Protocol/Real Time Streaming Protocol,RTP/RTSP)進(jìn)行。
基于ASP.NET網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)由B/S模式中的3層架構(gòu)部署,采用ONVIF協(xié)議,其系統(tǒng)架構(gòu)如圖1所示,主要由網(wǎng)絡(luò)視頻采集(IPC設(shè)備)、網(wǎng)絡(luò)視頻分析、網(wǎng)絡(luò)視頻顯示(電視墻)和網(wǎng)絡(luò)視頻存儲(chǔ)等4個(gè)部分組成[3-4]。
圖1 網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)B/S三層架構(gòu)
在此網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)中,Server部分主要由Web服務(wù)器和IPC服務(wù)器2個(gè)部分組成。訪問用戶界面須通過Web服務(wù)器,獲得包括ActiveX媒體播放控件的媒體設(shè)置模塊在內(nèi)的程序包作為操作界面展示給用戶。IPC服務(wù)器的主要功能則是從監(jiān)控?zé)狳c(diǎn)的IPC處采集實(shí)時(shí)視頻圖像數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行編碼、壓縮及發(fā)送。UI層中嵌入到瀏覽器的ActiveX控件主要負(fù)責(zé)接收IPC服務(wù)器傳回的媒體流、解碼并將經(jīng)過Buffer處理的媒體流展現(xiàn)到控件視頻播放窗口。此系統(tǒng)中,媒體流的傳輸不再是傳統(tǒng)的Http方式,而是通過更加適合實(shí)時(shí)媒體流傳輸?shù)腛NVIF標(biāo)準(zhǔn)中的RTP/RTCP協(xié)議進(jìn)行傳輸,此種傳輸方式既減小了Web服務(wù)器的負(fù)擔(dān),又提高了實(shí)時(shí)視頻傳輸?shù)男省?/p>
監(jiān)控系統(tǒng)的各功能模塊采用的是分層的B/S架構(gòu)[5],該架構(gòu)將視圖層(VIEW)與控制層(CONTROL)獨(dú)立,極大提高了系統(tǒng)的靈活性、可擴(kuò)展性,同時(shí)也提高了其代碼的可復(fù)用性。
2.2.1 媒體服務(wù)模塊
媒體服務(wù)模塊功能集成到ActiveX控件中,通過HTML中的Object對(duì)象加載到系統(tǒng)中,視圖層使用JavaScript腳本語言調(diào)用ActiveX控件對(duì)象留出的接口函數(shù)實(shí)現(xiàn)其功能。該控件包括3個(gè)組件,即播放器(player)、服務(wù)器(server)、編碼器(encoder),這些組件通過ONVIF接口協(xié)議通信,采用H.264編解碼器處理媒體流數(shù)據(jù),這種編解碼器使用特殊的算法壓縮媒體流的數(shù)據(jù)量。媒體服務(wù)模塊的工作流程如圖2所示。
圖2 媒體模塊流程圖
主要服務(wù)功能有:
1)單播:IPC與客戶端一對(duì)一的建立一個(gè)通信通道傳輸媒體流數(shù)據(jù)。
2)組播:在組播網(wǎng)的基礎(chǔ)上,允許路由器將媒體流打包復(fù)制到多個(gè)信道上。
3)點(diǎn)播:用戶根據(jù)需求選擇內(nèi)容來初始化與客戶端的連接,利用ONVIF接口下的RTP/RTSP協(xié)議對(duì)媒體流進(jìn)行播放、快進(jìn)、快退、暫停和停止的控制(主動(dòng)接收)。
4)廣播:IPC服務(wù)器將傳出的媒體流編碼后發(fā)送到網(wǎng)絡(luò)上所有的在線用戶(被動(dòng)接收)。
2.2.2 云臺(tái)控制模塊
早期的安防監(jiān)控?cái)z像頭是固定不動(dòng)的,如果需要多角度的監(jiān)控,必須新增加攝像頭。為了解決此問題,設(shè)計(jì)了云臺(tái)控制。PTZ控制的出現(xiàn)使得用戶界面更加人性化、安防監(jiān)控也更加靈活,有效提高了用戶感知,同時(shí)減少了系統(tǒng)的成本。UI層將云臺(tái)控制信號(hào)下發(fā)到業(yè)務(wù)邏輯層,經(jīng)過編碼器接收、識(shí)別、解析所傳來的控制指令,從而對(duì)IPC云臺(tái)進(jìn)行上、下、左、右等方向的控制。而ONVIF協(xié)議制定PTZ統(tǒng)一的接口(雖然各個(gè)廠家間的實(shí)現(xiàn)方式不一樣),有效解決了解碼器和通信協(xié)議沒有統(tǒng)一的標(biāo)準(zhǔn)問題[6]。PTZ 控制中定義的接口函數(shù)[7]如表1 所示。
2.2.3 管理模塊
此模塊在整個(gè)系統(tǒng)中有不可估量的作用,設(shè)計(jì)好此模塊能使系統(tǒng)良好地工作。主要分為以下3個(gè)部分:
1)用戶管理
主要功能是添加、刪除、修改用戶、權(quán)限設(shè)置等。根據(jù)RBAC權(quán)限設(shè)計(jì)模型,將板塊分為5個(gè)類型,即用戶、角色、文件、菜單和權(quán)限。充分利用ASP.NET中已經(jīng)實(shí)現(xiàn)的部分RBAC特性的基礎(chǔ)上,結(jié)合實(shí)際應(yīng)用[8],設(shè)計(jì)具有良好通用性的權(quán)限管理系統(tǒng),輕松實(shí)現(xiàn)對(duì)用戶、角色、文件等的基本管理。圖3所示為RBAC用戶權(quán)限設(shè)計(jì)模型。
表1 PTZ控制接口定義
圖3 RBAC用戶權(quán)限設(shè)計(jì)模型
2)操作日志
操作日志主要是根據(jù)用戶不同需求進(jìn)行日志信息,操作信息、異常信息查詢,導(dǎo)出Excel表,同時(shí)定義不同管理權(quán)限的用戶分區(qū)操作。
3)設(shè)備管理
主要是在線搜索設(shè)備、添加、刪除設(shè)備和進(jìn)行通道的配置。在線搜索指通過SDK接口函數(shù)搜索到網(wǎng)絡(luò)中所有IPC設(shè)備,并獲取其屬性;添加設(shè)備則是將IPC設(shè)備的屬性展示到UI層,同時(shí)將IPC與通道節(jié)點(diǎn)綁定;刪除設(shè)備則是與添加設(shè)備相反,即解除與通道節(jié)點(diǎn)的綁定。
圖4是設(shè)備管理和日志管理的實(shí)現(xiàn)效果圖。
2.2.4 數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫的構(gòu)建是ASP.NET架構(gòu)下的監(jiān)控系統(tǒng)的一個(gè)重要組成部分,系統(tǒng)內(nèi)各個(gè)功能模塊都與之有密切關(guān)聯(lián),成功的數(shù)據(jù)庫設(shè)計(jì)能提高系統(tǒng)性能、節(jié)省存儲(chǔ)空間、減少信息冗余,利于后期維護(hù)和擴(kuò)展。本系統(tǒng)通過ADO.NET提供的數(shù)據(jù)連接接口,采用主流的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(Data Base Management System,DBMS),使用SQL Server數(shù)據(jù)庫。
圖4 設(shè)備、日志管理實(shí)現(xiàn)效果圖(截圖)
由于系統(tǒng)有一定規(guī)模,數(shù)據(jù)實(shí)體較多,且關(guān)系比較復(fù)雜,因此本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)重點(diǎn)難點(diǎn)在于切合各個(gè)模塊進(jìn)行分類設(shè)計(jì),比如用戶權(quán)限管理模塊就涉及到3個(gè)數(shù)據(jù)實(shí)體關(guān)系表。數(shù)據(jù)庫設(shè)計(jì)流程主要分為3個(gè)步驟,首先按模塊劃分?jǐn)?shù)據(jù)實(shí)體,理清各個(gè)模塊數(shù)據(jù)實(shí)體關(guān)系網(wǎng),最后設(shè)計(jì)其E-R圖。圖5所示是ASP.NET架構(gòu)下該系統(tǒng)各個(gè)功能模塊的數(shù)據(jù)實(shí)體關(guān)系圖。
圖5 數(shù)據(jù)實(shí)體關(guān)系圖(截圖)
在實(shí)際測(cè)試應(yīng)用中,本系統(tǒng)通過RTP/RTCP協(xié)議實(shí)現(xiàn)了實(shí)時(shí)媒體流的實(shí)時(shí)傳輸,采用H.264編解碼方式對(duì)媒體流進(jìn)行處理,通過集成媒體模塊的ActiveX用戶控件對(duì)實(shí)時(shí)媒體流展示,同時(shí)支持多通道。由于采用ONVIF接口規(guī)范,雖然各個(gè)廠家實(shí)現(xiàn)方式有所不同,經(jīng)過技術(shù)處理,本系統(tǒng)也基本支持ONVIF主流IPC設(shè)備。圖6所示為ASP.NET架構(gòu)下的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的預(yù)覽頁面,通過B/S結(jié)構(gòu)向用戶展示,該頁面主要部分在圖中已標(biāo)出。3路同時(shí)監(jiān)控的實(shí)時(shí)流來自3家不同的IPC生產(chǎn)商。通過測(cè)試,系統(tǒng)性能、效果、兼容性都達(dá)到了最佳化,并且錄像回放功能通過RTSP實(shí)現(xiàn)本地與遠(yuǎn)程媒體流的點(diǎn)播。
圖6 多路實(shí)時(shí)視頻圖(截圖)
該系統(tǒng)是基于ASP.NET架構(gòu)B/S模式的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),采用開放式接口標(biāo)準(zhǔn),實(shí)現(xiàn)了Web客戶端對(duì)IPC設(shè)備的控制和視頻流的網(wǎng)絡(luò)傳輸。同時(shí)繼承了中大型監(jiān)控軟件的特點(diǎn)和功能,具有平臺(tái)無關(guān)性、易擴(kuò)展性、互操作性強(qiáng),配置靈活,兼容性強(qiáng),網(wǎng)絡(luò)傳輸效率高等特點(diǎn)。同時(shí)由于大膽地采用所有功能都通過網(wǎng)頁展示(這是之前國內(nèi)所有廠家未曾嘗試的),更能體現(xiàn)出系統(tǒng)的整體性。用戶只需要一臺(tái)聯(lián)網(wǎng)的計(jì)算機(jī)就可以使用本系統(tǒng),操作方便,用戶感知自然也得到了增強(qiáng),在各個(gè)領(lǐng)域中都能夠得到廣泛的應(yīng)用。
[1]徐飛明.基于ONVIF協(xié)議的NVR軟件平臺(tái)的設(shè)計(jì)與開發(fā)[D].杭州:浙江大學(xué),2012.
[2] Real Time Streaming Protocol(RTSP)[EB/OL].[2013-06-20].http://tools.ietf.org/pdf/rfc2326.pdf.
[3] SENST T,PATZOLD M P,EVANGELIO R H,et al.On building decentralized wide-area surveillance networks based on ONVIF[C]//Proc.Workshop on Multimedia Systems for Surveillance(MMSS)in Communication with 8th IEEE International Conference on Advanced Video and Signal-Based Surveillance.[S.l.]:IEEE Press,2011:420-423.
[4]張文濤,常紅星.基于ASP.NET的B/S架構(gòu)下的項(xiàng)目管理系統(tǒng)的網(wǎng)絡(luò)安全模式設(shè)計(jì)[J].計(jì)算機(jī)科學(xué),2008,35(2):101-103.
[5] ZHANG Yang,LIJieyou,LIZehua,etal.Real-time flood forecasting system based on B/Smode[C]//Proc.International Conference on Management and Service Science,2009.Wuhan,China:[s.n.],2009:1-4.
[6]張宏林.精通Visual C++串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2008.
[7] ONVIF PTZ Service Specification[S].2012.
[8]范明虎,樊紅,伍孝金.ASP.net中基于RBAC的通用權(quán)限管理系統(tǒng)[J].計(jì)算機(jī)工程,2010,36(1):143-145.