【开源技术分享】无需流媒体服务,让浏览器直接播放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运行预览
疑惑解答
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的更多相关文章
- 感知开源的力量-APICloud Studio开源技术分享会
2014.9.15 中国领先的“云端一体”移动应用云服务提供商APICloud正式发布2015.9.15,APICloud上线一周年,迎来第一个生日这一天,APICloud 举办APICloud St ...
- “云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)
“云中论道”技术课堂第一课开讲啦!微软各路技术咖们齐聚一堂,为大家带来干货不断!作为“云中论道“课堂的开课之作,我们首先邀请到了微软Azure专家级的架构师:槐长清,他为我们带来了关于“使用开源技术和 ...
- 社区活动分享PPT:使用微软开源技术开发微服务
上周六在成都中生代技术社区线下活动进行了一个名为"微软爱开源-使用微软开源技术开发微服务"的技术分享. 也算是给很多不熟悉微软开源技术的朋友普及一下微软最近几年在开源方面所做的努力 ...
- 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
1.概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebR ...
- 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践
本文来自腾讯前端开发工程师“ wendygogogo”的技术分享,作者自评:“在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦.” 1.GIF格式的历史 GIF ( Gr ...
- 知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路
本文来自知乎官方技术团队的“知乎技术专栏”,感谢原作者陈鹏的无私分享. 1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动 ...
- 融云技术分享:解密融云IM产品的聊天消息ID生成策略
本文来自融云技术团队原创分享,原文发布于“融云全球互联网通信云”公众号,原题<如何实现分布式场景下唯一 ID 生成?>,即时通讯网收录时有部分改动. 1.引言 对于IM应用来说,消息ID( ...
- 【技术分享】小乖乖的 Linux/Ubuntu 历险记
本文将同步发布于 WHU-TD 的博客. 这是一篇自带故事背景的博客. 总所周知,写的多,错的多,更何况一个刚刚接触 Linux 的小白.虽然只是介绍一些非常基础的内容,还是希望大家在发现错误时可以及 ...
- 老J的技术分享之总结
老J做IT这块有二十多个年头了,算是中国IT的见证者与参与者.那个时候刚开始接触和了解时,对于他的一些建议,我不是很乐于去接受,因为我觉得他的那一套技术体系不是很适合如今的情况,当时间久了后发现,他对 ...
随机推荐
- Visual Studio添加引用的方式
- D8016 “/ZI”和“/Gy-”命令行选项不兼容
老版本vs项目升级到vs2017后遇到编译报错: /ZI选项在: /Gy- 选项在: 修改'/ZI'选项为'无' 或者 '/Gy-' 修改为'/Gy'
- 攻防世界 reverse android-app-100
android-app-100 suctf-2016 jeb启动,找到点击事件: 验证流程: 输入作为参数 --> processObjectArrayFromNative 得到一返回值(r ...
- 【Azure Developer】Github Action部署资源(ARM模板)到Azure中国区时,遇见登录问题的解决办法
问题描述 在参考文档"使用 GitHub Actions 部署 ARM 模板"一文中,由于是在中国区Azure上操作,所以生产的部署凭证为中国区凭证.当创建工作流时,在登录到Azu ...
- SpringMVC时间格式和时区解决办法
问题默认情况下在使用spring的@ResponseBody返回json串时,如果有日期类型的数据,会发现在日期会莫名其妙的差8小时比如:2017-12-20 10:16:23.0结果是:2017-1 ...
- 北航OO第一单元作业总结(1.1~1.3)
经过了三次作业之后,OO第一单元告一段落,作为一个蒟蒻,我初步了解了面向对象的编程思想,并将所学内容用于实践. 一.第一次作业 1.架构分析 本次作业需要完成的任务为简单多项式导函数的求解.表达式仅支 ...
- git版本控制之三
[删除文件]使用关键字 git rm '待删除的文件名或者文件夹名字' 这个默认会把本地和版本库里面的这个文件都删掉!!! 有一种情形就是我往版本库里面提交错了文件,我想从版本库里面移除,但是我本地 ...
- VirtualBox虚拟机读取U盘
1 概述 使用VirtualBox虚拟机(系统Win10)读取宿主机(系统Manjaro)中的U盘. 2 安装扩展 戳这里下载对应版本的一个叫Oracle_VM_VirtualBox_Extensio ...
- git推送代码报错:fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream
情景再现 远程新建仓库,然后本地 git bash执行以下代码 git init git add . git commit -m 'xxx' git remote add origin https:/ ...
- 死磕Spring之AOP篇 - Spring AOP两种代理对象的拦截处理
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1 ...