IP Camera遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
視頻監(jiān)控系統(tǒng)是一個(gè)集計(jì)算機(jī)處理技術(shù)、網(wǎng)絡(luò)通信技術(shù)和數(shù)字音視頻編解碼技術(shù)于一身的綜合系統(tǒng)。作為一種成熟的多媒體應(yīng)用,視頻監(jiān)控逐步走向數(shù)字化、網(wǎng)絡(luò)化、綜合化、無(wú)線智能化的潮流中。
用戶普遍要求訪問(wèn)地點(diǎn)不受地域限制,能隨時(shí)隨地訪問(wèn)被監(jiān)控地點(diǎn),這就要求系統(tǒng)設(shè)計(jì)一個(gè)合理的服務(wù)機(jī)制,能夠?qū)崟r(shí)提供給用戶可靠的服務(wù)。
提出了一種基于流媒體服務(wù)器的遠(yuǎn)程視頻監(jiān)控系統(tǒng),較好地解決了上述問(wèn)題。結(jié)合流媒體技術(shù),就視頻監(jiān)控系統(tǒng)中涉及到的一些關(guān)鍵技術(shù)進(jìn)行討論,并提出實(shí)現(xiàn)方法,最終實(shí)現(xiàn)了該系統(tǒng),取得了較好的應(yīng)用效果。
1 系統(tǒng)整體框架
遠(yuǎn)程視頻監(jiān)控的主要分為3 大部分: 監(jiān)控端、服務(wù)器端和視頻采集端,如圖1 所示,下面將分別介紹各個(gè)部分的功能。
視頻采集端主要由攝像機(jī)、電動(dòng)鏡頭、云臺(tái)、WIFI 模塊、SD 卡等模塊組成,主要負(fù)責(zé)音視頻數(shù)據(jù)的采集和傳輸。主要功能如下: ① 采集編碼部分:將現(xiàn)場(chǎng)采集到的音視頻數(shù)據(jù)進(jìn)行壓縮編碼; ② 數(shù)據(jù)傳輸部分: 將壓縮完成的音視頻數(shù)據(jù)傳送到流媒體服務(wù)器; ③ 移動(dòng)偵測(cè)部分: 進(jìn)行移動(dòng)偵測(cè)的功能,并將移動(dòng)圖像存入到 SD 卡中; ④ PTZ 控制部分: 根據(jù)監(jiān)控端的控制指令,進(jìn)行 PTZ 控制; ⑤ 報(bào)警部分: 完成報(bào)警功能。
圖1 遠(yuǎn)程視頻監(jiān)控整體構(gòu)架圖
服務(wù)器端主要完成音視頻數(shù)據(jù)的分組轉(zhuǎn)發(fā)、視頻數(shù)據(jù)存儲(chǔ)、設(shè)備管理、用戶管理、權(quán)限管理和日志管理等功能。
監(jiān)控端主要實(shí)現(xiàn)視頻監(jiān)控功能,分為 PC 監(jiān)控端和移動(dòng)監(jiān)控端。用戶可以使用任何一臺(tái)聯(lián)網(wǎng) PC機(jī)或者移動(dòng)端當(dāng)做監(jiān)控端,隨時(shí)隨地能調(diào)用本系統(tǒng)各監(jiān)控點(diǎn)的視頻數(shù)據(jù),并進(jìn)行 PTZ 控制。
2 遠(yuǎn)程監(jiān)控系統(tǒng)的實(shí)現(xiàn)
2. 1 服務(wù)器端
服務(wù)器端主要包括流媒體服務(wù)器、Web 服務(wù)器以及存儲(chǔ)管理服務(wù)器。其中流媒體服務(wù)器主要提供視頻直播、點(diǎn)播等功能。Web 服務(wù)器主要提供用戶統(tǒng)一的 Web 頁(yè)面和 Web Service 接口。存儲(chǔ)管理服務(wù)器負(fù)責(zé)視頻數(shù)據(jù)的存儲(chǔ)與調(diào)度。
2. 1. 1 流媒體服務(wù)器
流媒體服務(wù)器的主要功能是以流式協(xié)議( RTSP、MMS、RTMP 等) 將視頻文件以流媒體形式傳輸?shù)娇蛻舳耍┯脩粼诰€觀看; 也可從視頻采集、壓縮軟件接收實(shí)時(shí)視頻流,再以流媒體形式直播給客戶端。流媒體應(yīng)用系統(tǒng)的主要性能取決于流媒體服務(wù)器的性能和服務(wù)質(zhì)量 。因此,流媒體服務(wù)器是流媒體應(yīng)用系統(tǒng)的基礎(chǔ),選擇一款性能優(yōu)越的服務(wù)器是該系統(tǒng)的關(guān)鍵。
Wowza Media Server 是一款高性能、多線程的流媒體服務(wù)器軟件。專為多種終端設(shè)備提供音視頻播放服務(wù),支持 iOS、Windows、Android、BlackMerry 等主流系統(tǒng)的終端設(shè)備,開發(fā)者可以根據(jù)不同的應(yīng)用環(huán)境,選擇 RTSP、RTMP、HTTP Live Streaming 等不同的傳輸協(xié)議; Wowza Media Server 支持 H. 264 編碼標(biāo)準(zhǔn)進(jìn)行封裝的 FLV、MP4、MOV、3GP 等音視頻格式; Wowza Media Server 能夠記錄實(shí)時(shí)流,同時(shí)允許用戶播放、暫停、恢復(fù)和實(shí)時(shí)回放直播流。
Wowza Media Server 提供了強(qiáng)大的接口功能,可以方便實(shí)現(xiàn)二次開發(fā)。在本系統(tǒng)中,流媒體服務(wù)器需要主動(dòng)接收采集端傳輸?shù)囊曨l數(shù)據(jù)實(shí)現(xiàn)直播,并通過(guò)配置命令的形式,對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),該功能的實(shí)現(xiàn)是對(duì) Wowza Media Server 流媒體服務(wù)器一個(gè)擴(kuò)展的過(guò)程,實(shí)現(xiàn)方法如下: ① 攝像頭首先發(fā)送一個(gè)心跳包到流媒體服務(wù)器,表示此時(shí)在線; ② 攝像頭向流媒體服務(wù)器發(fā)送數(shù)據(jù),流媒體服務(wù)器接收到數(shù)據(jù)之后,根據(jù)攝像頭序列號(hào)生成不同的映射文件,并將相應(yīng)的數(shù)據(jù)寫入數(shù)據(jù)庫(kù)。如果攝像頭 IP 地址發(fā)生變化,會(huì)重復(fù)執(zhí)行上述步驟; ③ 流媒體服務(wù)器與存儲(chǔ)管理服務(wù)器交互,對(duì)視頻數(shù)據(jù)進(jìn)行保存。
2. 1. 2 Web 服務(wù)器
Web 服務(wù)器主要提供用戶統(tǒng)一訪問(wèn)入口以及Web Service 接口功能。本系統(tǒng)采用 Struts + Hibernate + Spring 技術(shù),結(jié) 合 ExtJS 框架,開發(fā)了一套Web 工程,實(shí)現(xiàn)了以下幾個(gè)功能: ① 用戶管理: 包括添加、刪除、修改、查詢用戶的功能; ② 權(quán)限管理: 包括添加、刪除、修改、查詢權(quán)限的功能; ③ 設(shè)備管理:包括添加、刪除、修改、查詢攝像頭的功能; 重啟重置攝像頭功能; PTZ 控制功能; ④ 日志管理: 包括用戶所有操作日志存儲(chǔ)以及日志查詢功能; ⑤ 直播列表獲取: 獲取當(dāng)前登陸用戶所有在線攝像頭列表,用于視頻直播; ⑥ 點(diǎn)播列表獲取: 根據(jù)用戶、IP 攝像頭、文件創(chuàng)建日期查詢視頻點(diǎn)播列表,用于視頻點(diǎn)播;⑦ 在網(wǎng)頁(yè)中嵌入 Flash 播放器,用于播放視頻;⑧ 提供移動(dòng)端 Web Service 訪問(wèn)接口,用于移動(dòng)監(jiān)控。
2. 1. 3 存儲(chǔ)管理服務(wù)器
存儲(chǔ)管理服務(wù)器提供對(duì)監(jiān)控系統(tǒng)下各種存儲(chǔ)方案的統(tǒng)一管理,是監(jiān)控綜合平臺(tái)下的存儲(chǔ)系統(tǒng)的管理核心,簡(jiǎn)稱 VRM。VRM 可管理前端設(shè)備存儲(chǔ)、網(wǎng)絡(luò)服務(wù)器存儲(chǔ)、嵌入式服務(wù)器存儲(chǔ)及 iSCSI 直寫存儲(chǔ)等多種存儲(chǔ)方式,并提供了快速高效的錄像數(shù)據(jù)的檢索、回放及備份功能。
VRM 實(shí)現(xiàn)了錄像計(jì)劃的配置、錄像計(jì)劃的同步、錄像數(shù)據(jù)的查詢及回放、網(wǎng)絡(luò)存儲(chǔ)服務(wù)器的管理、IP-SAN 設(shè)備的管理等功能。錄像計(jì)劃的配置、更新和刪除操作均由客戶端發(fā)送信令至 Web 服務(wù)器,再由 Web 服務(wù)器轉(zhuǎn)發(fā)至 VRM,最后由 VRM 依據(jù)存儲(chǔ)類型等分發(fā)至其管理的各個(gè)存儲(chǔ)服務(wù)器。同時(shí) Web 服務(wù)器與 VRM 之間實(shí)現(xiàn)了定時(shí)同步機(jī)制,保證了錄像計(jì)劃的一致性。
客戶端的回放可以從存儲(chǔ)設(shè)備直接取流或者通過(guò) VRM 與流媒體服務(wù)器提供的點(diǎn)播服務(wù)來(lái)進(jìn)行?;胤耪?qǐng)求時(shí),客戶端不用明確了解系統(tǒng)采用的存儲(chǔ)方式,即可實(shí)現(xiàn)對(duì)錄像的查詢與回放,VRM 服務(wù)器為客戶端和存儲(chǔ)設(shè)備之間架起了一座橋梁。
2. 2 Flash Player 實(shí)現(xiàn)
為了減輕監(jiān)控端操作的負(fù)擔(dān),增強(qiáng)系統(tǒng)的可維護(hù)性,本系統(tǒng)中將使用 Flash Player 作為 PC 端的播放器。為了實(shí)現(xiàn)基于 Web 服務(wù)器的 B/S 的監(jiān)控機(jī)制,本系統(tǒng)將監(jiān)控畫面做成 JSP 頁(yè)面,并且把所有網(wǎng)頁(yè)放入 Web 服務(wù)器用于用戶訪問(wèn)。在 JSP 頁(yè)面中必須提供Flash Player 插件的classid 和文件路徑,如果本機(jī)的注冊(cè)表中查找到該 classid,則不必下載。否則必須按照codebase 指定的路徑下載該控件。標(biāo)簽中的 id 是該 Flash Player 對(duì)象的名稱,用于訪問(wèn)和設(shè)置對(duì)象屬性、調(diào)用對(duì)象方法,加載方法如下。< object" width = "636" height = "470" id = " liveOrVOD" align = "middle"classid = "clsid: d27cdb6e - ae6d - 11cf - 96b8- 444553540000 " codebase = " http: / /download. macromedia. com/pub/shockwave/cabs/flash/swflash. cab#version =9,0,0,0”> < /object >。
2. 3 視頻存儲(chǔ)方案實(shí)現(xiàn)
視頻存儲(chǔ)模塊作為本系統(tǒng)的一個(gè)重要環(huán)節(jié),主要負(fù)責(zé)將采集端傳送來(lái)的視頻數(shù)據(jù),根據(jù)用戶工號(hào)、IP 攝像頭編號(hào)、日期等因素存儲(chǔ)起來(lái),以便響應(yīng)客戶端的點(diǎn)播請(qǐng)求。監(jiān)控平臺(tái)系統(tǒng)中常采用的存儲(chǔ)方案有以下4 種: 前端設(shè)備存儲(chǔ)、網(wǎng)絡(luò)服務(wù)器存儲(chǔ)、嵌入式服務(wù)器存儲(chǔ)以及 iSCSI 直寫存儲(chǔ),選擇了 iSCSI直寫存儲(chǔ)。iSCSI 直寫存儲(chǔ)主要有 NAS、SAN、IP-SAN 3 種方式,本系統(tǒng)采用 IP-SAN。IP-SAN 結(jié)合了NAS 與 SAN 的特點(diǎn),實(shí)現(xiàn)了塊級(jí)數(shù)據(jù)在 IP 網(wǎng)絡(luò)上的傳輸。iSCSI 直寫存儲(chǔ)方式是通過(guò)存儲(chǔ)管理服務(wù)器協(xié)調(diào)控制,在IP-SAN 設(shè)備上劃分出指定大小的存儲(chǔ)空間用于音視頻信息保存。流媒體服務(wù)器將采集端傳輸?shù)臄?shù)據(jù)傳送到存儲(chǔ)服務(wù)器,存儲(chǔ)服務(wù)器通過(guò)iSCSI 協(xié)議把音視頻數(shù)據(jù)直接寫到相應(yīng)的存儲(chǔ)設(shè)備中,并把記載有音視頻信息相關(guān)的索引上報(bào)給存儲(chǔ)管理服務(wù)器用于視頻數(shù)據(jù)檢索。該存儲(chǔ)方式只需要存儲(chǔ)管理服務(wù)器協(xié)調(diào),就可以完成視頻數(shù)據(jù)的存儲(chǔ)。iSCSI 直寫存儲(chǔ)流程圖如圖2 所示。
圖2 iSCSI 直寫存儲(chǔ)流程圖
2. 4 監(jiān)控端實(shí)現(xiàn)
遠(yuǎn)程監(jiān)控系統(tǒng)采用流媒體技術(shù),將聲音、影像等媒體信息經(jīng)流媒體服務(wù)器向監(jiān)控端用戶實(shí)時(shí)傳送,在本系統(tǒng)中監(jiān)控端主要分為 PC 端和移動(dòng)端。
PC 監(jiān)控端采用 B/S 結(jié)構(gòu),用戶使用系統(tǒng)自帶的瀏覽器訪問(wèn)本系統(tǒng),由于客戶端需要使用 AdobeFlash Player 播放器,所以PC端只需安裝 AdobeFlash Player 軟件,即可通過(guò)瀏覽器訪問(wèn)該系統(tǒng)。
移動(dòng)監(jiān)控端采用C/S 結(jié)構(gòu),通過(guò)Web Service 接口獲得數(shù)據(jù),實(shí)現(xiàn)移動(dòng)監(jiān)控。該客戶端主要由通訊模塊,解碼模塊以及視頻顯示模塊構(gòu)成。其中通訊模塊用來(lái)接收來(lái)自 Web 服務(wù)器返回的 json 數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解析,將數(shù)據(jù)顯示到客戶端。視頻解碼模塊通過(guò)移植 vlc 源代碼,實(shí)現(xiàn) H. 264 解碼,最后將解碼后的視頻數(shù)據(jù)顯示在屏幕上實(shí)現(xiàn)監(jiān)控的目的。
3 結(jié)束語(yǔ)
實(shí)現(xiàn)了基于流媒體技術(shù)的遠(yuǎn)程視頻監(jiān)控系統(tǒng),它采用計(jì)算機(jī)多媒體技術(shù)、數(shù)字視頻處理技術(shù)、網(wǎng)絡(luò)通信技術(shù)和音視頻編解碼技術(shù),以計(jì)算機(jī)或移動(dòng)端為平臺(tái),以磁盤陣列為存儲(chǔ)介質(zhì),實(shí)現(xiàn)音視頻信號(hào)的實(shí)時(shí)采集、存儲(chǔ)以及播放功能,打破了傳統(tǒng)監(jiān)控系統(tǒng)的限制。
隨著技術(shù)以及業(yè)務(wù)的不斷發(fā)展,基于流媒體技術(shù)的視頻監(jiān)控系統(tǒng)對(duì)傳輸質(zhì)量、傳輸速度以及其他各方面的要求更高。如何更好地綜合利用網(wǎng)絡(luò)通信、編解碼技術(shù)在大規(guī)模訪問(wèn)中進(jìn)行資源調(diào)度與管理,是本文需要進(jìn)一步研究的目標(biāo)。