您的位置:首页 > 其它

RTSPClient工具EasyRTSPClient支持H.265,支持海思等各种芯片平台

2016-04-28 00:51 453 查看


EasyRTSPClient是EasyDarwin开源流媒体团队开发、提供的一套非常稳定、易用、支持重连的RTSPClient工具,接口调用非常简单,再也不用像调用live555那样处理整个RTSP OPTIONS/DESCRIBE/SETUP/PLAY的复杂流程,担心内存释放的问题了,全平台支持(包括Windows/Linux 32&64,ARM各平台,Android,IOS),接口简单且成熟稳定!


调用示例

EasyRTSPClient:以RTSPClient的形式,从RTSP URL将音视频获取到本地;

Windows编译方法,

Visual Studio 2010 编译:./EasyRTSPClient-master/win/EasyRTSPClient.sln

Linux编译方法,

chmod +x ./Buildit
./Buildit


EasyDarwin:您也可以参考EasyDarwin中EasyHLSModule(HLS直播模块)、EasyRelayModule(RTSP转发模块)对EasyRTSPClient库的调用方法,详细请看:https://github.com/EasyDarwin/EasyDarwin

我们同时提供Windows、Linux、ARM、Android、IOS版本的libEasyRTSPClient库:EasyRTSPClient SDK商业使用需要经过授权才能使用,商业授权方案: http://www.easydss.com/EasyRTSPClient.html;个人及非商业用途可通过邮件发送至support@easydarwin.org进行申请,注意ARM版本需要附上交叉编译工具链,我们会帮您具体编译,目前Github已经更新支持的平台有:

支持平台芯片目录位置
Windowsx86./Lib/
Windowsx64./Lib/x64/
Linuxx86./Lib/
Linuxx64./Lib/x64/
海思arm-hisiv100-linux./Lib/hisiv100/
海思arm-hisiv200-linux./Lib/hisiv200/
海思arm-hisiv400-linux./Lib/hisiv400/
AndroidarmeabiEasyPlayer libEasyRTSPClient.so
邮件获取更多平台版本


调用流程






设计方法

EasyRTSPClient参考live555 testProg中的testRTSPClient示例程序,将一个live555 testRTSPClient封装在一个类中,例如,我们称为Class EasyRTSPClient,在EasyRTSP_Init接口调用时,我们新建EasyRTSPClient对象、在EasyRTSP_OpenStream接口调用时,我们建立线程,装载live555的TaskScheduler->SingleStep(0),然后再进行RTSP的具体流程,这个就可以直接用testRTSPClient的使用流程了、关闭RTSPClient,我们调用EasyRTSP_CloseStream接口,内部实现参考testRTSPClient中的shutdownStream方法,最后delete
EasyRTSPClient类,这样整个过程就完整了!


RTSPSourceCallBack数据回调说明

EasyRTSPClient可以回调出多种类型的数据:

#define EASY_SDK_VIDEO_FRAME_FLAG           /* 视频帧数据 */
#define EASY_SDK_AUDIO_FRAME_FLAG           /* 音频帧数据 */
#define EASY_SDK_EVENT_FRAME_FLAG           /* 事件帧数据 */
#define EASY_SDK_RTP_FRAME_FLAG             /* RTP帧数据 */
#define EASY_SDK_SDP_FRAME_FLAG             /* SDP帧数据 */
#define EASY_SDK_MEDIA_INFO_FLAG            /* 媒体类型数据 */

EASY_SDK_VIDEO_FRAME_FLAG数据可支持多种视频格式:

#define EASY_SDK_VIDEO_CODEC_H265           /* H265  */
#define EASY_SDK_VIDEO_CODEC_H264           /* H264  */
#define EASY_SDK_VIDEO_CODEC_MJPEG          /* MJPEG */
#define EASY_SDK_VIDEO_CODEC_MPEG4          /* MPEG4 */

视频帧标识支持

#define EASY_SDK_VIDEO_FRAME_I              /* I帧 */
#define EASY_SDK_VIDEO_FRAME_P              /* P帧 */
#define EASY_SDK_VIDEO_FRAME_B              /* B帧 */
#define EASY_SDK_VIDEO_FRAME_J              /* JPEG */


当回调出RTSP_FRAME_INFO->codec为EASY_SDK_VIDEO_CODEC_H264数据,RTSP_FRAME_INFO->type为EASY_SDK_VIDEO_FRAME_I关键帧时,我们输出的数据结构为SPS+PPS+I的组合:


|---------sps---------|-------pps-------|---------------I Frame---------------|
|                     |                 |                                     |
0-----------------reserved1---------reserved2-------------------------------length

EASY_SDK_AUDIO_FRAME_FLAG数据可支持多种音频格式:

#define EASY_SDK_AUDIO_CODEC_AAC            /* AAC */
#define EASY_SDK_AUDIO_CODEC_G711A          /* G711 alaw*/
#define EASY_SDK_AUDIO_CODEC_G711U          /* G711 ulaw*/
#define EASY_SDK_AUDIO_CODEC_G726           /* G726 */


获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

QQ交流群:465901074

Copyright © EasyDarwin.org 2012-2016



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: