徐 潔,張海天
(1.江蘇省生態(tài)環(huán)境監(jiān)控中心,江蘇南京 210036;2.南京云創(chuàng)存儲(chǔ)科技有限公司,江蘇南京 210014)
改革開放以來(lái),環(huán)境保護(hù)部門針對(duì)環(huán)境保護(hù)開展了一系列措施,然而在城市經(jīng)濟(jì)持續(xù)快速增長(zhǎng)和城市化進(jìn)程不斷加快的情況下,部分企業(yè)投機(jī)取巧、打擦邊球,更有甚者只是在環(huán)保部門進(jìn)行企業(yè)檢查時(shí)才搞一些表面工作,給環(huán)境監(jiān)管帶來(lái)困難。目前絕大部分環(huán)保監(jiān)測(cè)系統(tǒng)僅僅實(shí)現(xiàn)了數(shù)據(jù)監(jiān)測(cè)功能,而沒有實(shí)現(xiàn)圖像監(jiān)控功能,無(wú)法直觀的看到排污點(diǎn)的實(shí)際景像。江蘇省生態(tài)環(huán)境監(jiān)控系統(tǒng),不僅能看到各類監(jiān)測(cè)數(shù)據(jù),同時(shí)能看到實(shí)時(shí)的圖像。它的視頻監(jiān)控系統(tǒng),是以環(huán)保部門為中心,相關(guān)排污企業(yè)為支點(diǎn)的基于云計(jì)算的大規(guī)模污染源視頻監(jiān)控系統(tǒng)。
視頻監(jiān)控技術(shù)正在不斷地向前發(fā)展,用戶對(duì)于視頻監(jiān)控產(chǎn)品的要求也在不斷提高,要有著更高清的畫面,更完善的功能,更穩(wěn)定的性能,更豐富的終端等[1]。要實(shí)現(xiàn)大規(guī)模的高清視頻監(jiān)控,就必須從多個(gè)環(huán)節(jié)進(jìn)行全面考慮,如:攝像機(jī)采集視頻信號(hào)的碼率、視頻圖像的編解碼、視頻傳輸?shù)木W(wǎng)絡(luò)、錄像文件的存儲(chǔ)等[2]。但這樣一來(lái),又給整個(gè)系統(tǒng)帶來(lái)了一系列新的問題,如:存儲(chǔ)空間需求量大、傳輸帶寬不足、服務(wù)器性能指標(biāo)壓力、系統(tǒng)可靠性要求驟增等。
傳統(tǒng)視頻監(jiān)控的架構(gòu)如圖1所示,通常采用大量“固件”的形式組合成平臺(tái)。從攝像機(jī)、到硬盤錄像機(jī)、網(wǎng)絡(luò)硬盤錄像機(jī)、視頻切換矩陣、編碼器、解碼器、轉(zhuǎn)碼器、數(shù)字化綜合平臺(tái)、操作切換平臺(tái)、數(shù)字業(yè)務(wù)平臺(tái)、流媒體服務(wù)器等,最后輸出到PC機(jī)、大屏等終端設(shè)備[3]
隨著數(shù)據(jù)量的不斷增長(zhǎng),業(yè)務(wù)場(chǎng)景的不斷變化,傳統(tǒng)架構(gòu)已經(jīng)愈發(fā)不能滿足現(xiàn)有的需求[4],因此,如何將新的技術(shù)融入到監(jiān)控系統(tǒng)中,從而形成一種全新的模式,逐步成為了監(jiān)控行業(yè)的熱門話題。
云計(jì)算的概念最早是由Google公司提出的[5],到目前為止,仍然沒有明確的標(biāo)準(zhǔn)化定義,其概念描述如下:云計(jì)算是分布式計(jì)算技術(shù)的一種,主要通過網(wǎng)絡(luò)將大量服務(wù)器連接在一起,并且將計(jì)算量很大的處理任務(wù)自動(dòng)分為許多個(gè)較小的子任務(wù),再交由這些服務(wù)器所組成的龐大系統(tǒng)進(jìn)行處理,并將結(jié)果返回給用戶[6]。
由此,可以將云計(jì)算應(yīng)用于視頻監(jiān)控,通過采用標(biāo)準(zhǔn)服務(wù)器硬件加軟件的形式,組建成統(tǒng)一的服務(wù)器集群,共同對(duì)外提供視頻監(jiān)控服務(wù)[7]。將云計(jì)算的概念和方法引入視頻監(jiān)控,充分利用“云”的計(jì)算能力和存儲(chǔ)能力,無(wú)論是從系統(tǒng)的架構(gòu)方面,還是可靠性、通用性、兼容性和可擴(kuò)展性等方面都有著巨大的提升[8]。

圖1 傳統(tǒng)監(jiān)控系統(tǒng)架構(gòu)圖
云視頻(Cloud Video,cVideo)監(jiān)控平臺(tái),是在服務(wù)器集群上部署的基于云架構(gòu)的視頻監(jiān)控軟件,其核心內(nèi)容是將海量的前端視頻信號(hào)統(tǒng)一接入,并進(jìn)行實(shí)時(shí)的處理和分析。系統(tǒng)基于云計(jì)算的模式,采取海量分布式云調(diào)度架構(gòu),以集群的形式共同對(duì)外服務(wù),通過合理的云調(diào)度,實(shí)現(xiàn)諸如視頻云端轉(zhuǎn)碼、內(nèi)容識(shí)別、智能分析等需求。最終將處理好的視頻圖像以標(biāo)準(zhǔn)流媒體的格式進(jìn)行輸出,推送給用戶,并提供標(biāo)準(zhǔn)的接口,以供上層應(yīng)用的調(diào)用。
cVideo監(jiān)控平臺(tái)主要由6個(gè)系統(tǒng)模塊組成,分別是:接入模塊、處理模塊、存儲(chǔ)模塊、流媒體模塊、中心調(diào)度模塊和客戶端模塊,如圖2所示。

圖2 系統(tǒng)架構(gòu)圖
接入模塊負(fù)責(zé)實(shí)現(xiàn)各種異構(gòu)前端設(shè)備的接入,同時(shí),對(duì)上層應(yīng)用提供統(tǒng)一的調(diào)用接口。前端設(shè)備主要包括:模擬、網(wǎng)絡(luò)攝像機(jī)、硬盤錄像機(jī)、已有第三方平臺(tái)等??梢詫⒔尤敕?wù)器模塊中交互的內(nèi)容分為數(shù)據(jù)流和信令流,數(shù)據(jù)流向如圖3所示。

圖3 接入模塊數(shù)據(jù)流示意圖
接入模塊所處的位置是介于中心調(diào)度模塊和前端設(shè)備之間,起到了一個(gè)“中間件”的作用,主要用途類似于“語(yǔ)言翻譯”[9],主要負(fù)責(zé)將cVideo平臺(tái)內(nèi)部的控制信息,轉(zhuǎn)化為對(duì)應(yīng)前端設(shè)備可以識(shí)別的控制信息,獲取響應(yīng)后再轉(zhuǎn)變?yōu)槠脚_(tái)內(nèi)部信息。接入模塊珠寶涉及到的內(nèi)容有:前端設(shè)備狀態(tài)監(jiān)測(cè)、攝像機(jī)云臺(tái)控制、前端平臺(tái)通信等,從而實(shí)現(xiàn)cVideo平臺(tái)對(duì)前端設(shè)備的透明接入。
接入模塊運(yùn)行的環(huán)境是Windows操作系統(tǒng),用C語(yǔ)言編寫,程序的流程圖如圖4所示。
當(dāng)接入模塊啟動(dòng)后,首先向中心模塊進(jìn)行注冊(cè),如果連續(xù)3次訪問不成功則認(rèn)為注冊(cè)失敗,程序退出。如果注冊(cè)成功,則程序正式進(jìn)入工作模式。為了保證系統(tǒng)運(yùn)行的穩(wěn)定,并且可以捕獲系統(tǒng)中斷響應(yīng)不會(huì)造成直接終止而導(dǎo)致不必要的問題,接入模塊將消息(Socket)監(jiān)聽[10]和處理任務(wù)放入子進(jìn)程,而父進(jìn)程則負(fù)責(zé)等待和監(jiān)聽系統(tǒng)中斷信息。子系統(tǒng)每捕獲到一個(gè)中心模塊發(fā)來(lái)的消息,則新建一個(gè)子線程與之對(duì)應(yīng)處理,實(shí)現(xiàn)并發(fā)的操作與控制,根據(jù)Socket類型中定義的前端設(shè)備信息,調(diào)用相應(yīng)的SDK訪問該前端設(shè)備,并將返回的信息封裝成平臺(tái)內(nèi)部定義的信息反饋給中心端。

