https://blog.csdn.net/weixin_42538493/article/details/106113325
最近因為項目需要,預研了一下rtsp視頻流在web上通過H5播放的解決方案,通過搜索和整理,最終確定一個比較理想且實現較為簡單的方案:websocket rtsp proxy + streamdian.js播放器組合;
1、H5播放器使用開源的streamdian.js,該公司開源了播放器,不過只實現了aac+h264視頻流的解碼,對於大多數應用場景來說,基本夠用;
2、streamdian公司發布的后端websocket rtsp proxy是收費的,根據媒體代理數進行計費,計費單位$,對我大天朝來說,有些貴了,不過這個東東並不復雜,完全可以自己實現,進行替換;
好了,廢話不多說,直接上干貨,為了實現websocket rtsp proxy服務器,首先需要實現一個websocket proxy,github上直接找到代碼:ws-tcp-proxy項目;然后將它改造成websocket rtsp proxy,如果對rtp over rtsp媒體傳輸方式比較熟悉的話,實現起來也比較容易;最后需要搭建webServer並且支持反向代理即可,這里采用Nginx來搭建;
完成了上述開發后,經過驗證,自己開發的websocket rtsp proxy可以完美替換收費的streamdian服務器,播放器采用streamdian.js開源免費播放器;完整的代碼在文末給出,並對代碼做一些必要說明:
1、本代碼僅是demo代碼,僅僅實現了方案驗證,本人不對因代碼開源可能產生的任何商業糾紛負法律責任;
2、demo代碼可分別在Windows和Linux上編譯和運行;默認給出了Windows版本,如果需要在Linux上運行,則需要在Linux上編譯wsp即可,Nginx也安裝一個Linux版本,將Nginx配置文件和頁面復制過去即可,我分別在Windows server 2019和CentOS7.5上驗證了可以穩定運行;
3、如果你想將它應用於你的商用項目,你可能需要優化wsp(websocket rtsp proxy)服務器,解決可能的內存泄漏問題,以及實現多線程,當然多進程也可以;因為我的商用版本代碼不能上傳到這里,^v^。
4、使用方法:直接解壓后,啟動Nginx.exe和wsp.exe即可,無需啟動參數,瀏覽器打開:http://127.0.0.1:8088,頁面上輸入rtsp的url,點擊播放;
5、注意事項:
5.1、播放器僅支持aac、h264編碼格式,其他格式的話,需要自己擴展streamdian.js播放器,后續我們可能會擴展支持h265、mpeg-ps;
5.2、如果播放失敗,請將index.html文件中的localhost改成你Webserver的ip地址;
下載地址:
點擊下載
————————————————
版權聲明:本文為CSDN博主「覓光者」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_42538493/article/details/106113325