RTSP/RTP 推流平台背景分析
EasyPusher 是推送流媒体音 / 视频流给开源流媒体服务器 EasyDarwin 的标准 RTSP/RTP 协议推送库,全平台支持(包括 Windows/Linux(32 & 64),ARM 各平台,Android、IOS),通过 EasyPusher 我们就可以避免接触到稍显复杂的 RTSP/RTP/RTCP 推送流程,只需要调用 EasyPusher 的几个 API 接口,就能轻松稳定地把流媒体音视频数据推送给 EasyDarwin 服务器进行转发和分发。
libEasyPusher 库接口调用说明
API 接口函数定义
函数说明:创建推送句柄,返回为句柄值
Easy_API Easy_Handle Easy_APICALL EasyPusher_Create();
函数说明:释放推送句柄
Easy_API Easy_U32 Easy_APICALL EasyPusher_Release(Easy_Handle handle);
函数说明:设置流传输事件回调
参数说明:userptr 传输自定义对象指针
Easy_API Easy_U32 Easy_APICALL EasyPusher_SetEventCallback(Easy_Handle handle, EasyPusher_Callback callback, int id, void *userptr);
函数说明:开始流传输
参数说明:serverAddr: 流媒体服务器地址、port: 流媒体端口、streamName: 流名称 <xxx.sdp>、username/password: 推送携带的用户名密码、pstruStreamInfo: 推送的媒体定义、bufferKSize: 以 k 为单位的缓冲区大小 <512~2048 之间, 默认 512> bool createlogfile: 创建日志文件
Easy_API Easy_U32 Easy_APICALL EasyPusher_StartStream(Easy_Handle handle, char* serverAddr, Easy_U16 port, char* streamName, int rtpOverTcp/_1-tcp, 2-udp_/, char *username, char_password, EASY_MEDIA_INFO_T_pstruStreamInfo, Easy_U32 bufferKSize, Easy_Bool createlogfile);
函数说明:停止流传输
Easy_API Easy_U32 Easy_APICALL EasyPusher_StopStream(Easy_Handle handle);
函数说明:推流 frame,具体推送的流媒体帧
Easy_API Easy_U32 Easy_APICALL EasyPusher_PushFrame(Easy_Handle handle, EASY_AV_Frame* frame);