共计 2428 个字符,预计需要花费 7 分钟才能阅读完成。
背景分析
随着信息化时代的到来,同屏技术在教学、会议、大型活动中的应用越来越广泛。同屏结束简单说来,就是将手机、平板等一些移动设备上面的音视频资料通过无线或有线网络同步到显示设备上。换言之,就是将移动设备中的音视频资料景象到显示频幕上面。就像照镜子一样,移动设备上显示什么,显示屏上就会显示什么。
EasyScreenLive 是一款简单、高效、稳定的集采集,编码,组播,推流和流媒体 RTSP 服务于一身的同屏功能组件,具低延时,高效能,低丢包等特点。目前支持 Windows,Android 平台,通过 EasyScreenLive 我们就可以避免接触到稍显复杂的音视频源采集,编码和流媒体推送以及 RTSP/RTP/RTCP/RTMP 服务流程,只需要调用 EasyScreenLive 的几个 API 接口,就能轻松、稳定地把流媒体音视频数据 RTMP 推送给 EasyDSS 服务器以及发布 RTSPServer 服务,RTSP 同屏服务支持组播和单播两种模式。
libEasyScreenLive 库接口调用说明
API 接口函数定义
函数说明:激活 EasyScreenLive
LIB_EASYSLIVE_API EASYSLIVE_HANDLE EasyScreenLive_Create(char* EasyIPCamera_Key, char* EasyRTMP_Key, char* EasyRTSP_Key, char* EasyRTSPClient_Key, char* EasyRTMPClient_Key)
函数说明:推送实例销毁
LIB_EASYSLIVE_API void EasyScreenLive_Release(EASYSLIVE_HANDLE handler)
函数说明:获取有效时间
LIB_EASYSLIVE_API int EasyScreenLive_GetActiveDays(EASYSLIVE_HANDLE handler)
函数说明:判断系统是否支持英伟达硬件编码
LIB_EASYSLIVE_API bool EasyScreenLive_IsSupportNvEncoder(EASYSLIVE_HANDLE handler)
函数说明:设置屏幕采集是否采集鼠标光标
LIB_EASYSLIVE_API int EasyScreenLive_SetCaptureCursor(EASYSLIVE_HANDLE handler, bool bShow)
函数说明:拉 RTSP/RTMP 流设置 OSD, 其他采集模式设置无效
LIB_EASYSLIVE_API int EasyScreenLive_SetOSD(EASYSLIVE_HANDLE handler, bool bShow, EASY_OSD osd)
函数说明 :开始音视频数据捕捉
参数说明:nEncoderType 编码类型:0= 默认编码器(效率最低,通用性强)1= 软编码(效率高,通用性不强)2= 硬件编码(效率最高,通用性最低,需要英伟达独立显卡支持)
LIB_EASYSLIVE_API int EasyScreenLive_StartCapture(EASYSLIVE_HANDLE handler, SOURCE_TYPE eSourceType, char* szURL,int nCamId, int nAudioId, EASYSLIVE_HANDLE hCapWnd, int nEncoderType,int nVideoWidth=640, int nVideoHeight=480, int nFps=25, int nBitRate=2048, char* szDataType =“YUY2”,int nSampleRate=44100, int nChannel=2, bool bTranscode = false, ENCODE_MODE encType = ENCODE_H264);
函数说明:停止音视频采集
LIB_EASYSLIVE_API void EasyScreenLive_StopCapture(EASYSLIVE_HANDLE handler)
函数说明:音视频数据推送
LIB_EASYSLIVE_API int EasyScreenLive_StartPush(EASYSLIVE_HANDLE handler, PUSH_TYPE pushType, char* ServerIp, int nPushPort, char* sPushName, int rtpOverTcp, int nPushBufSize = 1024, bool bServerRecord = false)
函数说明:停止推送
LIB_EASYSLIVE_API void EasyScreenLive_StopPush(EASYSLIVE_HANDLE handler, PUSH_TYPE pushType)
函数说明:开启 RTSP 服务
LIB_EASYSLIVE_API int EasyScreenLive_StartServer(EASYSLIVE_HANDLE handler, int listenport, char * username, char * password, EASYLIVE_CHANNEL_INFO_T * channelInfo, int channelNum)
函数说明:停止服务
LIB_EASYSLIVE_API int EasyScreenLive_StopServer(EASYSLIVE_HANDLE handler, int serverId)
函数说明:枚举视频采集设备
LIB_EASYSLIVE_API EASYLIVE_DEVICE_LIST_T* EasyScreenLive_GetAudioInputDevList(EASYSLIVE_HANDLE handler)
函数说明:枚举音频采集设备
LIB_EASYSLIVE_API EASYLIVE_DEVICE_LIST_T* EasyScreenLive_GetCameraList(EASYSLIVE_HANDLE handler)