實作國标GB28181流媒體服務解決方案
背景
28181協定全稱為GB/T28181《安全防範視訊監控聯網系統資訊傳輸、交換、控制技術要求》,是由公安部科技資訊化局提出,由全國安全防範報警系統标準化技術委員會(SAC/TC100)歸口,公安部一所等多家機關共同起草的一部國家标準(以下簡稱28181)。
28181協定在全國平安城市、交通、道路等監控中廣泛采用,若想做統一的大監控平台,則支援28181協定接入是必不可少的。如今很多客戶都是想在之前使用的28181平台的基礎上進行拓展。
說明
LiveGBS流媒體伺服器是LiveQing提供的流轉發服務,負責将GB28181裝置/平台推送的PS流轉成ES流,然後提供RTSP、RTMP、FLV、HLS多種格式進行分發,實作web浏覽器、手機浏覽器、微信、PC用戶端等各終端無插件播放。
同時,LiveGB流媒體伺服器對外提供HTTP API接口,通過接口可以獲知流媒體轉發服務的運作狀态資訊,轉發會話資訊,伺服器配置和版本資訊等;
LiveGBS GB28181流媒體伺服器提供以下功能:
- 接受和處理GB28181接入伺服器的推流請求;
- 接受和處理GB28181裝置的推流;
- 接受和處理GB28181接入伺服器的斷開推流請求;
- 實時流媒體處理,PS(TS)轉ES;
- 實時快照、視訊資料擷取;
- 裝置狀态監測;
- 雲台控制;
- 錄像檢索、回放;
- 提供RTSP、RTMP、HTTP-FLV、HLS等多種協定流輸出;
- 音視訊轉碼;
- 對外提供伺服器擷取狀态、資訊,控制等http API接口;

流媒體點播詳細流程
LiveGBS分為接入管理服務LiveSIPCMS和流媒體服務LiveSIPSMS。
1 接入伺服器LiveSIPCMS發送Invite請求
接入伺服器LiveSIPCMS向流媒體伺服器LiveSIPSMS發送Invite請求,請求流媒體服務傳回攜帶SDP 消息體,消息體中
描述了媒體伺服器LiveSIPSMS接收媒體流的IP、端口、媒體格式等内容;
Invite請求代碼如下:
2 流媒體服務LiveSIPSMS接受Invite請求處理并ACK應答
我們在SDP消息體中提供了兩種流傳輸方式,分别是TCP和UDP,通過Invite請求所帶的 “rtpovertcp ”參數來控制,TCP方式因為其不丢包的傳輸方式在GB28181裝置推流到公網伺服器的方案中得以廣泛應用.
3 接入伺服器接收ACK應答并Invite請求裝置開始推流
在InviteDevice請求完成後,我們在傳回Response處理過程中做過一次特殊處理,即:如果TCP拉流時發現裝置拉流應答中傳回其推流模式依然是’RTP/AVP’的UDP模式,我們認為其裝置不支援TCP模式,進而向上層傳回700,不支援的流媒體傳輸方式。
4 Invite裝置正常傳回200應答并傳遞給流媒體伺服器
5 流媒體服務接受拉流請求成功應答
至此,整個拉流過程已經完成,成功通過LiveGBS流媒體軟體,使用GB28181協定擷取到監控的視訊流轉成可以在物聯網上直播的RTSP、RTMP、HTTP-FLV、HLS格式。