【開源技術分享】無需流媒體服務,讓瀏覽器直接播放rtsp/rtmp的神器:EasyMedia


不同於市面上其他需要各種轉發到流媒體服務的中間件來說,EasyMedia不需要依賴任何nginx-rtmp,srs,zlmediakit等等第三方流媒體服務,只需要你有rtsp或者rtmp等等協議的視頻源地址,EasyMedia就可以讓他們無須轉發就可以直接使用瀏覽器進行播放,不需要任何ocx,activex,flash插件,EasyMedia無疑另辟蹊徑,開啟了不同於主流方案的另一條技術路線嘗試。

EasyMedia是如何實現無插件在瀏覽器上播放rtsp/rtmp這些視頻流的

答案是:JavaCV
通過JavaCV讀取並解析rtsp/rtmp視頻流,並轉復用/轉碼為瀏覽器可以播放的flv格式緩存到內存中,利用netty將內存中的flv格式視頻流通過http或者websocket協議實現的http-flv、websocket-flv傳輸到瀏覽器頁面,瀏覽器頁面只需要flv.js就可以播放rtsp/rtmp視頻。

不是轉碼

很多人以為這個項目是通過轉碼實現,會非常消耗資源,其實不然。
該項目會自動根據視頻的音視頻編碼進行自動判斷是否需要轉封裝還是轉碼,比如h264/aac編碼的視頻源就會自動進行轉封裝,而不是轉碼,因為flv不支持h265編碼,所以會對h265編碼進行轉碼操作,所以小伙伴們在使用時盡量使用h264的視頻源,這樣就可以避免轉碼的性能困擾啦。

EasyMedia支持哪些視頻源

EasyMedia不僅可以支持rtsp、h264、h265等、rtmp等多種源,得益於javaCV的技術加持,EasyMedia還支持一切FFmpeg可以支持的視頻源協議和格式。

EasyMedia運行預覽

在這里插入圖片描述

疑惑解答

1、是否需要流媒體服務

不需要任何流媒體轉發。
EasyMedia直接讀取視頻源並傳輸到瀏覽器。

2、是否需要flash插件

不需要。
EasyMedia目前支持http-flv和websocket-flv,只需要flv.js就可以播放,市面上支持flv播放的h5播放器都可以支持。

3、是否需要ffmpeg推流

不需要。
EasyMedia本着越復雜的結構越容易出錯,所以EasyMedia就是為了簡化使用,簡化各種流程,只需運行EasyMedia即可。EasyMedia一站式解決困擾用戶多年的推流轉發和流媒體服務這種復雜結構

4、延遲問題

在vlc、ffplay等播放器測試存在延遲較高是正常的,是因為他們默認的嗅探關鍵幀的時間比較長,測延遲建議還是用flv.js播放器測試。

開源項目維護地址

https://gitee.com/52jian/EasyMedia
歡迎大家不吝支持、點贊、收藏和轉發


免責聲明!

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



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