天天看點

如何搭建一套能夠同時支援RTMP和國标GB28181視訊伺服器

之前的《雲、邊、端方案中視訊裝置直接上雲的兩種協定選擇:RTMP or GB28181》中,我們分别描述了RTMP協定和國标GB28181協定在各種場景中的應用方法,在視訊“雲、邊、端”的大架構中,我們極力推薦同時采用RTMP和國标GB28181協定,因為RTMP效果好,GB28181通用、可控;

視訊“雲、邊、端”首要的是要遵循公式:

RTMP+GB28181的優勢

RTMP協定本身就是一種直播協定,從裝置端的角度來說,可以不受控制,不間斷地往平台上推流或者重連推流,不影響錄影機本身的其他業務,而GB/T 28181協定是一種按需協定,就是流媒體過程會有啟/停,那麼,這樣兩種協定,本身是可以共存的;

平台如果能夠同時支援RTMP協定和GB28181協定,那麼,對于RTMP直播,平台可以通過閥門開關的形式,開啟/關閉推流通道,來控制推流直播,這樣既能做到按需直播(有人看才跑流量),又能做到較好的直播效果;同時,平台支援GB28181協定,在平台側,裝置可控、可配置,而且能夠多一種視訊傳輸通道,達到雙保障的目的;

RTMP + GB28181平台技術

那麼,如何在技術上建立這樣一款既能支援RTMP推流進來,又能夠支援GB28181裝置接入的平台呢,我們大概分析了一下:

  • 基礎的還是需要一款RTMP流媒體服務:能夠将推流來的RTMP流轉化成為全平台以及各種行業場景需要的RTSP、RTMP、HTTP-FLV、HLS(m3u8)、WebSocket流,這是整個流媒體服務的核心部分,我們稱為:EasyCVR-RTMPServer-Module,同時,我們需要接入GB28181裝置以及解析各種裝置和用戶端的指令,我們稱之為:EasyCVR-GBSIP-Module,另外,我們在接收到裝置傳輸來的RTP流媒體資料時,我們還需要對資料進行轉化,将PS資料轉為ES再推送到EasyCVR-RTMPServer-Module做多終端的輸出,我們稱之為:EasyCVR-GBRTP-Module,整個流程大概為:

支援RTMP & GB28181的平台

我們設計EasyCVR的初衷,就是為了建立一個大而全的流媒體平台,能夠将RTMP、GB28181、RTSP、Onvif、SDK,都能融合進來,這樣就能夠一套系統,滿足各種各樣的應用場景,融合多種類型的裝置,那麼單對于這裡描述的RTMP + GB28181的功能,在EasyCVR系統中,就相當于兩條完全獨立的管理通道,再通過上層邏輯加以串聯,就能做到非常好的直播與控制的相關;

後續我們将逐漸對EasyCVR的技術特點進行介紹,包括如何設計RTMPModule、SIPModule、RTPModule之間的組合與複用,達到多種協定接入、統一輸出的目标。

如何搭建一套能夠同時支援RTMP和國标GB28181視訊伺服器

繼續閱讀