开源技术分享无需流媒体服务,让浏览器直接播放rtsp/rtmp的神器:EasyMedia
Posted eguid_1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源技术分享无需流媒体服务,让浏览器直接播放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可以支持的视频源协议和格式。
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
欢迎大家不吝支持、点赞、收藏和转发
以上是关于开源技术分享无需流媒体服务,让浏览器直接播放rtsp/rtmp的神器:EasyMedia的主要内容,如果未能解决你的问题,请参考以下文章
JavaCV音视频开发宝典:使用JavaCV实现webm直播服务(无需流媒体服务,无需mse,浏览器video标签直接播放rtsp,rtmp和桌面投屏直播)
JavaCV音视频开发宝典:使用JavaCV和springBoot实现websocket-flv直播服务,无需流媒体服务,浏览器网页flv.js播放器直接播放rtsp,rtmp等实时视频
JavaCV音视频开发宝典:使用JavaCV实现webm直播服务,无需流媒体服务,无需mse转封装插件(flv.js,hls.js),浏览器原生video标签直接播放rtsp,rtmp和桌面投屏直播
JavaCV音视频开发宝典:无需流媒体服务也无需转码,使用JavaCV和springBoot实现http-flv转封装直播服务,浏览器网页flv.js直接播放rtprtsprtmp实时视频
JavaCV音视频开发宝典:无需流媒体服务也无需转码,使用JavaCV和springBoot实现http-flv转封装直播服务,浏览器网页flv.js直接播放rtprtsprtmp实时视频
JavaCV音视频开发宝典:无需流媒体服务也无需转码,使用JavaCV和springBoot实现http-flv转封装直播服务,浏览器网页flv.js直接播放rtprtsprtmp实时视频