1. 程式人生 > >視頻監控/存儲系統設計要點

視頻監控/存儲系統設計要點

本地 界面 參數 分辨率 預覽 服務 檢測 ipc 前端

視頻監控系統包括以下組成部分:
編號
模塊名稱
功能及備註
1
設備代理
系統與前端設備進行通信
2
報警
接收/存儲報警信息(外部報警)
3
流媒體
轉發視頻流,因為設備並發連接有限,通常配備多個網卡
4
設備接入
前端設備接入系統,一般通過onvif,rtsp或SDK,電力系統有自己的協議
5
存儲
下文將重點描述
6
聯動
包括策略定義域執行
7
Web
跨平臺可采用QtWebkit或mjpeg方式
8
電子地圖
一般支持矢量圖,在地圖上疊加視頻,支持多畫面
9
級聯
多級系統級聯
10
控制服務
雲臺控制和權限管理
11
預覽
客戶端
12
校時
統一設置設備時間

存儲的設計宗旨:即存的下、找得到。做到以下兩點即為合格的存儲:錄像不丟失,快速找得到。

存儲的發展過程:

名稱或組成
位置
結構描述
PC式DVR
前端
在PC上使用板卡接收視頻流,存入本地硬盤
嵌入式DVR
前端
使用專用設備接收視頻流,存入本地硬盤
存儲服務器+IPSAN
後端
集中存儲,1+n模式,服務器收流後再發給IPSAN存儲
管理機+存儲主機
後端
集中分布式存儲,1+n模式,存儲主機收流存儲在IPSAN上,管理機負責分配和統一查詢

存儲的過程:設備接入收流à流媒體分發à寫入磁盤à錄像查詢

存儲設計特點:寫多讀少,易產生磁盤碎片。據經驗,磁盤循環覆蓋3輪,讀寫效率降低80%。
防止磁盤產生大量碎片的方法:
1. 預分配空間:在磁盤中預先分配存儲空間,並在空間中寫滿“垃圾數據”,人為使其成為連續空間。(可以通過“新磁盤初始化”過程實現;或在後臺運行一個低優先級的線程,在空閑時進行預分配,分配完成後線程退出。)
2. 循環利用文件:不刪除老文件,而是將老文件標記為“無效”。磁盤寫滿後尋找“無效文件”,重新寫入。

存儲視頻格式:
可以使用原始格式(前端取來不加轉換)或者統一格式(轉換)。一般建議使用統一格式,以便於其它相關模塊的開發,提升低耦合性和通用型。註意此處轉換不是指轉碼。通常使用PS封裝的H264流。(PS封裝中包含了時間信息)

註意事項:
使用Intel i7處理器和NVIDIA獨立顯卡的PC客戶端,在播放16路1080P視屏時會出現嚴重卡頓。通常解決方案是當顯示路數少時,提升分辨率和碼率;當顯示路數多時,適當降低分辨率和碼率。

關於拉模式和推模式:
通常建議使用拉模式,即獲取視頻流這一操作由後端(客戶端或者存儲主機發起)。這樣方便平臺系統的模塊化,也降低了對前端設備的要求。

存儲模式:
管理機上有一個全局統一的數據庫存放錄像的索引,包括I幀時間戳,事件時標等。
每臺存儲主機上有一個小數據庫,記錄本地存放了哪些錄像文件,每個文件對應哪臺前端設備的哪段時間,哪些文件已被標記“無效”哪個是當前正在使用的文件等。
存儲主機運行時需向管理機上報運行狀態。

分配存儲資源:
支持在界面上指定,由管理機分配哪個IPC存到那個存儲主機上。
存儲主機啟動時向管理機上報資源,管理機根據資源可以自動分配哪些攝像機存到哪臺存儲主機上。

錄像檢索:
查詢時向管理機查詢,管理機將具體查詢的數據定位到某一臺存儲主機上。即用戶不需要關心錄像文件存儲在哪一臺存儲主機中。
錄像查詢方式:
1. 按照攝像機-時間段來檢索:最基本的檢索方式。
2. 按照攝像機-事件標簽來檢索:(準智能檢索)需要檢測並存儲SmartIPC產生的事件標簽,檢索時可根據事件標簽進行。(也支持人工添加自定義標簽)
3. 按照攝像機-內容檢索:即在需要檢索時再調用分析模塊,在分析服務器上設定分析參數,預先把錄像過濾一遍,產生片段後再提交給用戶。(這提供了一種視頻分析的應用新思路!)

容災和異常處理:
目標是在異常情況下保證錄像的完整性。包括3點:即切換、冗余、恢復。
1. 存儲主機可以分為值班機和備用機,可以設置成N+1的形式,當某個值班機宕機時,由管理機發現,並用備用機頂上。
2. 同一臺存儲主機中的多塊硬盤可以設置成N+1的冗余形式,當某個硬盤損壞時,用備用盤頂上。
3. 設備宕機後已存儲數據的恢復,最簡單的方式是使用多副本存儲。
4. 要考慮某些關鍵錄像不可被覆蓋,可以采用數據庫加鎖的形式,或者將關鍵錄像遷移到某一獨立的存儲主機上。
5. 故障恢復後的處理:已升至值班狀態的原備機維持值班狀態。從故障中恢復的原主機作為備機使用。
6. 當發現有IPC、磁盤、存儲主機故障時,需要提醒工作人員處理。

舊系統升級需考慮原有NVR、DVR、外接存儲介質(如SD卡、外接硬盤)的IPC,在現有存儲體系中的地位,納入還是不納入。

其它:
存儲策略:可以根據用戶需求(或向用戶提建議),在存儲時降低幀率。某些畫面相對靜止和光線暗淡的攝像機可采用更低的幀率。
通常情況下,在不考慮主碼流子碼流的情況下,存儲幀率和預覽幀率是統一的。
存儲的數據文件大小不宜過大,經驗采用128MB。
網絡利用率:經驗中,網絡利用率超過50%,畫面會出現明顯問題。
錄像文件的平滑切換:將錄像文件預讀到流媒體中來處理(自己做個實驗試試)。
在大規模分布式存儲系統中,可將存儲主機與設備部署在同一個局域網中,將管理機部署在主站端,以此解決存儲對網絡帶寬的利用問題。

視頻監控/存儲系統設計要點