2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

基于RTMP協議的橋梁視頻監控關鍵技術研究

來源:期刊VIP網所屬分類:計算機網絡時間:瀏覽:

  摘 要:文中針對視頻監控信號對網絡帶寬要求高,難以通過公網遠程傳輸等問題,提出了基于RTMP協議的實時視頻遠程傳輸解決方案,通過開發視頻轉換軟件將橋梁現場視頻信號轉換為RTMP碼流,并將其推流至云平臺端搭建的Nginx流媒體服務器上。客戶端通過開發Web端和安卓移動視頻播放軟件,實現了橋梁視頻監控信息的跨平臺展示應用,提升了橋梁安全的實時監管能力。

  關鍵詞:RTMP協議;流媒體;Nginx服務器;Web;編碼技術;視頻監控

物聯網技術

  0 引 言

  近年來,隨著我國交通基礎設施建設的跨越式發展,各類跨江跨海大橋建立的健康監測系統逐漸成為保障橋梁安全的重要手段。視頻監控憑借技術成熟,監測方式直觀可靠等優點已成為橋梁健康監測系統的標配。但視頻信號相較數字類監測信號對網絡帶寬要求較高,常出現卡頓、掉幀等問題。同時考慮橋梁現場惡劣的工況及數據安全要求,導致目前只能采用高速光纖專網實現視頻信號的局域網傳輸,大大限制了網絡傳輸距離和應用范圍。

  本文提出了一種基于RTMP(Real Time Messaging Protocol,RTMP)協議的視頻監控數據遠程傳輸方案,在不改變橋梁監測系統網絡架構的基礎上,實現了視頻監控信號的遠程傳輸和多平臺展示應用[1-2]。

  1 編碼協議簡介

  1.1 RTMP協議

  RTMP協議是一種進行實時數據通信的網絡協議,主要用來在支持Flash/AIR平臺和支持RTMP協議的流媒體服務器之間進行音視頻數據通信[3-4]。

  RTMP協議是建立在TCP協議之上的應用層協議,其數據包由一個固定長度的包頭和最大長度為128 B的包體組成。RTMP協議數據包格式如圖1所示。

  協議包頭中MessageType為消息類型,PayloadLength為報文長度,TimeStamp為消息時間戳,StreamID為視頻流ID。協議包體主要由基本消息頭(ChunkBasicHeader)、負載消息頭(ChunkMessageHeader)、擴展時間戳(ExtendedTimeStamp)和消息塊數據(ChunkData)組成。

  為保證在低網絡帶寬下視頻流的傳輸,在RTMP協議下視頻消息塊被拆分為若干個小的數據塊,各數據塊通過ChunkMessageHeader消息頭可重新組裝成完整的消息塊。數據采集端將視頻流分割成較小的數據塊后以TCP協議發送至服務器端,客戶端獲取服務器端數據塊后重新將其組裝成完整的視頻消息塊,實現視頻流的流暢播放,從而解決了低帶寬情況下的視頻延遲和卡頓問題。

  1.2 H.264編碼技術

  H.264是當前一種主流的視頻壓縮編碼標準。與H.261,H.263等視頻編碼標準相比,H.264協議采用DCT變換編碼加DPCM差分編碼,并融合了運動估計、多幀預測、基于內容的變長編碼等先進技術,使其編碼壓縮效率大幅提升,進而有效提升視頻質量及其網絡適應能力。

  H.264協議為解決不同應用中網絡傳輸的差異問題,在架構層面定義了兩個層級。

  (1)視頻編碼層(VCL):通過視頻信息的編碼,實現視頻內容的高效展示;

  (2)網絡提取層(NAL):判斷當前網絡環境,并采用相應的提取算法打包和傳輸視頻數據。

  H.264編碼架構如圖2所示。

  2 總體技術路線

  本文結合以往項目經驗,提出基于RTMP協議的視頻監控信號的遠程傳輸方案,總體技術路線如下:

  (1)橋梁現場視頻攝像機將采集的原始視頻流數據通過光纖內網傳輸到監控中心的視頻處理服務器;

  (2)自主開發RTMP碼流轉換軟件并將其部署在視頻處理服務器上,將橋梁現場傳輸的原始視頻信號轉換為RTMP碼流,并通過加密公網將RTMP信號推流至具有公網IP的云服務器端;

  (3)在云服務器端部署并配置Nginx流媒體服務Server端,實現RTMP視頻數據的中繼轉換功能;

  (4)在客戶端開發基于Web端和安卓移動端的視頻播放軟件,從Nginx服務器獲取并展示視頻信號,實現橋梁視頻監控信息的實時展示[5-6]。

  RTMP視頻監控網絡架構如圖3所示。

  3 關鍵技術研究

  3.1 RTMP碼流轉換開發

  目前主流的RTMP碼流轉換方法是采用FFmpeg將RTSP視頻信號轉換為RTMP流媒體信號,但FFmpeg存在丟包率高、多路信號傳輸支持性差等缺點。

  經過多方比選驗證,本文最終采用EasyRTMP直播組件進行二次開發,該組件集成了RTMP基本協議與異步推送、環形緩沖區、網絡擁塞自動丟幀、事件回調、緩沖器、關鍵幀檢索等功能,可兼容市面上大部分RTMP流媒體服務器。

  EasyRTSP直播組件具有Windows,ARM,Linux等不同跨平臺版本[7-8]。實際開發中采用C++語言引用EasyRTSPClient.dll類庫編寫視頻流接收及RTMP轉換功能,其代碼邏輯流程如圖4所示。

  本模塊通過RTSPSourceCallback回調函數不斷監聽視頻數據,當監聽到數據類型為EASY_SDK_VIDEO_FRAME_FLAG時,啟動RTMP碼流轉換代碼塊,其處理核心邏輯代碼如下:

  if(_mediatype== EASY_SDK_VIDEO_FRAME_FLAG)

  {

  pChannel->fPusherInfo.rtmpHandle= EasyRTMP_Create();1 [2]

  推薦閱讀:物聯網技術計算機信息化論文投稿

主站蜘蛛池模板: 毕节市| 论坛| 东乡| 潼关县| 大宁县| 无锡市| 大埔区| 大悟县| 拉孜县| 古交市| 弥渡县| 壶关县| 抚顺市| 普宁市| 象州县| 穆棱市| 嘉祥县| 闽侯县| 安义县| 平远县| 永登县| 衡南县| 凤冈县| 汝阳县| 泸西县| 库尔勒市| 和龙市| 松桃| 乌海市| 陇南市| 朝阳市| 吴江市| 鹿邑县| 涟水县| 孝昌县| 璧山县| 万荣县| 元阳县| 定结县| 通州区| 昂仁县|