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

eguid發表於2021-05-20

不同於市面上其他需要各種轉發到流媒體服務的中介軟體來說,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視訊。

EasyMedia支援哪些視訊源

EasyMedia不僅可以支援rtsp、h264、h265等、rtmp等多種源,得益於javaCV的技術加持,EasyMedia還支援一切FFmpeg可以支援的視訊源協議和格式。
ffmpeg支援的協議概覽:https://eguid.blog.csdn.net/article/details/107307093

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
歡迎大家不吝支援、點贊、收藏和轉發

相關文章