圖4 接入服務(wù)器流程圖
存儲(chǔ)模塊包括存儲(chǔ)客戶端軟件和存儲(chǔ)服務(wù)器集群兩部分。存儲(chǔ)客戶端軟件部署在處理服務(wù)器集群上,由中心服務(wù)器統(tǒng)一調(diào)度,按需求將視頻流按固定的時(shí)長(zhǎng)保持為文件,并通過存儲(chǔ)客戶端寫入存儲(chǔ)集群;存儲(chǔ)服務(wù)器集群為整個(gè)系統(tǒng)提供海量的存儲(chǔ)空間,處理服務(wù)器和流媒體服務(wù)器通過掛載存儲(chǔ)客戶端,即可訪問該存儲(chǔ)空間,從而完成視頻存儲(chǔ)、處理、回放等任務(wù),圖5為存儲(chǔ)模塊的示意圖。
處理模塊由中心云調(diào)度進(jìn)行統(tǒng)一綜合管理,主要負(fù)責(zé)的工作是從接入分析,到數(shù)據(jù)處理,再到結(jié)果分發(fā)這3個(gè)部分,從而完成對(duì)接入視頻的各項(xiàng)處理任務(wù),包括從接入到處理再到存儲(chǔ)及回看等一系列處理任務(wù)的分發(fā)工作。

圖5 存儲(chǔ)模塊示意圖
(1)標(biāo)準(zhǔn)RTSP協(xié)議的視頻流接入:根據(jù)標(biāo)準(zhǔn)RTSP協(xié)議,獲取前端設(shè)備視頻流,同時(shí),實(shí)時(shí)轉(zhuǎn)發(fā)到平臺(tái)內(nèi)的流媒體服務(wù)器上,以供后續(xù)轉(zhuǎn)碼、識(shí)別、存儲(chǔ)等部分的使用。
(2)非標(biāo)準(zhǔn)的視頻流接入:使用廠商提供的協(xié)議接口獲取視頻流,并重新封裝成標(biāo)準(zhǔn)RTSP視頻流,然后通過流媒體服務(wù)器實(shí)時(shí)轉(zhuǎn)發(fā)。
(3)內(nèi)容識(shí)別:智能的內(nèi)容識(shí)別需要消耗大量的CPU和內(nèi)存資源,而通過云計(jì)算的分布式的特點(diǎn)和強(qiáng)大的計(jì)算性能,可以使傳統(tǒng)架構(gòu)下難以實(shí)現(xiàn)的大規(guī)模識(shí)別成為可能。
(4)云端轉(zhuǎn)碼:將視頻轉(zhuǎn)碼放到云端進(jìn)行處理,從而實(shí)現(xiàn)整個(gè)系統(tǒng)內(nèi)的實(shí)時(shí)視頻轉(zhuǎn)碼,以滿足不同用戶對(duì)不同終端,不同分辨率,不同碼流的需求。
(5)視頻數(shù)據(jù)存儲(chǔ)錄像:將處理轉(zhuǎn)換后的標(biāo)準(zhǔn)視頻流進(jìn)行實(shí)時(shí)存儲(chǔ),按時(shí)間段保存為視頻文件并保存到存儲(chǔ)服務(wù)器上,以提供日后回調(diào)查看。
中心調(diào)度模塊主要負(fù)責(zé)整合、調(diào)用系統(tǒng)內(nèi)的其他各個(gè)模塊,用戶通過在終端發(fā)起請(qǐng)求,請(qǐng)求被提交到中心服務(wù)器,中心服務(wù)器調(diào)度管理系統(tǒng)根據(jù)具體的請(qǐng)求調(diào)度系統(tǒng)內(nèi)相應(yīng)模塊的資源對(duì)其進(jìn)行處理,最后將處理好的結(jié)果返回給用戶顯示查看。同時(shí),中心模塊還對(duì)上層應(yīng)用提供了統(tǒng)一接口,大大提高了擴(kuò)展性和伸縮性,更方便其他第三方平臺(tái)的對(duì)接。例如:用戶使用實(shí)時(shí)監(jiān)控功能,前臺(tái)操作后,后臺(tái)通過調(diào)用調(diào)度命令去執(zhí)行視頻轉(zhuǎn)碼任務(wù),任務(wù)結(jié)束后中心服務(wù)器把得到的視頻流的地址返回給客戶端瀏覽器控件,播放器控件則顯示對(duì)應(yīng)的視頻。
中心調(diào)度模塊主要功能和任務(wù)包括了實(shí)時(shí)監(jiān)控、服務(wù)器狀態(tài)監(jiān)控、設(shè)備狀態(tài)監(jiān)控、錄像回調(diào)、設(shè)備管理、用戶管理等,對(duì)應(yīng)的流程如圖6所示。
整個(gè)中心云調(diào)度模塊啟動(dòng)后,會(huì)保持監(jiān)聽Socket消息,根據(jù)不同用戶終端發(fā)來(lái)的不同請(qǐng)求,進(jìn)行相應(yīng)的控制和調(diào)度,并把集群處理后的結(jié)果,或者視頻流地址反饋給對(duì)應(yīng)的用戶終端,給出相應(yīng)的提示,并記錄日志,以后后期查備。

