RTSP WebRTC 折騰


公司趁着疫情做了款熱成像攝像頭,需要做個客戶端來播放熱成像畫面和記錄體溫等等。

因為項目急用的是electron+EasyPlayer的方案 用electron來實現界面,EasyPlayer播放RTSP流。

EasyPlayer疊加在electron上,設置窗體為WS_EX_NOACTIVATE  這樣就不會獲得焦點,還能處理鼠標點擊,electrion最小化 失焦時還要隱藏EasyPlayer

兩個程序通信使用JsonRpc,微軟給提供了C#的實現https://github.com/Microsoft/vs-streamjsonrpc

不過最終目標還是想實現網頁播放rtsp,所以找到了兩個方案 RTSP轉WebRTC和RTSP WebSocket MSE實現

https://github.com/deepch/RTSPtoWebRTC RTSP轉WebRTC

https://github.com/deepch/RTSPtoWSMP4f  RTSP WebSocket MSE實現

 

先研究的RTSP轉WebRTC,這個項目使用Go語言實現,又要學習新語言了。。。

首先clone下來

git clone --depth=1 https://github.com/deepch/RTSPtoWebRTC.git

第一次運行提示 Session Description must not be empty 

排查代碼應該是stun服務器連不上 刪掉/web/static/js/app.js第二行的stun:stun.l.google.com:19302

http.go里也有一個,刪之。

 

再運行發現一直加載出不來畫面,這個問題困擾了好幾天,排查代碼是RTSP協議發送完PLAY命令了始終收不到數據

調試到/github.com/deepch/vdk/format/rtsp/client.go 的readPacket()中 卡在了poll()函數上

最后終於發現換個rtsp服務器就好了,之前用VLC編的RTSP流無法播放,但用VLC播放沒問題。

 

更新下 已經調通了監控攝像頭,要求設置為H264 HIGH Profile 不然報SPS PPS錯誤

另外SDP解析也有問題 無法識別m=application

瀏覽器版本也有要求 chrome 72以上 跟webrtc的plan-b和unified-plan有關

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM