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

posted @ 2022-03-17 00:06  eguid  阅读(2298)  评论(0编辑  收藏  举报