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/EasyDarwingithub

  • 咱們同時提供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 */

獲取更多信息

郵件:support@easydarwin.org

WEB:www.EasyDarwin.org

QQ交流羣:465901074

Copyright © EasyDarwin.org 2012-2016

EasyDarwin