接口协议适用平台:(Windows&Linux&ARM)
1. SDK描述
EasyRTMP是一套调用简单、功能完善、运行高效稳定的RTMP功能组件,经过多年实战和线上运行打造,支持RTMP推送断线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、arm(hisiv100/hisiv200/hisiv300/hisiv400/etc..)、Android、iOS平台,支持市面上绝大部分的RTMP流媒体服务器,包括Wowza、Red5、ngnix_rtmp、crtmpserver等主流RTMP服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等等方面!
2. API接口函数定义
2.1 SDK激活
函数:
Easy_API int Easy_APICALL EasyHLS_Activate(char *license);
参数:
license: SDK激活码,可在 www.pvale.com 在线获取,或联系我们。
返回:
返回值为第三节的EASY_ACTIVATE_ERR_CODE_ENUM枚举类型
2.2 创建HLSSession 返回为句柄值
函数:
Easy_API Easy_HLS_Handle Easy_APICALL EasyHLS_Session_Create(int nCapacity, bool bAllowCache, int version);
参数:
nCapacity: 直播M3U8中包含多少个ts的描述
bAllowCache: 是否允许换成,默认设置成0
version: M3U8版本号,默认设置成3
返回:
返回值为HLS的handle
2.3 设置HLS参数
函数:
Easy_API void Easy_APICALL EasyHLS_ResetStreamCache(Easy_HLS_Handle handle, const char strRootDir, const char strSubDir, const char* strMediaName, int nTargetDuration, int nFirstTSIFrameCount = 0);
参数:
handle: EasyHLS_Session_Create返回值
strRootDir: 设置切片根目录
strSubDir: 设置切片子目录
strMediaName: HLS流名称
nTargetDuration:每个ts的时长,单位秒
nFirstTSIFrameCount:第一个ts中关键帧个数,demo中设置为2或者1
2.4 获取M3U8信息
函数:
Easy_API const char* Easy_APICALL EasyHLS_GetM3U8File(Easy_HLS_Handle handle);
参数:
handle: EasyHLS_Session_Create返回值
2.5 传入视频数据
函数:
Easy_API int Easy_APICALL EasyHLS_VideoMux(Easy_HLS_Handle handle, unsigned int uiFrameType, unsigned char *data, int dataLength, unsigned long long pcr, unsigned long long pts, unsigned long long dts);
参数:
handle: EasyHLS_Session_Create返回值
uiFrameType: 视频帧类型,关键帧或P帧等 TS_TYPE_PES_VIDEO_I_FRAME、TS_TYPE_PES_VIDEO_P_FRAME
data: 帧数据
dataLength: 帧长度
pcr: TS头信息包含了节目时钟参考PCR(Program Clock Reference),可设置与pts、dts相同
pts: 显示时间戳
dts: 解码时间戳
2.6 传入音频数据
函数:
Easy_API int Easy_APICALL EasyHLS_AudioMux(Easy_HLS_Handle handle, unsigned char *data, int dataLength, unsigned long long pts, unsigned long long dts=~0);
参数:
handle: EasyHLS_Session_Create返回值
data: 帧数据
dataLength: 帧长度
pts: 显示时间戳
dts: 解码时间戳,可与pts相同
2.7 释放HLSSession
函数:
Easy_API void Easy_APICALL EasyHLS_Session_Release(Easy_HLS_Handle handle);
参数:
handle: EasyHLS_Session_Create返回值
3. 结构体描述
|