zoukankan      html  css  js  c++  java
  • 【开源技术分享】无需流媒体服务,让浏览器直接播放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可以支持的视频源协议和格式。

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

    eguid原创文章,如未说明出处和作者名,禁止转载。 博主主更新博客为:eguid.blog.csdn.net。其他平台的小伙伴如需联系博主,请转到csdn,谢谢。 欢迎大家积极开心的加入流媒体讨论群:社区一群:770640961,社区二群:608423839,社区三群:556722677,社区四群:689672017
  • 相关阅读:
    MSSQL2008 R2 数据库展开报错:值不能为空 参数名:viewInfo
    疑似Windows server自动更新引发的sqlserver宕机
    SQL SERVER 数据库被标记为“可疑”的解决办法
    SQL SERVER日志中报错:等待闩锁时出现超时:类 log_manager
    sqlserver服务因登陆失败无法启动1069
    sqlserver事务日志增长过快
    SQL Server – “Could not connect because the maximum number of ‘1’ user connections has already been reached.”
    SQL SERVER 2012评估期过期
    sqlserver服务启动失败1067
    SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:10202320,但实际为 0:0)
  • 原文地址:https://www.cnblogs.com/eguid/p/14788745.html
Copyright © 2011-2022 走看看