添加配置项:是否直接rtsp拉流代理

This commit is contained in:
xiongziliang 2019-07-19 11:54:29 +08:00
parent d71f1dd293
commit 9c0fb9e676
3 changed files with 13 additions and 1 deletions

View File

@ -161,11 +161,13 @@ namespace Rtsp {
const string kAuthBasic = RTSP_FIELD"authBasic";
const string kHandshakeSecond = RTSP_FIELD"handshakeSecond";
const string kKeepAliveSecond = RTSP_FIELD"keepAliveSecond";
const string kDirectProxy = RTSP_FIELD"directProxy";;
onceToken token([](){
//默认Md5方式认证
mINI::Instance()[kAuthBasic] = 0;
mINI::Instance()[kHandshakeSecond] = 15;
mINI::Instance()[kKeepAliveSecond] = 15;
mINI::Instance()[kDirectProxy] = 1;
},nullptr);
} //namespace Rtsp

View File

@ -202,6 +202,13 @@ extern const string kAuthBasic;
extern const string kHandshakeSecond;
//维持链接超时时间默认15秒
extern const string kKeepAliveSecond;
//rtsp拉流代理是否直接代理
//直接代理后支持任意编码格式但是会导致GOP缓存无法定位到I帧可能会导致花屏
//并且如果是tcp方式拉流如果rtp大于mtu会导致无法使用udp方式代理
//假定您的拉流源地址不是264或265或AAC那么你可以使用直接代理的方式来支持rtsp代理
//默认开启rtsp直接代理rtmp由于没有这些问题是强制开启直接代理的
extern const string kDirectProxy;
} //namespace Rtsp
////////////RTMP服务器配置///////////

View File

@ -130,7 +130,10 @@ void PlayerProxy::play(const string &strUrlTmp) {
MediaSource::Ptr mediaSource;
if(dynamic_pointer_cast<RtspPlayer>(_parser)){
//rtsp拉流
mediaSource = std::make_shared<RtspMediaSource>(_strVhost,_strApp,_strSrc);
GET_CONFIG(bool,directProxy,Rtsp::kDirectProxy);
if(directProxy){
mediaSource = std::make_shared<RtspMediaSource>(_strVhost,_strApp,_strSrc);
}
}else if(dynamic_pointer_cast<RtmpPlayer>(_parser)){
//rtmp拉流
mediaSource = std::make_shared<RtmpMediaSource>(_strVhost,_strApp,_strSrc);