圖6 中心調(diào)度任務(wù)流程圖
流媒體服務(wù)器作為流媒體應(yīng)用的核心系統(tǒng),是視頻監(jiān)控系統(tǒng)向用戶提供視頻服務(wù)的關(guān)鍵模塊。其主要功能是提供RTSP/HTTP流媒體服務(wù),其中RTSP提供實(shí)時(shí)視頻流及錄像回調(diào)視頻流,HTTP則只提供錄像回調(diào)視頻流。
流媒體模塊支持多臺(tái)流媒體服務(wù)器集群化部署,對(duì)外提供負(fù)載均衡的標(biāo)準(zhǔn)RTSP流媒體并發(fā)推流服務(wù),用戶根據(jù)相應(yīng)的流媒體RTSP地址,即可實(shí)時(shí)地獲取系統(tǒng)處理完后的實(shí)時(shí)視頻數(shù)據(jù)和存儲(chǔ)的歷史視頻數(shù)據(jù),以供監(jiān)控和遠(yuǎn)程訪問。模塊輸出為標(biāo)準(zhǔn)RTSP視頻流,通過構(gòu)建流媒體服務(wù)器集群和負(fù)載均衡機(jī)制,使得多臺(tái)流媒體服務(wù)器可以共同對(duì)外提供服務(wù),支持高并發(fā)訪問。
同時(shí),流媒體服務(wù)器也可以提供對(duì)歷史視頻數(shù)據(jù)的流化推送。存儲(chǔ)系統(tǒng)將歷史視頻數(shù)據(jù)保存在cStor存儲(chǔ)集群上,將cStor掛載到流媒體服務(wù)器上,流媒體服務(wù)器就可以像訪問本地文件一樣訪問到cStor上的歷史視頻數(shù)據(jù)。當(dāng)用戶需要查看歷史錄像時(shí),流媒體服務(wù)器可以將這些視頻文件流化,通過RTSP或者HTTP協(xié)議推送給用戶,實(shí)現(xiàn)用戶查看遠(yuǎn)程歷史錄像的需求。
客戶端模塊包括PC終端(支持Linux,Windows,MacOS等主流操作系統(tǒng))、平板電腦終端(支持iOS,Android,Windows等操作系統(tǒng))、智能手持終端(支持iOS,Android等操作系統(tǒng))和監(jiān)控大屏終端。客戶端的功能主要是與用戶交互,對(duì)不同的操作進(jìn)行響應(yīng),如:顯示視頻設(shè)備列表、播放視頻流、與用戶交互云臺(tái)控制、多路視頻播放等。
江蘇省生態(tài)環(huán)境監(jiān)控系統(tǒng)的固定風(fēng)險(xiǎn)源視頻監(jiān)控系統(tǒng),總共使用15臺(tái)服務(wù)器構(gòu)建,其中,用于中心調(diào)度模塊2臺(tái),接入模塊2臺(tái),處理模塊3臺(tái),流媒體模塊3臺(tái),同時(shí)使用了云存儲(chǔ)設(shè)備,以共享掛載盤符的方式,在每臺(tái)服務(wù)器相應(yīng)位置掛載了云存儲(chǔ)空間。接入模塊服務(wù)器使用Windows 2008 Server系統(tǒng),其他服務(wù)器使用Ubuntu 12.04 Server版。接入的前端設(shè)備為江蘇省昆山市千燈鎮(zhèn)工業(yè)園區(qū)內(nèi)一些工廠的50個(gè)高清攝像頭。
cVideo監(jiān)控平臺(tái)實(shí)現(xiàn)對(duì)這50路設(shè)備的透明接入,PC機(jī)監(jiān)控界面如圖7所示。

