接口协议适用平台:(Windows&Linux&ARM)
1. SDK描述
EasyRTSPClient是紫鲸云团队开发、提供的一套非常稳定、易用、支持重连的RTSPClient工具,SDK形式提供,接口调用非常简单,再也不用像调用live555和ffmpeg那样处理整个RTSP OPTIONS/DESCRIBE/SETUP/PLAY的复杂流程,担心内存释放的问题了,EasyRTSPClient全平台支持(包括Windows/Linux 32&64,ARM各种平台,Android,iOS),接口简单且成熟稳定!
2. API接口函数定义
2.1 数据、事件回调函数
函数:
typedef int (Easy_APICALL RTSPSourceCallBack)( int _channelId, void _channelPtr, int _frameType, char pBuf, RTSP_FRAME_INFO _frameInfo);
参数:
_channelId: 通道号, 由EasyRTSP_OpenStream设置
_channelPtr: 用户自定义数据,由EasyRTSP_OpenStream设置
_frameType: EASY_SDK_VIDEO_FRAME_FLAG/EASY_SDK_AUDIO_FRAME_FLAG/EASY_SDK_EVENT_FRAME_FLAG/…
_pBuf: 回调的数据部分
_frameInfo: 帧结构参数
2.2 SDK激活
函数:
Easy_API int Easy_APICALL EasyRTSP_Activate(char *license);
参数:
license: SDK激活码,可在 www.pvale.com 在线获取,或联系我们。
返回:
返回值为第三节的EASY_ACTIVATE_ERR_CODE_ENUM枚举类型
2.3 创建EasyRTSPClient 一个通道的句柄
函数:
Easy_API int Easy_APICALL EasyRTSP_Init(Easy_RTSP_Handle *handle);
参数:
调用者定义Easy_RTSP_Handle类型的变量,传入变量的地址,如果成功handle为非空,否则为空
返回:
返回0表示成功,返回非0表示失败。也可用调用后的handle值判断是否成功
2.4 设置数据回调
函数:
Easy_API int Easy_APICALL EasyRTSP_SetCallback(Easy_RTSP_Handle handle, RTSPSourceCallBack callback);
参数:
handle: EasyRTSP_Init接口返回的句柄
callback: 设置数据、事件回调函数
2.5 打开一路RTSP网络流
函数:
Easy_API int Easy_APICALL EasyRTSP_OpenStream(Easy_RTSP_Handle handle, int channelid, char url, EASY_RTP_CONNECT_TYPE connType, unsigned int mediaType, char username, char password, void userPtr, int reconn, int outRtpPacket, int heartbeatType, int verbosity);
参数:
handle: EasyRTSP_Init接口返回的句柄
channelid: 自定义通道号,回调函数返回时会携带回来,可用于表示通道,也可用userPtr参数来表示和参数传递
url: 拉取的流地址
connType: 第三节中EASY_RTP_CONNECT_TYPE类型,选择TCP还是UDP拉取流
mediaType: 类似设置 EASY_SDK_VIDEO_FRAME_FLAG | EASY_SDK_AUDIO_FRAME_FLAG
username: 用户名
password: 密码
userPtr: 用户自定义数据,回调函数返回时会带对应的userPtr,可用于标记对应流的回调和参数传递
reconn: 1000表示长连接,即如果网络断开自动重连, 其它值为连接次数
outRtpPacket: 默认为0,即回调输出完整的帧, 如果为1,则输出RTP包
heartbeatType: 是否发送RTSP协议的OPTION,0为不发送,1为发送。默认可以设置0,个别RTSP流遇到有周期性断流的情况尝试设置为1。
verbosity: 日志打印输出等级,0表示不输出,1位输出
2.6 关闭网络流
函数:
Easy_API int Easy_APICALL EasyRTSP_CloseStream(Easy_RTSP_Handle handle);
参数:
handle: EasyRTSP_Init接口返回的句柄
2.7 释放RTSPClient 参数为RTSPClient句柄
函数:
Easy_API int Easy_APICALL EasyRTSP_Deinit(Easy_RTSP_Handle *handle);
参数:
handle: EasyRTSP_Init接口返回的句柄
3. 结构体描述
|