EasyIPCamera
EasyIPCamera是由EasyDarwin團隊開發的一套非常穩定、易用、支持多種平台(包括Windows/Linux 32&64,Android,ARM hisiv100/hisiv200/hisiv400等平台)的RTSPServer組件,接口調用非常簡單成熟,無需關注RTSPServer中關於客戶端監聽接入、音視頻多路復用、RTSP具體流程、RTP打包與發送等相關問題,支持多種音視頻格式,再也不用像調用live555 RTSPServer那樣處理整個RTSP OPTIONS/DESCRIBE/SETUP/PLAY/RTP/RTCP的復雜流程和擔心內存釋放的問題了!
BTW:EasyIPCamera在海思3156A芯片上的性能經過我們半年多的調試,目前已經可以穩定在4路1080P並發:
- TCP/UDP 方式分別連接3路下,1080P 4M 定碼率,音頻格式G711(64K)G726(16K 24K 32K 40K)AAC(64K 96K 128K)都沒問題;
- TCP/UDP 方式分別連接4路下,1080P 4M 定碼率,音頻格式G711(64K)G726(16K 24K 32K 40K)AAC(64K 96K 128K)都沒問題;
- 支持Basic、Digest兩種鑒權模式;
調用示例
EasyIPCamera:在不同的調用平台上,我們實現了不同的調用示例;
- EasyIPCamera_Win:Windows采集攝像頭/屏幕桌面/麥克風的音視頻做為數據源的RTSPServer;
- EasyIPCamera_RTSP:以其他IPC硬件(海康、大華、雄邁)提供的RTSP流做為EasyIPCamera的數據源,對外提供RTSPServer功能;
- ARM上我們提供基於海思v100/v200/v300/v400以及其他ARM芯片的攝像機芯片編碼后的音視頻做為數據源的RTSPServer,具體芯片調用demo示例代碼請郵件至support@easydarwin.org申請;
Windows編譯方法,
Visual Studio 2010 編譯:./EasyIPCamera-master/EasyIPCamera.sln
Linux編譯方法,
chmod +x ./Buildit ./Buildit
我們同時提供Windows、Linux、ARM版本的EasyIPCamera SDK:可通過郵件發送至support@easydarwin.org進行申請,注意ARM版本需要附上交叉編譯工具鏈,我們會幫您具體編譯,目前Github已經更新支持的平台有:
支持平台 芯片 目錄位置 Windows x86 ./Lib/ Windows x64 ./Lib/x64/ Linux x86 ./Lib/ Linux x64 ./Lib/x64/ Android Android ./Android/ 海思 arm-hisiv100-linux ./Lib/hisiv100/ 海思 arm-hisiv200-linux ./Lib/hisiv200/ 海思 arm-hisiv300-linux ./Lib/hisiv300/ 海思 arm-hisiv400-linux ./Lib/hisiv400/ 郵件獲取更多平台版本
調用全流程
設計方法
EasyIPCamera參考live555 testProg中的testOnDemandRTSPServer示例程序,將一個live555 testOnDemandRTSPServer封裝在一個類中,例如,我們稱為Class EasyIPCamera,在EasyIPCamera_Create接口調用時,我們新建一個EasyIPCamera對象,再通過調用EasyIPCamera_Startup接口,將EasyIPCamera RTSPServer所需要的監聽端口、認證信息、通道信息等參數輸入到EasyIPCamera中后,EasyIPCamera就正式開始建立監聽對外服務了,在服務的過程中,當有客戶端的連接或斷開,都會以回調事件的形式,通知給Controller調用者,調用者再具體來處理相關的回調任務,返回給EasyIPCamera,在EasyIPCamera服務的過程當中,如果回調要求需要Controller調用者提供音視頻數據幀,Controller調用者可以通過EasyIPCamera_PushFrame接口,向EasyIPCamera輸送具體的音視頻幀數據,當調用者需要結束RTSPServer服務,只需要調用EasyIPCamera_Shutdown停止服務,再調用EasyIPCamera_Release釋放EasyIPCamera就可以了,這樣整個服務過程就完整了!
EasyIPCamera支持數據格式說明
EASY_SDK_VIDEO_FRAME_FLAG數據可支持多種視頻格式:
#define EASY_SDK_VIDEO_CODEC_H265 /* H265 */
#define EASY_SDK_VIDEO_CODEC_H264 /* H264 */
#define EASY_SDK_VIDEO_CODEC_MJPEG /* MJPEG */
#define EASY_SDK_VIDEO_CODEC_MPEG4 /* MPEG4 */
視頻幀標識支持
#define EASY_SDK_VIDEO_FRAME_I /* I幀 */
#define EASY_SDK_VIDEO_FRAME_P /* P幀 */
#define EASY_SDK_VIDEO_FRAME_B /* B幀 */
#define EASY_SDK_VIDEO_FRAME_J /* JPEG */
EASY_SDK_AUDIO_FRAME_FLAG數據可支持多種音頻格式:
#define EASY_SDK_AUDIO_CODEC_AAC /* AAC */
#define EASY_SDK_AUDIO_CODEC_G711A /* G711 alaw*/
#define EASY_SDK_AUDIO_CODEC_G711U /* G711 ulaw*/
#define EASY_SDK_AUDIO_CODEC_G726 /* G726 */
獲取更多信息
Copyright © EasyDarwin.org 2012-2016