#include <iostream>
using namespace std;
#include "EasyTypes.h"
#include "EasyRTSPClientAPI.h"
class CRtspClientCtrl
{
public:
CRtspClientCtrl(void);
~CRtspClientCtrl(void);
void Start();
private:
Easy_RTSP_Handle m_rtspHandle;
static int Easy_APICALL RTSPSourceCallBack2( int _channelId, int *_channelPtr, int _frameType, char *pBuf, RTSP_FRAME_INFO* _frameInfo);
};
#include "RtspClientCtrl.h"
CRtspClientCtrl::CRtspClientCtrl(void)
{
m_rtspHandle = NULL;
}
CRtspClientCtrl::~CRtspClientCtrl(void)
{
}
void CRtspClientCtrl::Start()
{
EasyRTSP_Init(&m_rtspHandle);
EasyRTSP_SetCallback(m_rtspHandle,RTSPSourceCallBack2);
unsigned int mediaType = EASY_SDK_VIDEO_FRAME_FLAG/*|EASY_SDK_AUDIO_FRAME_FLAG*/;
EasyRTSP_OpenStream(m_rtspHandle,0,"rtsp://10.0.192.74:8554/live",RTP_OVER_TCP,mediaType,0,0,this,1000,0);
}
int Easy_APICALL CRtspClientCtrl::RTSPSourceCallBack2( int _channelId, int *_chPtr, int _frameType, char *pBuf, RTSP_FRAME_INFO* _frameInfo )
{
CRtspClientCtrl* pHLSSession = (CRtspClientCtrl *)_chPtr;
if (_frameInfo != NULL)
cout << "============================type:"<<_frameType << "size:" << _frameInfo->length << endl;
return 0;
}
EasyRTSPClient是EasyDarwin开源流媒体社区基于live555封装的一款稳定、易用、支持重连的RTSPClient工具,接口非常简单...
今天先简单介绍一下EasyRTSPClient,后面的文章我们再仔细介绍EasyRTSPClient内部的设计过程:
EasyRTSPClient是什么?
EasyRTSPClient是EasyDarwin开源流媒体社区基于live555封装的一款稳定、易用、支持重连的RTSPClient工具,接口非常简单,我们提供了多种操作示例:
EasyRTSPClient:以RTSPClient的形式,从RTSP URL将音视频获取到本地;
EasyDarwin:您也可以参考EasyDarwin中EasyHLSModule、EasyRelayModule对EasyRTSPClient库的调用方法,详细请看:https://github.com/EasyDarwin/EasyDarwin;
调用过程