EasyRTSPClient是EasyDarwin開源流媒體團隊開發、提供的一套很是穩定、易用、支持重連的RTSPClient工具,接口調用很是簡單,不再用像調用live555那樣處理整個RTSP OPTIONS/DESCRIBE/SETUP/PLAY的複雜流程,擔憂內存釋放的問題了,全平臺支持(包括Windows/Linux 32&64,ARM各平臺,Android,IOS),接口簡單且成熟穩定!
調用示例
-
EasyRTSPClient:以RTSPClient的形式,從RTSP URL將音視頻獲取到本地;html
Windows編譯方法,linux
Visual Studio 2010 編譯:./EasyRTSPClient-master/win/EasyRTSPClient.sln
Linux編譯方法,git
chmod +x ./Buildit ./Buildit
-
EasyDarwin:您也能夠參考EasyDarwin中EasyHLSModule(HLS直播模塊)、EasyRelayModule(RTSP轉發模塊)對EasyRTSPClient庫的調用方法,詳細請看:https://github.com/EasyDarwin/EasyDarwin;github
-
咱們同時提供Windows、Linux、ARM、Android、IOS版本的libEasyRTSPClient庫:EasyRTSPClient SDK商業使用須要通過受權才能使用,商業受權方案: http://www.easydss.com/EasyRTSPClient.html;我的及非商業用途可經過郵件發送至support@easydarwin.org進行申請,注意ARM版本須要附上交叉編譯工具鏈,咱們會幫您具體編譯,目前Github已經更新支持的平臺有:數據結構
支持平臺 芯片 目錄位置 Windows x86 ./Lib/ Windows x64 ./Lib/x64/ Linux x86 ./Lib/ Linux x64 ./Lib/x64/ 海思 arm-hisiv100-linux ./Lib/hisiv100/ 海思 arm-hisiv200-linux ./Lib/hisiv200/ 海思 arm-hisiv400-linux ./Lib/hisiv400/ Android armeabi EasyPlayer libEasyRTSPClient.so 郵件獲取更多平臺版本
調用流程
設計方法
EasyRTSPClient參考live555 testProg中的testRTSPClient示例程序,將一個live555 testRTSPClient封裝在一個類中,例如,咱們稱爲Class EasyRTSPClient,在EasyRTSP_Init接口調用時,咱們新建EasyRTSPClient對象、在EasyRTSP_OpenStream接口調用時,咱們創建線程,裝載live555的TaskScheduler->SingleStep(0),而後再進行RTSP的具體流程,這個就能夠直接用testRTSPClient的使用流程了、關閉RTSPClient,咱們調用EasyRTSP_CloseStream接口,內部實現參考testRTSPClient中的shutdownStream方法,最後delete EasyRTSPClient類,這樣整個過程就完整了!工具
RTSPSourceCallBack數據回調說明
EasyRTSPClient能夠回調出多種類型的數據:ui
#define EASY_SDK_VIDEO_FRAME_FLAG /* 視頻幀數據 */ #define EASY_SDK_AUDIO_FRAME_FLAG /* 音頻幀數據 */ #define EASY_SDK_EVENT_FRAME_FLAG /* 事件幀數據 */ #define EASY_SDK_RTP_FRAME_FLAG /* RTP幀數據 */ #define EASY_SDK_SDP_FRAME_FLAG /* SDP幀數據 */ #define EASY_SDK_MEDIA_INFO_FLAG /* 媒體類型數據 */
EASY_SDK_VIDEO_FRAME_FLAG數據可支持多種視頻格式:spa
#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 */
當回調出RTSP_FRAME_INFO->codec爲EASY_SDK_VIDEO_CODEC_H264數據,RTSP_FRAME_INFO->type爲EASY_SDK_VIDEO_FRAME_I關鍵幀時,咱們輸出的數據結構爲SPS+PPS+I的組合:設計
|---------sps---------|-------pps-------|---------------I Frame---------------| | | | | 0-----------------reserved1---------reserved2-------------------------------length
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 */
獲取更多信息
QQ交流羣:465901074
Copyright © EasyDarwin.org 2012-2016