Commit ae64bc9b by xiongziliang

不指定协议转换时,默认转换hls,rtxp

提高EasyDarwin的rtsp推流兼容性
parent d41d116a
......@@ -211,10 +211,18 @@ void installWebHook(){
bool enableHls = true;
bool enableMP4 = false;
//加try catch目的是兼容之前的hook接口,用户可以不传递enableRtxp、enableHls、enableMP4参数
try { enableRtxp = obj["enableRtxp"].asBool(); } catch (...) {}
try { enableHls = obj["enableHls"].asBool(); } catch (...) {}
try { enableMP4 = obj["enableMP4"].asBool(); } catch (...) {}
//兼容用户不传递enableRtxp、enableHls、enableMP4参数
if(obj.isMember("enableRtxp")){
enableRtxp = obj["enableRtxp"].asBool();
}
if(obj.isMember("enableHls")){
enableHls = obj["enableHls"].asBool();
}
if(obj.isMember("enableMP4")){
enableMP4 = obj["enableMP4"].asBool();
}
invoker(err,enableRtxp,enableHls,enableMP4);
}else{
......
......@@ -142,6 +142,12 @@ void RtspSession::onRecv(const Buffer::Ptr &pBuf) {
}
}
//字符串是否以xx结尾
static inline bool end_of(const string &str, const string &substr){
auto pos = str.rfind(substr);
return pos != string::npos && pos == str.size() - substr.size();
};
void RtspSession::onWholeRtspPacket(Parser &parser) {
string strCmd = parser.Method(); //提取出请求命令字
_iCseq = atoi(parser["CSeq"].data());
......@@ -241,6 +247,13 @@ void RtspSession::handleReq_ANNOUNCE(const Parser &parser) {
throw SockException(Err_shutdown,err);
}
auto full_url = parser.FullUrl();
if(end_of(full_url,".sdp")){
//去除.sdp后缀,防止EasyDarwin推流器强制添加.sdp后缀
full_url = full_url.substr(0,full_url.length() - 3);
_mediaInfo.parse(full_url);
}
SdpParser sdpParser(parser.Content());
_strSession = makeRandStr(12);
_aTrackInfo = sdpParser.getAvailableTrack();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论