圖7 PC監(jiān)控界面
同時(shí),為了支持多終端的監(jiān)控,我們也制作了移動(dòng)終端的客戶端,以IPad為例,如圖8所示。

圖8 IPad監(jiān)控界面
在半年的試運(yùn)行期間,監(jiān)控系統(tǒng)的各項(xiàng)服務(wù)運(yùn)行正常,安全可靠,同時(shí),中心任務(wù)調(diào)度分配均勻,其服務(wù)器的負(fù)載非常之低,也就意味著計(jì)算資源的余額十分充足,遠(yuǎn)未達(dá)到上限。
視頻監(jiān)控的發(fā)展速度極快,人們的需求逐步從“看得見”向“看得清”再到“看明白”過度[11],傳統(tǒng)的監(jiān)控模式已然不適應(yīng)需求的發(fā)展。而隨著云計(jì)算技術(shù)的不斷發(fā)展,將云的理念和技術(shù)引入視頻監(jiān)控行業(yè),作為一種全新的解決方案,也愈發(fā)成為了可能。較之傳統(tǒng)監(jiān)控模式,云模式下的視頻監(jiān)控有著無(wú)法比擬的優(yōu)勢(shì):統(tǒng)一的架構(gòu)、異構(gòu)資源的整合、優(yōu)異的可擴(kuò)展性、云轉(zhuǎn)碼和智能分析的靈活性等等?!?831”平臺(tái)的基于云計(jì)算的大規(guī)模污染源高清視頻監(jiān)測(cè)系統(tǒng),正在為江蘇的環(huán)保事業(yè)貢獻(xiàn)自己的一份力量。
[1]原振升,袁華,羅曉奔.視頻監(jiān)控系統(tǒng)中的視頻顯示布局設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)研究與發(fā)展,2005(2):68-77.
[2]LEE Yachun,LIAO Ju,CHENG Huapu,LEE Weisong.A cloud computing framework of free view point real-time monitor system working on mobile devices[J].International Symposium on Intelligent Signal Processing and Communication Systems.2010(2):148-162.
[3]趙涵萍.虛擬存儲(chǔ)在數(shù)字化視頻監(jiān)控系統(tǒng)中的應(yīng)用研究[D].杭州:浙江大學(xué),2007.
[4]許志聞.流媒體網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2004(3):304-307.
[5]劉鵬.云計(jì)算[M].2版.北京:電子工業(yè)出版社,2011.
[6]FOSTER I.,KESSELMAN C,TUECKE S.The Anatomy of the Grid:Enabling Scalable Virtual Organizations[J].International Journal of High Performance Computing Applications,2001(3):200-222.
[7]杜百川.下一代網(wǎng)絡(luò)服務(wù)核心—云計(jì)算[R].北京:IBTC2010論壇,2010:174-192.
[8]MICHAEL A,ARMANDO F,REAN G.Above the Clouds:A Berkeley View of Cloud Computing[M].UC:Berkeley,2009.
[9]MACHE C.Cloud Computing:An Overview[J].ACM Queue,2009(5):3-14.
[10]JEREMIAH.windows平臺(tái)下vlc編譯之十:vlc-1.0.0的編譯[DB/OL].http://jeremiah.blog.51cto.com/539865/178696,2009.
[11]張曉凱.淺談視頻編解碼技術(shù)[DB/OL].http://wenku.baidu.com/view/bf3d32a3b0717fd5360cdcc3.html,2009.