背景分析
隨着信息化時代的到來,同屏技術在教學、會議、大型活動中的應用越來越廣泛。同屏結束簡單說來,就是將手機、平板等一些移動設備上面的音視頻資料通過無線或有線網絡同步到顯示設備上。換言之,就是將移動設備中的音視頻資料景象到顯示頻幕上面。就像照鏡子一樣,移動設備上顯示什麼,顯示屏上就會顯示什麼。
EasyScreenLive是一款簡單、高效、穩定的集採集,編碼,組播,推流和流媒體RTSP服務於一身的同屏功能組件,具低延時,高效能,低丟包等特點。目前支持Windows,Android平臺,通過EasyScreenLive我們就可以避免接觸到稍顯複雜的音視頻源採集,編碼和流媒體推送以及RTSP/RTP/RTCP/RTMP服務流程,只需要調用EasyScreenLive的幾個API接口,就能輕鬆、穩定地把流媒體音視頻數據RTMP推送給EasyDSS服務器以及發佈RTSPServer服務,RTSP同屏服務支持組播和單播兩種模式。
libEasyScreenLive庫接口調用說明
函數說明:激活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)