EasyPusher应用】的更多相关文章

转自https://github.com/EasyDarwin/EasyPusher 本文仅实际体验一下demo,分析一下如何应用. 1)EasyPusher框图预览 2) EasyPusher应用实现 啃代码才是关键,看懂demo才好熟练应用. a. 推送h264文件 /* Copyright (c) 2013-2014 EasyDarwin.ORG. All rights reserved. Github: https://github.com/EasyDarwin WEChat: Easy…
本文是在使用由 EasyDarwin 团队开发的EasyPusher时导出的C++接口的.NET实现 public class EasyPushSDK { public EasyPushSDK() { } [StructLayoutAttribute(LayoutKind.Sequential)] public struct EASY_AV_Frame { public uint u32AVFrameFlag; /* 帧标志 视频 or 音频 */ public uint u32AVFrameL…
最近有个需求在Unity中直播桌面,着用到了视频流. ------------------------------ VLC自身有流服务器功能,但是非常慢非常慢,还是用VLC拉流吧,好像大家也是这么做的 ------------------------------ 流媒体服务器用的EasyDarwin,刚好最近出了最新版本NodeJS版本easydarwin-8.0.0-1804031316,否则配置nginx也是令人不开心. 这样的话,安装NodeJS,下载EasyDarwin和推流器EasyP…
本文转自EasyDarwin团队成员JOHN的博客:http://blog.csdn.net/jyt0551/article/details/75730226 在我们测试EasyPusher/EasyRTMP的过程中发现有些设备预览时,明显偏暗!在稍微暗点的环境中几乎很难看清东西-额,这是怎么回事呢?又是安卓设备的兼容性问题,头疼! 好吧,停止抱怨,撸起袖子开始干. 对,我们想到了.把摄像头的scene设置成了一个比较亮的模式对吧?下面是摄像头可能支持的模式,这么多我逐一试试: SCENE_MO…
EasyPusher主要有三部分组件组成:采集,编码,叠加,上传.在这个基础上同时支持本地存储\后台预览的功能.主要业务模块与相关类之间的关系如图所示: Created with Raphaël 2.1.0StreamActivityStreamActivity摄像头线程摄像头线程BackgroundCameraServiceBackgroundCameraService编码线程编码线程PusherPusherMuxerMuxer音频线程音频线程音频编码线程音频编码线程TxtOverlayTxt…
前言描述 随着大屏时代和高清时代的到来,人们已经不再满足于VGA.CIF这种小分辨率了,取而代之的是720P.1080P.4K级的视频传输,虽然我们国家的基础带宽一直在上升,但普遍情况下,传输高清视频还是带宽流量不够用,而且存在一个流量费用偏高的情况,然而目前市面上的大部分互联网直播视频协议都是基于H.264压缩方式,不得不说现在在安防领域,H.265的时代到来了,互联网上H.265不断从编码端,还是传输.解码播放端,都还没跟上,我们需要从多个方面,将H.265的特性支持于RTSP.RTMP.H…
EasyPusher推流类库的.NET调用说明 以下内容基于在使用EasyPusher过程中遇到的问题,以及相应的注意事项.本文主要是基于对C++类库的二次封装(便于调试发现问题)以供C#调用以及对一些方法使用.NET实现. 1. C++类库的二次封装 较少接触C+ +在直接调用C+ +类库的情况下发生错误会容易出现不好定位错误的情况,在部门同事的提醒下使用C+ +对原有的类库进行了二次封装,这样就可以使用C+ +调用C+ +也就可以方便的调试(eg:查看.NET传递的参数是否符合预期)具体的对…
本文转自:http://www.cnblogs.com/kangkey/p/6772863.html 最近在公司项目中,遇到需要将内网的监控视频信息,在外网进行查看,最终通过查阅资料,发现EasyDarwin能够实现该需求,由于该开源组件是用C++进行开发,在C#调用方面资料较少,也有可能是我没有找到的原因,进过不少坑,所以对EasyDarwin的使用过程做个记录,希望能够帮助到使用该开源组件的童鞋们,文中有不对的地方,望大家指出,谢谢. 一.部署EasyDarwin流媒体服务器 1.  下载E…
博客一:转自:http://blog.csdn.net/u011039529/article/details/70832857 大家好,本人刚毕业程序猿一枚.受人所托,第一次写博客,如有错误之处敬请谅解.本文主要讲解:如何在C#中封装以及调用C++编写的函数,通过对EasyDarwin开源流媒体的EasyPusher为例讲解. 首先,我个人不喜欢复杂的调用,比如很多C#中Marshal类相关的操作.我更愿意把c++代码封装成对象,以对象void*到IntPtr的相互转换来实现. 当然,这种方法对…
最近EasyPusher针对UVC摄像头做了适配.我们结合了UVCCamera与EasyPusher,支持将UVC摄像头的视频推送到RTSP服务器上.在此特别感谢UVCCamera这个牛逼的项目! 来看看是怎么操作UVC摄像头的吧.我们实现了一个专门检测UVC摄像头的服务:UVCCameraService类,主要代码如下: 监听 mUSBMonitor = new USBMonitor(this, new USBMonitor.OnDeviceConnectListener() { @Overr…
基于EasyPusher sdk库工程(即library module)实现一个推送客户端非常简单便捷,因为sdk端已经将各种烦人的状态维护\错误检查\权限判定\UI同步等功能都实现了,开发者仅仅只需要实现若干接口即可. 让我们看看如何实现一个Pusher吧! 首先我们介绍一下Pusher sdk的封装用到了哪些技术. Android Architecture Components Android architecture components是Google 官方出的一个Android APP的…
EasyPusher作为一款RTSP推送利器, 配合EasyDarwin开源流媒体服务器,在发布伊始,很快获得了广大人民群众的一致好评. 但是也有一些用户反映: EasyPusher在我的华为手机上会闪崩! 一开始我是表示怀疑的: 不可能,你给我截个图看看! 结果用户拍了一段小视频,尼玛,还真闪退,尴尬. 经过后来拿到日志,发现有这样一些打印信息: [OMX.IMG.TOPAZ.Encoder] failed to set input port definition parameters. 看来…
本文转自博客:http://blog.csdn.net/jinlong0603/article/details/56047145 EasyPusher RTP直播推送介绍 EasyPusher是一个推送RTSP流媒体音/视频流给RTSP流媒体服务器的标准RTSP/RTP协议推送库,全平台支持(包括Windows/Linux(32 & 64),ARM各平台,Android.iOS),通过EasyPusher就可以避免接触到稍显复杂的RTSP(ANNOUNCE.SETUP.PLAY)/RTP/RTC…
本文转自EasyDarwin开源团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/52651194 由于Android 5.0提供了捕获当前屏幕画面的SDK,基于该SDK,EasyPusher实现了实时推送手机屏幕画面的功能.经测试,效果很不错,延迟也比较低,画面也比较流畅.该功能可运用到小型会议PPT演示.手游直播等行业. 具体来说,MediaProjection 类可以将当前屏幕画面采集到一个surface里面,而MediaCo…
问题描述 我们在开发直播过程中,会需要用到直播推送端,推送端将直播的音视频数据推送到流媒体服务器或者cdn,再由流媒体服务器/CDN进行视频的转发和分发,提供给客户端进行观看.由于直播推送端会存在于各种不同的网络环境下面:有线.无线.3G.4G.卫星信号等等,在这些网络条件下,如何做到能够做到灵活.低延时直播,我们这个时候就需要引入发送缓冲区和丢帧策略两种功能,保证推送的实时和数据的有效: 环形缓冲区(引用) 环形缓冲区(ring buffer),是一种数据结构用于表示一个固定尺寸.头尾相连的缓…
本文由EasyDarwin开源团队成员John提供:http://blog.csdn.net/jyt0551/article/details/52276062 EasyPusher Android是使用摄像头采集视频数据,并通过MediaCodec进行H264编码,之后打包成RTSP格式并上传的. 大家知道Android 的Camera是通过回调来获取YUV数据的,要想获取到回调数据,需要给Camera一个有效的Surface对象.通常我们用SurfaceView或者TextureView来提供…
本文转自EasyDarwin开源团队开发Holo的博客:http://blog.csdn.net/holo_easydarwin 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏推送直播画面到EasyDarwin然后通过播放器播放视频画面就会逆时针旋转90度,如图: 手机横屏的时候不会旋转,这个问题思路其实很简单,在推送给服务器之前把图片数据旋转90度之后就可以了,然后就做了一次顺时针旋转的,结果画面变成如下样子: 很明显图片顺时针旋转了90度,但是还不如不旋转!我就想当然的以…
EasyPusher手机直播 实现功能 最近很多EasyDarwin爱好者提出了手机移动端直播的功能需求,尤其是如何做出像映客这样能够快速出画面播放的效果,经过一段时间的移动端和服务端的优化,EasyPusher直播推送+EasyDarwin流媒体服务器+EasyPlayer客户端播放已经非常好实现了这些需求,EasyPusher编码推送+EasyDarwin公网传输+EasyPlayer播放整个流程,在公网的延时最低能到400ms: 上效果 整个测试发现,PC端播放手机推送延时基本稳定在500…
-本篇由团队成员Fantasy供稿! RTP包头格式 码流总体结构 h264的功能分为两层,视频编码层(VCL)和网络提取层(NAL).H.264 的编码视频序列包括一系列的NAL 单元,每个NAL 单元包含一个RBSP.一个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成,其中 Start Code 用于标示这是一个NALU 单元的开始,必须是"00 00 00 01" 或"00 00 01&…
EasyPusher移动端推送同我们平时用的RTSP直播推送流程一样,都是采用标准RTSP/RTP推送流程:ANNOUNCE->SETUP->PLAY->RTP/RTCP->TEARDOWN(或者直接直接断开推送连接),流程图如下: 我们贴一段EasyPusher 安卓与EasyDarwin流媒体服务器之间的交互报文: #C->S: #time: ms=475350259 date=Sat, 16 Apr 2016 01:09:58 GMT #server: ip=192.1…
本文转自Holo的博客:http://blog.csdn.net/u013758734/article/details/50834770 最近在研究EasyDarwin的Push库EasyPusher,EasyPusher可以推送H264视频到EasyDarwin服务器,终端可以通过rtsp协议访问该实时流,达到手机直播的功能,延迟基本在2秒以内. EasyDarwinQQ群:496258327 本文主要记录一下最近研究的关于Android手机如何获取实时画面,并将数据编码为H264的格式的视频…
本文转自:http://blog.csdn.net/holo_easydarwin/article/details/51147379 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏推送直播画面到EasyDarwin然后通过播放器播放视频画面就会逆时针旋转90度,如图: 手机横屏的时候不会旋转,这个问题思路其实很简单,在推送给服务器之前把图片数据旋转90度之后就可以了,然后就做了一次顺时针旋转的,结果画面变成如下样子: 很明显图片顺时针旋转了90度,但是还不如不旋转!我就想当然…
在不断进行EasyDarwin开源流媒体服务器的功能和性能完善的同时,我们也配套实现了目前在安防和移动互联网行业比较火热的移动端手机直播方案,主要就是我们的 EasyPusher直播推送项目 和 EasyPlayer播放器项目: 先大概对EasyPusher和EasyPlayer项目做一下介绍,EasyPusher是一个推送流媒体音/视频流给开源流媒体服务器EasyDarwin的标准RTSP/RTP协议推送库,全平台支持(包括Windows/Linux(32 & 64),ARM各平台,Andro…
EasyPusher直播推送在之前就已经稳定支持了Windows.Linux.ARM上的RTSP直播推送功能,配合EasyDarwin开源流媒体服务器,延时基本在1s以内,这个技术方案经过一年多时间,包括开源社区.企业用户的反复检验测试,已经具备很高的稳定性了: 我们在之前已经spydroid实现过一套Android直播推送与EasyDarwin结合的直播方案,后来一直都没有进行迭代优化,正好趁这个机会,EasyPusher已经支持了ARM平台,我们就通过NDK编译的方式,将EasyPusher…
先简单介绍一下EasyPusher的功能,后面再对具体内部架构做介绍: EasyPusher:https://github.com/EasyDarwin/EasyPusher EasyPusher是什么? EasyPusher是一个推送流媒体音视频给开源流媒体服务器EasyDarwin的推送库,通过EasyPusher我们就可以避免接触到稍显复杂的RTSP/RTP推送流程,只需要调用EasyPusher的几个API接口,就能轻松.稳定地把流媒体音视频数据推送给EasyDarwin服务器进行转发和…
在不断进行EasyDarwin开源流媒体server的功能和性能完好的同一时候,我们也配套实现了眼下在安防和移动互联网行业比較火热的移动端手机直播方案,主要就是我们的 EasyPusher直播推送项目 和 EasyPlayer播放器项目. 先大概对EasyPusher和EasyPlayer项目做一下介绍,EasyPusher是一个推送流媒体音/视频流给开源流媒体serverEasyDarwin的标准RTSP/RTP协议推送库.全平台支持(包括Windows/Linux(32 & 64),ARM各…
1.抓Android logcat工具 在EasyDarwin Github Tool项目(https://github.com/EasyDarwin/Tools)下载Android adb Logcat工具windows版本: 2.开启Android手机调试模式 不同手机开启开发者调试模式的方案不一样,大家可以到网上进行具体的搜索: 开启开发者调试模式后,手机连接线连接至电脑: 3.log抓取与输出 cd到platform-tools所在的目录,调用adb.exe logcat,然后操作手机,…
 1.EasyDarwin多媒体点播实现 新版本EasyDarwin都加入了中心管理服务EasyCMS, 对于点播系统,EasyCMS不是必须的. MP4点播,需要将mp4文件hint之后才行,MP4Box这个工具用得较多 EasyCMS and EasyDarwin vod 1 EasyCMS and EasyDarwin vod 2  2.EasyDarwin组件:EasyPusher推送rtsp码流  EasyPusher目前支持如下三种推送方式: - **EasyPusher_File*…
Debug问题??? ./easydarwin -c ./easydarwin.xml & //这样的话是80端口 ./easydarwin -c ./easydarwin.xml -d //8088端口 以上出现的问题:在调试模式下加载配置文件是可以的,但是在后台模式下配置文件是加载不了的,列如:在配置文件配置后台管理端口为8088,当时在后台模式下,却是80端口,同时点播文件夹路径和日志文件夹路径也加载的不适 解决办法:在后台运行的时候配置文件必须是绝对路径哦!不是相对路径 root@iZ2…
EasyDarwin 是由国内开源流媒体团队开发和维护的一款开源流媒体平台框架,从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目,更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台,更快.更简单地实现最新的移动互联网(安卓.IOS.微信)流媒体直播与点播的需求,尤其是安防行业与互联网行业的衔接: 云平台结构 目前EasyDarwin流媒体平台整套解决方案包括有:EasyCMS(中心管理服务),EasyDarwin(流媒体服务),Eas…