From f420509c5c489246f75125af0d4c8585da0e205e Mon Sep 17 00:00:00 2001 From: lyg1949 Date: Wed, 15 Jul 2020 14:17:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=82=B9=E6=92=ADrtmp?= =?UTF-8?q?=E6=97=B6=E5=A4=9A=E5=87=BA=E4=B8=80=E4=B8=AA=E5=90=8E=E7=BC=80?= =?UTF-8?q?=E5=90=8D=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vlc,mpv等播放rtmp时的url规则与代码中注释的不同,导致出现2个后缀名 --- src/Rtmp/RtmpSession.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Rtmp/RtmpSession.cpp b/src/Rtmp/RtmpSession.cpp index d52b0943..777f3a13 100644 --- a/src/Rtmp/RtmpSession.cpp +++ b/src/Rtmp/RtmpSession.cpp @@ -380,7 +380,12 @@ string RtmpSession::getStreamId(const string &str){ //vlc和ffplay在播放 rtmp://127.0.0.1/record/0.mp4时, //传过来的url会是rtmp://127.0.0.1/record/mp4:0, //我们在这里还原成0.mp4 - stream_id = stream_id.substr(pos + 1) + "." + stream_id.substr(0,pos); + //实际使用时发现vlc,mpv等会传过来rtmp://127.0.0.1/record/mp4:0.mp4,这里做个判断 + auto ext = stream_id.substr(0,pos); + stream_id = stream_id.substr(pos + 1); + if(stream_id.find(ext) == string::npos){ + stream_id = stream_id + "." + ext; + } } if(params.empty()){