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的視訊流。
整個架構如下圖所示,分為伺服器端和浏覽器端兩部分。
伺服器端主要由“wsoc_rtsp_proxy”構成,這是一個支援RTSP協定的webscoket代理伺服器。它通過webScoket協定與浏覽器端建立連結,将視訊源發送過來的RTSP控制封包和RTP資料封包轉發到浏覽器端;
浏覽器端主要由“html5_rtsp_player”視訊播放器組成,它的核心部分是實作了“RTSP用戶端側的協定規範”的“Javascript library”。播放器通過websocket協定與伺服器端建立連接配接,接收“wsoc_rtsp_proxy”轉發來的流媒體資料,然後調用“Javascript library”對視訊流進行解碼,最終使用HTML5的“video”标簽實作視訊播放。
目前這種方案對視訊的編碼格式、音頻的編碼格式、流傳輸協定以及浏覽器等都有一定要求,具體如下圖所示:
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以及使用說明一起發送過來。
這個版本的安裝是很友善,具體的安裝說明,如下所示:
- 免費版
免費版在性能上有如下的限制:
“免費版”在ubuntu系統下的安裝是比較友善的,然而在“Centos”系統上的安裝比較麻煩,具體安裝分如下幾步:
1. gcc相關的編譯器2. 編譯安裝gcc5+a) 依賴安裝gcc相關的c編譯器3. 編譯安裝boosta) 依賴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