diff --git a/src/Rtsp/RtspPlayer.cpp b/src/Rtsp/RtspPlayer.cpp index 747de9e5..de3aa0d8 100644 --- a/src/Rtsp/RtspPlayer.cpp +++ b/src/Rtsp/RtspPlayer.cpp @@ -223,6 +223,9 @@ void RtspPlayer::sendSetup(unsigned int track_idx) { _on_response = std::bind(&RtspPlayer::handleResSETUP, this, placeholders::_1, track_idx); auto &track = _sdp_track[track_idx]; auto baseUrl = _content_base + "/" + track->_control_surffix; + if (track->_control.find("://") != string::npos) { + baseUrl = track->_control; + } switch (_rtp_type) { case Rtsp::RTP_TCP: { sendRtspRequest("SETUP",baseUrl,{"Transport",StrPrinter << "RTP/AVP/TCP;unicast;interleaved=" << track->_type * 2 << "-" << track->_type * 2 + 1}); diff --git a/src/Rtsp/RtspPusher.cpp b/src/Rtsp/RtspPusher.cpp index 0172ca5b..dd7ef315 100644 --- a/src/Rtsp/RtspPusher.cpp +++ b/src/Rtsp/RtspPusher.cpp @@ -239,6 +239,9 @@ void RtspPusher::sendSetup(unsigned int track_idx) { _on_res_func = std::bind(&RtspPusher::handleResSetup, this, placeholders::_1, track_idx); auto &track = _track_vec[track_idx]; auto base_url = _content_base + "/" + track->_control_surffix; + if (track->_control.find("://") != string::npos) { + base_url = track->_control; + } switch (_rtp_type) { case Rtsp::RTP_TCP: { sendRtspRequest("SETUP", base_url, {"Transport",