【开源技术分享】无需流媒体服务,让浏览器直接播放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视频。

EasyMedia支持哪些视频源

EasyMedia不仅可以支持rtsp、h264、h265等、rtmp等多种源,得益于javaCV的技术加持,EasyMedia还支持一切FFmpeg可以支持的视频源协议和格式。
ffmpeg支持的协议概览:https://eguid.blog.csdn.net/article/details/107307093

EasyMedia运行预览

【开源技术分享】无需流媒体服务,让浏览器直接播放rtsp/rtmp的神器:EasyMedia_第1张图片

疑惑解答

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
欢迎大家不吝支持、点赞、收藏和转发

你可能感兴趣的:(音视频流媒体技术相关)