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

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

《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-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---