一、介紹
28181協議全稱為GB/T28181《安全防范視頻監控聯網系統信息傳輸、交換、控制技術要求》,是由公安部科技信息化局提出,由全國安全防范報警系統標准化技術委員會(SAC/TC100)歸口,公安部一所等多家單位共同起草的一部國家標准(以下簡稱28181)。28181協議在全國平安城市、交通、道路等監控中廣泛采用,若想做統一的大監控平台,則支持28181協議接入是必不可少的。
LiveGBS是基於GB28181,為了滿足可以集中統一管理和觀看所有攝像頭、硬盤錄像機等設備而設計的,將傳統安防攝像頭實現Web端無插件播放。
二、功能介紹
- 提供用戶管理及Web可視化頁面管理;
- 提供設備狀態管理,可實時查看設備是否掉線等信息;
- 實時流媒體處理,PS(TS)轉ES;
- 實時快照、視頻數據獲取;
- 設備狀態監測;
- 雲台控制;
- 錄像檢索、回放;
- 提供RTMP、HTTP-FLV、HLS等多種協議流輸出;
- 對外提供服務器獲取狀態、信息,控制等HTTP API接口;
三、系統架構
LiveGBS實現了從安防設備(IPC、NVR…)到可以互聯網直播的一條通道。滿足客戶使用的同時提供了標准的RESTful API接口,供用戶集成開發。
如下是LiveGBS的架構圖:
3.1、展現層
Web前端
基於HTML/HTML5/Vue/CSS3開發web前端頁面,兼容主流瀏覽器。展現層和數據層完全分離,通過跨域實現前后端數據通信。
Web播放器
自己封裝的一套集Video.js、Flash、flv.js與一體,並優化了一些性能問題,增加了截圖、自適應寬高、極速/流暢模式切換等功能,同時提供對應調用接口。
Restful接口
基於特定業務,采用Restful標准接口,對外提供數據服務。
3.2 服務層
服務層按照功能模塊划分為信令管理服務LiveCMS和流媒體管理服務LiveSMS兩個核心模塊。
LiveCMS
LiveCMS負責IPC、NVR、視頻平台等設備接入管理的同時,提供與用戶交互的功能,響應所有用戶的請求。有用戶權限管理,對於設備端操作的權限管理等。
- LiveCMS與設備之間通過GB28181協議保持注冊與交互,包括設備注冊、雲台控制等;
- LiveCMS與用戶之間通過自動的Web界面或Restful接口完成客戶請求;
- LiveCMS從Redis數據庫檢索所有設備狀態以及LiveSMS的狀態;
- LiveCMS通過SIP信令通知LiveSMS開始處理流數據;
LiveSMS
LiveSMS是接收設備端PS視頻流數據並轉成ES流,然后打包成RTMP、HTTP-FLV、HLS直播流進行分發。當一台LiveSMS服務器性能不夠時,可以采用LiveSMS集群部署。
每個LiveSMS從啟動開始都會向同一個Redis中更新自己的配置、負載、以及自己當前處理的流的狀態信息。LiveCMS在接收到用戶請求時會從Redis中獲取所有LiveSMS的信息,選擇合適的LiveSMS來處理當前的請求。
- LiveSMS接收設備的PS流后,Demux成ES流
- 使用ES流可以保存圖片
- ES流推送給自身的流媒體分發服務器,分發出RTMP、HLS、FLV、RTSP流, 同時可以推送給用戶自定義的CDN等流媒體服務。
LiveSMS中包含的流媒體分發服務相比普通的流媒體直播服務增加了對於各種視頻流的兼容、HTTP-FLV的支持、流信息統計、緩存的控制等。同時對於需要RTSP流的用戶,可擴展RTSP轉發服務。
后期擴展
LiveGBS已經滿足絕大部分場景下關於GB28181設備的接入和訪問。
LiveGBS開放了所有功能的API接口,可擴展接入到統一的雲平台來管理和訪問所有現場的LiveGBS。