JavaCV音視頻開發寶典:使用JavaCV和springBoot實現websocket-flv直播服務,無需流媒體服務,瀏覽器網頁flv.js播放器直接播放rtsp,rtmp等實時視頻

《JavaCV音視頻開發寶典》專欄目錄導航
《JavaCV音視頻開發寶典》專欄介紹和目錄

JavaCV音視頻開發寶典

硬核注意:本文默認讀者已經熟練掌握springboot和websocket的前置知識並瞭解流媒體音視頻技術。

前言

前面我們已經講了webm直播,http-flv直播,本章就直接開始動手實現websocket-flv直播。
關於flv格式的起源與發展等等基本知識在上一章:
JavaCV音視頻開發寶典:使用JavaCV和springBoot實現http-flv直播服務,無需流媒體服務,瀏覽器網頁flv.js轉封裝方式播放rtsp,rtmp和桌面投屏實時畫面》中基本上都講過了,不再贅述,有興趣的可以去看看。

websocket-flv是爲了解決http-flv的一些弊端而出現的流媒體傳輸技術。
websocket-flv是要解決什麼問題呢?
這就不得不提到瀏覽器的http有連接限制,一般而言,瀏覽器http連接數最大不超過6個連接,比如常用的chrome瀏覽器的最大http連接數是6個,大部分瀏覽器http連接數限制如下圖所示:
http連接數限制
與大部分http接口使用短連接不同的是,http-flv是長連接,而且不會釋放,會一直佔用http連接,所以瀏覽器端過多使用http長連接(超過6個)之後會導致瀏覽器http連接阻塞,無法發送任何http連接,也無法請求任何http接口。

websocket-flv兼容性

現代瀏覽器(chrome、safari、firefox、edge、IE11+等)都可以直接播放websocket-flv格式視頻。

利用瀏覽器的mse特性,來使用基於flv.js轉封裝技術的播放器來播放JavaCV實現的websocket-flv直播。

參考資料

  1. ffmpeg官方文檔
  2. flv.js

本文轉載自:https://eguid.blog.csdn.net/article/details/123492398,完整查看本章請到:https://eguid.blog.csdn.net/article/details/123492398

---end---

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章