用戶普遍要求訪問地點(diǎn)不受地域限制,能隨時(shí)隨地訪問被監(jiān)控地點(diǎn),這就要求系統(tǒng)設(shè)計(jì)一個(gè)合理的服務(wù)機(jī)制,能夠?qū)崟r(shí)提供給用戶可靠的服務(wù)。
提出了一種基于流媒體服務(wù)器的遠(yuǎn)程視頻監(jiān)控系統(tǒng),較好地解決了上述問題。結(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)警功能。
服務(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 頁面和 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)直播,并通過配置命令的形式,對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),該功能的實(shí)現(xiàn)是對(duì) Wowza Media Server 流媒體服務(wù)器一個(gè)擴(kuò)展的過程,實(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)一訪問入口以及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)頁中嵌入 Flash 播放器,用于播放視頻;⑧ 提供移動(dòng)端 Web Service 訪問接口,用于移動(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è)備直接取流或者通過 VRM 與流媒體服務(wù)器提供的點(diǎn)播服務(wù)來進(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 頁面,并且把所有網(wǎng)頁放入 Web 服務(wù)器用于用戶訪問。在 JSP 頁面中必須提供Flash Player 插件的classid 和文件路徑,如果本機(jī)的注冊(cè)表中查找到該 classid,則不必下載。否則必須按照codebase 指定的路徑下載該控件。標(biāo)簽中的 id 是該 Flash Player 對(duì)象的名稱,用于訪問和設(shè)置對(duì)象屬性、調(diào)用對(duì)象方法,加載方法等。