因WebRtcPlayer中使用RtspMediaSource的共享指针,特定情况下引起媒体注销无法触发的问题。 - 重现步骤 在ZL的webrtc demo页面推流 浏览器打开如下html webrtc.html 关闭推流器页面,推流器停止推流 webrtc.htm浏览器console->network将观察到:即使推流停止,但webrtc sdp请求一直能成功获取sdp,且流媒体一直不注销 - 原因 因为每个WebRtc 播放 SDP请求都会产生 WebRtcPlayer,产生RtspMediaSource的共享指针,产生强引用。 而DTLS超时释放需要一定的时间,WebRtcPlayer销毁需要超时。如果请求sdp的时间足够短,强引用会一直存在。将永远无法触发媒体注销 - 场景 webrtc播放存在重试,但是udp不通。DTLS无法创建 有人对ZLM执行恶意攻击,短时间内不断请求SDP但是不建立WebRTC通信
Name |
Last commit
|
Last Update |
---|---|---|
.. | ||
CMakeLists.txt | 正在载入提交数据... | |
DtlsTransport.cpp | 正在载入提交数据... | |
DtlsTransport.hpp | 正在载入提交数据... | |
IceServer.cpp | 正在载入提交数据... | |
IceServer.hpp | 正在载入提交数据... | |
Nack.cpp | 正在载入提交数据... | |
Nack.h | 正在载入提交数据... | |
RtpExt.cpp | 正在载入提交数据... | |
RtpExt.h | 正在载入提交数据... | |
SctpAssociation.cpp | 正在载入提交数据... | |
SctpAssociation.hpp | 正在载入提交数据... | |
Sdp.cpp | 正在载入提交数据... | |
Sdp.h | 正在载入提交数据... | |
SrtpSession.cpp | 正在载入提交数据... | |
SrtpSession.hpp | 正在载入提交数据... | |
StunPacket.cpp | 正在载入提交数据... | |
StunPacket.hpp | 正在载入提交数据... | |
TwccContext.cpp | 正在载入提交数据... | |
TwccContext.h | 正在载入提交数据... | |
Utils.hpp | 正在载入提交数据... | |
WebRtcEchoTest.cpp | 正在载入提交数据... | |
WebRtcEchoTest.h | 正在载入提交数据... | |
WebRtcPlayer.cpp | 正在载入提交数据... | |
WebRtcPlayer.h | 正在载入提交数据... | |
WebRtcPusher.cpp | 正在载入提交数据... | |
WebRtcPusher.h | 正在载入提交数据... | |
WebRtcSession.cpp | 正在载入提交数据... | |
WebRtcSession.h | 正在载入提交数据... | |
WebRtcTransport.cpp | 正在载入提交数据... | |
WebRtcTransport.h | 正在载入提交数据... | |
answer.sdp | 正在载入提交数据... | |
janus_answer.sdp | 正在载入提交数据... | |
janus_offer.sdp | 正在载入提交数据... | |
logger.h | 正在载入提交数据... | |
offer-simulcast.sdp | 正在载入提交数据... | |
offer.sdp | 正在载入提交数据... | |
readme.md | 正在载入提交数据... |