EasyPusher是EasyDarwin开源流媒体团队开发的一个推送流媒体音/视频流给开源流媒体服务器EasyDarwin的标准RTSP/RTP协议推送库,全平台支持(包括Windows/Linux(32 & 64),ARM各平台,Android、IOS),通过EasyPusher我们就可以避免接触到稍显复杂的RTSP/RTP/RTCP推送流程,只需要调用EasyPusher的几个API接口,就能轻松、稳定地把流媒体音视频数据推送给EasyDarwin服务器进行转发和分发,EasyPusher经过长时间的企业用户检验,稳定性非常高;
EasyPusher_Android迁移到了https://github.com/EasyDarwin/EasyPusher_Android
-
EasyPusher_Android:实时采集安卓摄像头音视频(Android 5.0+支持采集手机桌面屏幕进行直播),进行H264/AAC编码后,调用libEasyPusher进行直播推送;
-
EasyPusher_File:推送本地文件到EasyDarwin流媒体服务器;
-
EasyPusher_RTSP:通过EasyRTSPClient库,将RTSP/RTP数据获取到本地,再通过EasyPusher推送到EasyDarwin进行RTSP、HLS直播;
-
EasyPusher_Win:支持本地摄像头和声卡、RTSP流、屏幕捕获、MP4文件通过EasyPusher推送到EasyDarwin进行RTSP、HLS直播;
-
EasyPusher_SDK:通过调用摄像机厂家的Camera SDK回调的音视频数据,进行RTSP/RTP直播推送,示例中的SDK是我们EasyDarwin开源摄像机的配套库,EasyCamera SDK及配套源码可在 http://www.easydarwin.org 或者 https://github.com/EasyDarwin/EasyCamera 获取到,您也可以用自己项目中用到的SDK获取音视频数据进行推送。EasyPusher_SDK可以接入所有的IP Camera,其他IP Camera只需要使用其对于SDK进行调用即可。
Windows编译方法,
Visual Studio 2010 编译:./EasyPusher-master/win/EasyPusher.sln
Linux编译方法,
chmod +x ./Buildit ./Buildit
调用提示:目前的调用示例程序,可以接收参数,具体参数的使用,请在调用时增加**-h**命令查阅,EasyPusher_File示例需要将本地文件copy到可执行文件同目录!
-
我们同时提供Windows、Linux、ARM、Android、IOS版本的EasyPusher库:EasyPusher SDK商业使用需要经过授权才能永久使用,商业授权方案可以邮件发送至support@easydarwin.org或者通过电话Tel:13718530929 进行更深入的技术与合作咨询;
支持平台 芯片 位置名称 Windows x86 ./Lib/ Windows x64 ./Lib/x64/ Linux x86 ./Lib/ Linux x64 ./Lib/x64/ 海思 arm-hisiv100-linux ./Lib/hisiv100/ 海思 arm-hisiv200-linux ./Lib/hisiv200/ Android armeabi armeabi libeasypusher.so Android armeabi-v7a libeasypusher.so Android arm64-v8a libeasypusher.so 邮件获取更多平台版本
- Android https://fir.im/EasyPusher
EasyPusher目前支持的音视频格式:
/* 视频编码 */
#define EASY_SDK_VIDEO_CODEC_H264 0x01000001 /* H264 */
#define EASY_SDK_VIDEO_CODEC_MJPEG 0x01000002 /* MJPEG */
#define EASY_SDK_VIDEO_CODEC_MPEG4 0x01000004 /* MPEG4 */
/* 音频编码 */
#define EASY_SDK_AUDIO_CODEC_AAC 0x01000011 /* AAC */
#define EASY_SDK_AUDIO_CODEC_G711A 0x01000012 /* G711 alaw*/
#define EASY_SDK_AUDIO_CODEC_G711U 0x01000014 /* G711 ulaw*/
EasyPusher回调事件定义:
typedef enum __EASY_PUSH_STATE_T
{
EASY_PUSH_STATE_CONNECTING = 1, /* 连接中 */
EASY_PUSH_STATE_CONNECTED, /* 连接成功 */
EASY_PUSH_STATE_CONNECT_FAILED, /* 连接失败 */
EASY_PUSH_STATE_CONNECT_ABORT, /* 连接异常中断 */
EASY_PUSH_STATE_PUSHING, /* 推流中 */
EASY_PUSH_STATE_DISCONNECTED, /* 断开连接 */
EASY_PUSH_STATE_ERROR
}EASY_PUSH_STATE_T;
QQ交流群:465901074
Copyright © EasyDarwin.org 2012-2017