基于live555开源流媒体服务器设计的EasyRTSPServer流媒体服务器接口

我们在live555开源流媒体服务器的基础上封装了一层,使得用户更能轻松地调用到live555,省去了复杂的RTSP/RTCP与RTP流程,只需要传入参数和编码后的数据就可以了。

在API使用说明之前,先列一下功能点吧:

  • 支持256路音视频同步转发(具体受限于网络环境和CPU);
  • 支持视频编码: H264、H265、MPEG4、MJPEG;
  • 支持音频编码: G711、G726, AAC;
  • 支持网络: IPv4、IPv6;
  • Linux环境下支持epoll;
  • 支持多线程;
  • 支持视频、音频、自定义数据传输;
  • 支持Basic、Digest验证;
  • 支持录像回放流控制,如暂停、恢复播放、调整倍率、seek;
  • 支持获取已连接客户端列表;
  • 支持动态创建通道, 让调用层自由控制每一路流;
  • 支持服务端主动关闭指定通道;
  • 支持windows、Linux;
  • 针对Linux系统下的数据发送进行性能优化;
  • 针对任务调度进行性能优化;
  • 7x24小时频繁断连测试无异常;
  • 7x24小时正常拷机无异常;

API调用说明

/* 激活 */
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_Activate(const char *license);

/* 启动 RTSP Server服务 */
/*设置监听端口, 回调函数及自定义数据 */
	/*
			listenPort: 监听端口
			realm:		服务端标识
			authType: 用户验证类型, 可选择不验证、Basic、Digest三种;
			username: 验证用户名	  用户名和密码还可使用EasyRtspServer_AddUser添加或EasyRtspServer_DelUser删除
			password: 验证密码
			callback: 回调函数
			userPtr:  用户自定义指针

	*/
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_Startup(Easy_U16 listenPort, const char *realm, 
											EASY_AUTHENTICATION_TYPE_ENUM authType, const char *username, const char *password, 
											EasyRtspServer_Callback callback, void *userPtr);

/* 终止 RTSP Server */
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_Shutdown();


//创建通道
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_CreateChannel(const char *resourceName, 
											EASY_CHANNEL_HANDLE *channelHandle, void *channelPtr);

//发送帧数据
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_PushFrame(EASY_CHANNEL_HANDLE channelHandle, 
												EASY_AV_Frame *frame);

//删除通道
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_DeleteChannel(EASY_CHANNEL_HANDLE *channelHandle);


//分辨率变化 只要视频或音频参数变化时, 调用 EasyRtspServer_ResetChannel
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_ResetChannel(EASY_CHANNEL_HANDLE channelHandle);


//添加用户  或    根据用户名修改用户密码
//如果添加的用户名不存在,则为新增, 如已存在,则为修改密码
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_AddUser(const Easy_U8 *username, const Easy_U8 *password);
//删除用户
Easy_API Easy_I32 Easy_APICALL EasyRtspServer_DelUser(const Easy_U8 *username);

EasyRTSPServer Github地址:https://github.com/tsingsee/EasyRTSPServer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章