天天看點

html5 + websocket_rtsp_proxy 實作視訊流直播1      方案介紹2      安裝指南3     參考

1      方案介紹

web頁面上播放RTSP視訊流,通常可以采用“jwplayer +ffmpeg+red5”的方案,由于這種方案首先将RTSP協定對應的視訊流轉碼成RTMP協定的視訊流,是以延遲通常會很高。為了降低直播的延遲,最好直接能直接在頁面上播放RTSP協定的視訊流。

在https://github.com/Streamedian/html5_rtsp_player提供了一種“html5_rtsp_player + websock_rtsp_proxy”的技術方案,可以通過html5的video标簽直接播放RTSP的視訊流。

整個架構如下圖所示,分為伺服器端和浏覽器端兩部分。

html5 + websocket_rtsp_proxy 實作視訊流直播1      方案介紹2      安裝指南3     參考

伺服器端主要由“wsoc_rtsp_proxy”構成,這是一個支援RTSP協定的webscoket代理伺服器。它通過webScoket協定與浏覽器端建立連結,将視訊源發送過來的RTSP控制封包和RTP資料封包轉發到浏覽器端;

浏覽器端主要由“html5_rtsp_player”視訊播放器組成,它的核心部分是實作了“RTSP用戶端側的協定規範”的“Javascript library”。播放器通過websocket協定與伺服器端建立連接配接,接收“wsoc_rtsp_proxy”轉發來的流媒體資料,然後調用“Javascript library”對視訊流進行解碼,最終使用HTML5的“video”标簽實作視訊播放。

目前這種方案對視訊的編碼格式、音頻的編碼格式、流傳輸協定以及浏覽器等都有一定要求,具體如下圖所示:

html5 + websocket_rtsp_proxy 實作視訊流直播1      方案介紹2      安裝指南3     參考

2      安裝指南

2.1        浏覽器端安裝說明

1.      需要安裝nodejs 和npm;

2.      npm方式下載下傳安裝html5_rtsp_player

a)       依賴安裝npm指令

b)       依賴安裝git指令

3.      安裝rollup指令

a)       依賴安裝npm指令

4.      用戶端js 腳本生成(proxy代理伺服器位址配置)

執行rollup指令

a)       依賴安裝bp_event

b)       依賴安裝bp_logger

c)       依賴安裝bp_statemachine

d)       依賴安裝rollup-plugin-buble

e)       依賴安裝rollup-plugin-alias

2.2        伺服器端“wsoc_rtsp_proxy“安裝說明

  伺服器端的“wsoc_rtsp_proxy“有“License”版本和”免費”版本兩種。

  • License版

通過官網“ http://streamedian.com” 上的郵箱和外國友人溝通,可以購買具備License版的“wsoc_rtsp_proxy “。成功付款以後,外國友人會通過郵箱将對應的”産品”、license以及使用說明一起發送過來。

這個版本的安裝是很友善,具體的安裝說明,如下所示:

html5 + websocket_rtsp_proxy 實作視訊流直播1      方案介紹2      安裝指南3     參考
  •  免費版
免費版在性能上有如下的限制:
html5 + websocket_rtsp_proxy 實作視訊流直播1      方案介紹2      安裝指南3     參考
“免費版”在ubuntu系統下的安裝是比較友善的,然而在“Centos”系統上的安裝比較麻煩,具體安裝分如下幾步:
1.      gcc相關的編譯器
2.      編譯安裝gcc5+
a)       依賴安裝gcc相關的c編譯器
3.      編譯安裝boost
a)       依賴gcc5+
b)       依賴安裝(bzip2-devel)
c)       依賴安裝(python-devel)
4.      dpkg 方式安裝streamedian_proxy.deb (依賴安裝dpkg指令)

3     參考

1.   官網

https://streamedian.com/ 
https://github.com/Streamedian/html5_rtsp_player

2.   boost裝參考

http://blog.csdn.net/sinat_23857245/article/details/45225147
http://blog.csdn.net/ahbbshenfeng/article/details/52077393

3.   gcc安裝參考

http://www.linuxidc.com/Linux/2016-03/129695.htm

4.    nodejs安裝和npm參考

https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora
http://blog.csdn.net/xiao_jun_0820/article/details/50838185 

5.   rollup 安裝參考

https://rollup.bootcss.com/
https://rollupjs.org/#getting-started-with-plugins

繼續閱讀