基於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

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