最近關注GB28181的朋友很多,昨天有位朋友問到GB28181出内網的問題,希望我花5分鐘的時間
講講如何通過GB28181協定将内網的錄影機視訊推送到公網。要說清楚這個問題,5分鐘的時間應該不
夠,還是寫篇文章跟大家分享下。
說這個問題之前,我想先聊聊GB28181協定,首先我們需要了解的是GB28181是應用層協定,而
不是傳輸層協定。所謂應用層協定說簡單點就是發送方跟接收方商議怎麼協作:比如第一個信令由誰
發起,視訊流的采用什麼封裝格式,什麼時候開始推送視訊,什麼時候結束推送等等。GB28181協定
規定下級(也可以了解為用戶端)首先向上級(服務端)注冊,這一點讓内網錄影機裝置通過GB281
81協定主動推送視訊到公網有了可能性。區域網路的錄影機裝置隻有内網IP,公網下的服務無法主動找
到錄影機裝置,然公網下的服務有公網IP,内網中的錄影機通過路由轉換最終可以将注冊資訊發送給公
網下的服務(這一點rtsp協定是做不到的,rtsp協定規定首先得服務端向用戶端發送指令,是以内網攝
像機裝置通過rtsp協定主動推送視訊到公網是行不通,通過在内網部署流媒體服務主動推送視訊流到公
網可行,代價是增加一台伺服器)。
用戶端裝置已經注冊上來了,接下來服務端要做的事情是查詢裝置資訊以及發起視訊流請求指令。
用戶端裝置跟服務端在同一個區域網路時,服務端發送的查詢及請求指令的目的位址直接填寫用戶端裝置
的IP及Port即可;用戶端裝置在内網服務端在公網時服務端發送指令的目的位址該填什麼呢?直接填客
戶端裝置的内網IP及Port?顯然不正确,身在公網的服務根本不知道用戶端裝置内網IP + Port家住何方,
哪一條路可以抵達。服務端要想将指令成功發送給用戶端裝置必須得找到合适的路徑(路由路徑)。
合适在路徑在哪,錄影機裝置注冊到服務端會産生一條從内網裝置到公網服務的路徑,服務端沿着這
條路徑下發指令即可将指令發送給内網用戶端裝置。服務端并不用關心這條路徑的所有節點,隻要将
目的位址的IP及Port設定為裝置注冊上來時公網測的IP及Port即可。
如需交流,可以加QQ群1038388075,766718184,或者QQ:350197870
部落客提供Ffmpeg、GB28181視訊教程
播放位址: http://www.iqiyi.com/u/1426749687
源碼及Demo下載下傳位址:http://www.chungen90.com/?news_34/
視訊下載下傳位址: http://www.chungen90.com/?news_33/