目录
transport-cc goog-remb (webrtc中的两种码率算法)
Mediasource之主要解复合MultiMediaSourceMuxer

POST /index/api/webrtc?app=live&stream=test&type=play HTTP/1.1
- HttpSession::onRecvHeader
- HttpSession::Handle_Req_POST
-
-
- HttpSession::Handle_Req_POST
- if (totalContentLen > 0 && (size_t)totalContentLen < maxReqSize )
- _contentCallBack = [this,parserCopy](const char *data,size_t len) {
- //恢复http头
- _parser = parserCopy;
- //设置content
- _parser.setContent(string(data,len));
- //触发http事件,emitHttpEvent内部会选择是否关闭连接
- emitHttpEvent(true);
- //清空数据,节省内存
- _parser.Clear();
- //content已经接收完毕
- return false;
- };
-
-
- HttpSession::onRecvContent(const char *data,size_t len)
- if (_contentCallBack)
- _contentCallBack(data,len);
-
-
- HttpSession::emitHttpEvent
- // 广播HTTP事件
- NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastHttpRequest,_parser,invoker,
- consumed,static_cast<SockInfo &>(*this));


- // 主函数中调用web接口安装函数
- installWebApi
- addHttpListener();
- api_regist("/index/api/webrtc",[](API_ARGS_STRING_ASYNC){
- auto type = allArgs["type"];
- auto offer = allArgs.getArgs();
- WebRtcPluginManager::Instance().getAnswerSdp(*(static_cast<Session *>(&sender)), type,
- WebRtcArgsImp(allArgs, sender.getIdentifier()),
- [invoker, val, offer, headerOut](const WebRtcInterface &exchanger) mutable {
- headerOut["Content-Type"] = HttpFileManager::getContentType(".json");
- headerOut["Access-Control-Allow-Origin"] = "*";
- val["sdp"] = const_cast<WebRtcInterface &>(exchanger).getAnswerSdp(offer);
- val["id"] = exchanger.getIdentifier();
- val["type"] = "answer";
- invoker(200, headerOut, val.toStyledString());
- });
- });
-
-
- addHttpListener
- //注册监听kBroadcastHttpRequest事件
- NoticeCenter::Instance().addListener(&web_api_tag, Broadcast::kBroadcastHttpRequest,
- [](BroadcastHttpRequestArgs) {
- auto it = s_map_api.find(parser.Url());
- it->second(parser, invoker, sender);
- }
根据url找到对应的事件回调,最终会调用WebRtcPluginManager::Instance().getAnswerSdp。
- WebRtcPluginManager::getAnswerSdp
- auto it = _map_creator.find(type);
- it->second(sender, args, cb);
-
-
- // 静态注册插件
- WebRtcPluginManager::Instance().registerPlugin("play", play_plugin);
-
-
- void play_plugin(Session &sender, const WebRtcArgs &args, const WebRtcPluginManager::onCreateRtc &cb)
- // 使用rtsp媒体源,两者均是传输的rtp流
- info._schema = RTSP_SCHEMA;
- MediaSource::findAsync(info, session_ptr, [=](const MediaSource::Ptr &src_in) mutable {
- auto src = dynamic_pointer_cast<RtspMediaSource>(src_in);
- // 还原成rtc,目的是为了hook时识别哪种播放协议
- info._schema = RTC_SCHEMA;
- auto rtc = WebRtcPlayer::create(EventPollerPool::Instance().getPoller(), src, info, preferred_tcp);
- cb(*rtc); // 发送answer SDP给web端
- });



stun , dtls 先握手把对称密钥通过非对称加密方式 传输 过去后,之后的数据都通过这个对称密钥进行加密。 srtp 加密 rtp . .
Web端首先根据协商的IP和端口,服务端webrtc的端口是8000,发送STUN命令再次获取STUN地址。
首次连接,服务端会创建对应的session。
WebRtcSession::WebRtcSession(const Socket::Ptr &sock) : Session(sock)
socklen_t addr_len = sizeof(_peer_addr);
getpeername(sock->rawFD(), (struct sockaddr *)&_peer_addr, &addr_len);
WebRtcSession::onRecv_l(const char *data, size_t len)
// 首次进入,根据username获取之前创建的transport.
auto user_name = getUserName(data, len); // 此处的username就是之前设置的transport标识
auto transport = WebRtcTransportManager::Instance().getItem(user_name);
transport->setSession(shared_from_this());
_transport = std::move(transport);
_transport->inputSockData((char *)data, len, (struct sockaddr *)&_peer_addr);
WebRtcTransport::inputSockData
// 处理STUN消息
if (RTC::StunPacket::IsStun((const uint8_t *)buf, len))
std::unique_ptr
_ice_server->ProcessStunPacket(packet.get(), tuple);
return;
// 处理
if (is_dtls(buf))
_dtls_transport->ProcessDtlsData((uint8_t *)buf, len);
return;
// 由于是拉流,不存在rtp数据,但是有rtcp数据
if (is_rtcp(buf))
if (_srtp_session_recv->DecryptSrtcp((uint8_t *)buf, &len))
onRtcp(buf, len);
DTLS交互完成后,接下来启动媒体传输
WebRtcTransport::OnDtlsTransportConnected
onStartWebRTC();
WebRtcPlayer::onStartWebRTC
WebRtcTransportImp::onStartWebRTC();
_reader = _play_src->getRing()->attach(getPoller(), true);
weak_ptr
weak_ptr
_reader->setReadCB([weak_self](const RtspMediaSource::RingDataType &pkt) {
size_t i = 0;
pkt->for_each([&](const RtpPacket::Ptr &rtp) {
strong_self->onSendRtp(rtp, ++i == pkt->size());
});
});
"Transport-CC" 是 WebRTC(Web实时通信)中的一种传输拥塞控制机制,用于管理实时媒体(音频和视频)的传输,以适应网络状况,确保通信的连续性。它有助于根据网络条件调整媒体的比特率,以确保在可用带宽的情况下提供流畅且不中断的通信体验。它用于避免过载网络,以提供最佳可能的质量。
"Goog-REMB"(Google Receiver Estimated Maximum Bitrate)是由Google开发的一种扩展,用于实时传输控制协议(RTCP)。它在WebRTC中用于估算接收方对特定媒体流能够处理的最大比特率。然后,这些信息会传达给发送方,使其能够调整正在传输的媒体的比特率,以匹配接收方的容量,从而提高通信的整体质量。
这些术语与WebRTC的技术相关,用于优化互联网上的实时通信的质量和性能

play与上面类似
下面是rtspmediasourceImp的继承关系

push
- request:
-
- POST /index/api/webrtc?app=2fbe2a926db241b483ab4ea79950fb0c&stream=dxw3Stream&type=push
-
- # header:
-
- Accept-Encoding : gzip
-
- Connection : Keep-Alive
-
- Content-Length : 3843
-
- Content-Type : application/json;charset=utf-8
-
- contentType : application/json;charset=UTF-8
-
- Host : 10.60.100.196:6080
-
- User-Agent : okhttp/4.10.0
-
- # content:
-
- v=0
-
- o=- 8012211977922866648 2 IN IP4 127.0.0.1
-
- s=-
-
- t=0 0
-
- a=group:BUNDLE 0 1
-
- a=msid-semantic: WMS
-
- m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
-
- c=IN IP4 0.0.0.0
-
- a=rtcp:9 IN IP4 0.0.0.0
-
- a=ice-ufrag:w968
-
- a=ice-pwd:JlvPX+PRmgl9rqj80WFp/SMs
-
- a=ice-options:trickle renomination
-
- a=fingerprint:sha-256 B9:B2:FF:EB:8E:68:30:F8:4F:4C:3B:0A:15:9B:29:98:FE:A5:04:E7:DD:9F:D3:AE:AA:A4:6B:74:40:04:FB:59
-
- a=setup:actpass
-
- a=mid:0
-
- a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
-
- a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
-
- a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
-
- a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
-
- a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
-
- a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
-
- a=sendonly
-
- a=msid:- 85bd69e4-7383-49ff-a10e-817be8850943
-
- a=rtcp-mux
-
- a=rtpmap:111 opus/48000/2
-
- a=rtcp-fb:111 transport-cc
-
- a=fmtp:111 minptime=10;useinbandfec=1
-
- a=rtpmap:103 ISAC/16000
-
- a=rtpmap:104 ISAC/32000
-
- a=rtpmap:9 G722/8000
-
- a=rtpmap:102 ILBC/8000
-
- a=rtpmap:0 PCMU/8000
-
- a=rtpmap:8 PCMA/8000
-
- a=rtpmap:106 CN/32000
-
- a=rtpmap:105 CN/16000
-
- a=rtpmap:13 CN/8000
-
- a=rtpmap:110 telephone-event/48000
-
- a=rtpmap:112 telephone-event/32000
-
- a=rtpmap:113 telephone-event/16000
-
- a=rtpmap:126 telephone-event/8000
-
- a=ssrc:2056661234 cname:kIdPjq4CEzIEdhBD
-
- a=ssrc:2056661234 msid:- 85bd69e4-7383-49ff-a10e-817be8850943
-
- a=ssrc:2056661234 mslabel:-
-
- a=ssrc:2056661234 label:85bd69e4-7383-49ff-a10e-817be8850943
-
- m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 124 125
-
- c=IN IP4 0.0.0.0
-
- a=rtcp:9 IN IP4 0.0.0.0
-
- a=ice-ufrag:w968
-
- a=ice-pwd:JlvPX+PRmgl9rqj80WFp/SMs
-
- a=ice-options:trickle renomination
-
- a=fingerprint:sha-256 B9:B2:FF:EB:8E:68:30:F8:4F:4C:3B:0A:15:9B:29:98:FE:A5:04:E7:DD:9F:D3:AE:AA:A4:6B:74:40:04:FB:59
-
- a=setup:actpass
-
- a=mid:1
-
- a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
-
- a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
-
- a=extmap:13 urn:3gpp:video-orientation
-
- a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
-
- a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
-
- a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
-
- a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
-
- a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
-
- a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
-
- a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
-
- a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
-
- a=sendonly
-
- a=msid:- c0476ef1-6022-4371-adc6-dba849de428a
-
- a=rtcp-mux
-
- a=rtcp-rsize
-
- a=rtpmap:96 VP8/90000
-
- a=rtcp-fb:96 goog-remb
-
- a=rtcp-fb:96 transport-cc
-
- a=rtcp-fb:96 ccm fir
-
- a=rtcp-fb:96 nack
-
- a=rtcp-fb:96 nack pli
-
- a=rtpmap:97 rtx/90000
-
- a=fmtp:97 apt=96
-
- a=rtpmap:98 VP9/90000
-
- a=rtcp-fb:98 goog-remb
-
- a=rtcp-fb:98 transport-cc
-
- a=rtcp-fb:98 ccm fir
-
- a=rtcp-fb:98 nack
-
- a=rtcp-fb:98 nack pli
-
- a=rtpmap:99 rtx/90000
-
- a=fmtp:99 apt=98
-
- a=rtpmap:100 H264/90000
-
- a=rtcp-fb:100 goog-remb
-
- a=rtcp-fb:100 transport-cc
-
- a=rtcp-fb:100 ccm fir
-
- a=rtcp-fb:100 nack
-
- a=rtcp-fb:100 nack pli
-
- a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
-
- a=rtpmap:101 rtx/90000
-
- a=fmtp:101 apt=100
-
- a=rtpmap:127 red/90000
-
- a=rtpmap:124 rtx/90000
-
- a=fmtp:124 apt=127
-
- a=rtpmap:125 ulpfec/90000
-
- a=ssrc-group:FID 3955139128 3307115671
-
- a=ssrc:3955139128 cname:kIdPjq4CEzIEdhBD
-
- a=ssrc:3955139128 msid:- c0476ef1-6022-4371-adc6-dba849de428a
-
- a=ssrc:3955139128 mslabel:-
-
- a=ssrc:3955139128 label:c0476ef1-6022-4371-adc6-dba849de428a
-
- a=ssrc:3307115671 cname:kIdPjq4CEzIEdhBD
-
- a=ssrc:3307115671 msid:- c0476ef1-6022-4371-adc6-dba849de428a
-
- a=ssrc:3307115671 mslabel:-
-
- a=ssrc:3307115671 label:c0476ef1-6022-4371-adc6-dba849de428a
-
-
-
- # response:
-
- {
- "code" : 0,
- "id" : "wKgSAx9AH0A=_44",
- "sdp" : "v=0\r\no=- 8012211977922866648 2 IN IP4 10.60.100.196\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1\r\na=msid-semantic: WMS\r\na=ice-lite\r\nm=audio 8000 UDP/TLS/RTP/SAVPF 0\r\nc=IN IP4 10.60.100.196\r\na=rtcp:8000 IN IP4 10.60.100.196\r\na=ice-ufrag:wKgSAx9AH0A=_44\r\na=ice-pwd:Yn7cp275AyIjOGhJc2wBWC8E\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5D:43:0F:2C:BD:82:BB:C5:B4:77:42:D3:8C:2B:D5:1A:32:59:39:1D:78:7A:BB:88:E2:EF:2A:60:37:AD:6E:A3\r\na=setup:passive\r\na=mid:0\r\na=ice-lite\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:0 PCMU/8000/1\r\na=candidate:udpcandidate 1 udp 110 10.60.100.196 8000 typ host\r\na=candidate:tcpcandidate 1 tcp 105 10.60.100.196 8000 typ host tcptype passive\r\nm=video 8000 UDP/TLS/RTP/SAVPF 100 101\r\nc=IN IP4 10.60.100.196\r\na=rtcp:8000 IN IP4 10.60.100.196\r\na=ice-ufrag:wKgSAx9AH0A=_44\r\na=ice-pwd:Yn7cp275AyIjOGhJc2wBWC8E\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5D:43:0F:2C:BD:82:BB:C5:B4:77:42:D3:8C:2B:D5:1A:32:59:39:1D:78:7A:BB:88:E2:EF:2A:60:37:AD:6E:A3\r\na=setup:passive\r\na=mid:1\r\na=ice-lite\r\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\na=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:100 H264/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 transport-cc\r\na=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=candidate:udpcandidate 1 udp 110 10.60.100.196 8000 typ host\r\na=candidate:tcpcandidate 1 tcp 105 10.60.100.196 8000 typ host tcptype passive\r\n",
- "type" : "answer"
- }
-
-
-
- 2024-03-21 16:02:24.338 W [MediaServer.exe] [23784-event poller 11] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
- 2024-03-21 16:02:24.354 W [MediaServer.exe] [23784-event poller 3] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
- 2024-03-21 16:02:24.364 W [MediaServer.exe] [23784-event poller 3] WebHook.cpp:194 operator () | hook https://10.60.100.196:18080/index/hook/on_stream_not_found 16ms,failed[auth failed]: code:404 msg:"\u8d44\u6e90\u672a\u627e\u5230":{
- "app" : "2fbe2a926db241b483ab4ea79950fb0c",
- "hook_index" : 2020,
- "id" : "221-704",
- "ip" : "10.60.100.196",
- "mediaServerId" : "wvpmediaserver001",
- "params" : "app=2fbe2a926db241b483ab4ea79950fb0c&stream=dxw3Stream&type=play&session=221-704",
- "port" : 61102,
- "schema" : "rtsp",
- "stream" : "dxw3Stream",
- "vhost" : "__defaultVhost__"
- }
-
- 2024-03-21 16:02:24.367 I [MediaServer.exe] [23784-event poller 11] WebRtcSession.cpp:85 onRecv_l | 222-1452(10.62.14.104:45023)
- 2024-03-21 16:02:24.367 D [MediaServer.exe] [23784-event poller 11] IceServer.cpp:340 HandleTuple | transition from state 'new' to 'connected'
- 2024-03-21 16:02:24.367 I [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:170 OnIceServerSelectedTuple | wKgSAx9AH0A=_44 select tuple udp 10.62.14.104:45023
- 2024-03-21 16:02:24.367 I [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:176 OnIceServerConnected | wKgSAx9AH0A=_44
- 2024-03-21 16:02:24.378 E [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:744 ProcessDtlsData | cannot process data while not running
- 2024-03-21 16:02:24.411 D [MediaServer.exe] [23784-event poller 11] IceServer.cpp:429 HandleTuple | transition from state 'connected' to 'completed'
- 2024-03-21 16:02:24.411 I [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:180 OnIceServerCompleted | wKgSAx9AH0A=_44
- 2024-03-21 16:02:24.411 I [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:232 OnDtlsTransportConnecting | wKgSAx9AH0A=_44
- 2024-03-21 16:02:24.411 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:699 Run | running [role:server]
- 2024-03-21 16:02:24.411 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1411 OnSslInfo | DTLS handshake start
- 2024-03-21 16:02:24.411 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
- 2024-03-21 16:02:24.411 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'before SSL initialization']
- 2024-03-21 16:02:24.426 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
- 2024-03-21 16:02:24.426 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client hello']
- 2024-03-21 16:02:24.426 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server hello']
- 2024-03-21 16:02:24.427 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate']
- 2024-03-21 16:02:24.428 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write key exchange']
- 2024-03-21 16:02:24.428 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate request']
- 2024-03-21 16:02:24.428 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
- 2024-03-21 16:02:24.428 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'SSLv3/TLS write server done']
- 2024-03-21 16:02:24.428 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 2111 bytes of DTLS data ready to sent to the peer
- 2024-03-21 16:02:24.428 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 100ms
- 2024-03-21 16:02:24.434 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client certificate']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client key exchange']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read certificate verify']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read change cipher spec']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read finished']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write change cipher spec']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write finished']
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1415 OnSslInfo | DTLS handshake done
- 2024-03-21 16:02:24.435 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
- 2024-03-21 16:02:24.436 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1166 CheckRemoteFingerprint | valid remote fingerprint
- 2024-03-21 16:02:24.436 D [MediaServer.exe] [23784-event poller 11] DtlsTransport.cpp:1340 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AES128_CM_SHA1_80
- 2024-03-21 16:02:24.436 I [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:197 OnDtlsTransportConnected | wKgSAx9AH0A=_44
- 2024-03-21 16:02:24.694 I [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:1012 createRtpChannel | create rtp receiver of ssrc:2056661234, rid:, codec:PCMU
- 2024-03-21 16:02:24.695 I [MediaServer.exe] [23784-event poller 11] MediaSource.cpp:517 emitEvent | 媒体注册:rtsp://__defaultVhost__/2fbe2a926db241b483ab4ea79950fb0c/dxw3Stream
- 2024-03-21 16:02:24.695 D [MediaServer.exe] [23784-event poller 3] MediaSource.cpp:456 operator () | 收到媒体注册事件,回复播放器:rtsp://__defaultVhost__/2fbe2a926db241b483ab4ea79950fb0c/dxw3Stream
- 2024-03-21 16:02:24.696 I [MediaServer.exe] [23784-event poller 3] WebRtcTransport.cpp:539 WebRtcTransportImp | wKgSAx9AH0A=_45
- 2024-03-21 16:02:24.704 D [MediaServer.exe] [23784-event poller 3] WebApi.cpp:261 http api debug |
-
- # request:
play:
-
- POST /index/api/webrtc?app=2fbe2a926db241b483ab4ea79950fb0c&stream=dxw3Stream&type=play
-
- # header:
-
- Accept : application/json, text/plain, */*
-
- Accept-Encoding : gzip, deflate, br
-
- Accept-Language : zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,en-GB;q=0.6
-
- Connection : keep-alive
-
- Content-Length : 6474
-
- Content-Type : text/plain;charset=UTF-8
-
- Host : 10.60.100.196:10443
-
- Origin : https://10.60.100.196:18080
-
- sec-ch-ua : "Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"
-
- sec-ch-ua-mobile : ?0
-
- sec-ch-ua-platform : "Windows"
-
- Sec-Fetch-Dest : empty
-
- Sec-Fetch-Mode : cors
-
- Sec-Fetch-Site : same-site
-
- User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
-
- # content:
-
- v=0
-
- o=- 2603351187133562715 2 IN IP4 127.0.0.1
-
- s=-
-
- t=0 0
-
- a=group:BUNDLE 0 1
-
- a=extmap-allow-mixed
-
- a=msid-semantic: WMS
-
- m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 35 36 37 38 102 103 104 105 106 107 108 109 127 125 39 40 41 42 43 44 45 46 47 48 112 113 114 115 116 117 118 49
-
- c=IN IP4 0.0.0.0
-
- a=rtcp:9 IN IP4 0.0.0.0
-
- a=ice-ufrag:gqVD
-
- a=ice-pwd:iY37aLVC9/+wM0qGasxp108p
-
- a=ice-options:trickle
-
- a=fingerprint:sha-256 AF:9B:DE:28:34:80:D3:82:E9:53:CA:FF:F2:12:D6:B1:A4:31:38:27:82:07:70:C1:E0:DC:66:0B:62:41:42:2D
-
- a=setup:actpass
-
- a=mid:0
-
- a=extmap:1 urn:ietf:params:rtp-hdrext:toffset
-
- a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
-
- a=extmap:3 urn:3gpp:video-orientation
-
- a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
-
- a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
-
- a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
-
- a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
-
- a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
-
- a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
-
- a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
-
- a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
-
- a=recvonly
-
- a=rtcp-mux
-
- a=rtcp-rsize
-
- a=rtpmap:96 VP8/90000
-
- a=rtcp-fb:96 goog-remb
-
- a=rtcp-fb:96 transport-cc
-
- a=rtcp-fb:96 ccm fir
-
- a=rtcp-fb:96 nack
-
- a=rtcp-fb:96 nack pli
-
- a=rtpmap:97 rtx/90000
-
- a=fmtp:97 apt=96
-
- a=rtpmap:98 VP9/90000
-
- a=rtcp-fb:98 goog-remb
-
- a=rtcp-fb:98 transport-cc
-
- a=rtcp-fb:98 ccm fir
-
- a=rtcp-fb:98 nack
-
- a=rtcp-fb:98 nack pli
-
- a=fmtp:98 profile-id=0
-
- a=rtpmap:99 rtx/90000
-
- a=fmtp:99 apt=98
-
- a=rtpmap:100 VP9/90000
-
- a=rtcp-fb:100 goog-remb
-
- a=rtcp-fb:100 transport-cc
-
- a=rtcp-fb:100 ccm fir
-
- a=rtcp-fb:100 nack
-
- a=rtcp-fb:100 nack pli
-
- a=fmtp:100 profile-id=2
-
- a=rtpmap:101 rtx/90000
-
- a=fmtp:101 apt=100
-
- a=rtpmap:35 VP9/90000
-
- a=rtcp-fb:35 goog-remb
-
- a=rtcp-fb:35 transport-cc
-
- a=rtcp-fb:35 ccm fir
-
- a=rtcp-fb:35 nack
-
- a=rtcp-fb:35 nack pli
-
- a=fmtp:35 profile-id=1
-
- a=rtpmap:36 rtx/90000
-
- a=fmtp:36 apt=35
-
- a=rtpmap:37 VP9/90000
-
- a=rtcp-fb:37 goog-remb
-
- a=rtcp-fb:37 transport-cc
-
- a=rtcp-fb:37 ccm fir
-
- a=rtcp-fb:37 nack
-
- a=rtcp-fb:37 nack pli
-
- a=fmtp:37 profile-id=3
-
- a=rtpmap:38 rtx/90000
-
- a=fmtp:38 apt=37
-
- a=rtpmap:102 H264/90000
-
- a=rtcp-fb:102 goog-remb
-
- a=rtcp-fb:102 transport-cc
-
- a=rtcp-fb:102 ccm fir
-
- a=rtcp-fb:102 nack
-
- a=rtcp-fb:102 nack pli
-
- a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
-
- a=rtpmap:103 rtx/90000
-
- a=fmtp:103 apt=102
-
- a=rtpmap:104 H264/90000
-
- a=rtcp-fb:104 goog-remb
-
- a=rtcp-fb:104 transport-cc
-
- a=rtcp-fb:104 ccm fir
-
- a=rtcp-fb:104 nack
-
- a=rtcp-fb:104 nack pli
-
- a=fmtp:104 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
-
- a=rtpmap:105 rtx/90000
-
- a=fmtp:105 apt=104
-
- a=rtpmap:106 H264/90000
-
- a=rtcp-fb:106 goog-remb
-
- a=rtcp-fb:106 transport-cc
-
- a=rtcp-fb:106 ccm fir
-
- a=rtcp-fb:106 nack
-
- a=rtcp-fb:106 nack pli
-
- a=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
-
- a=rtpmap:107 rtx/90000
-
- a=fmtp:107 apt=106
-
- a=rtpmap:108 H264/90000
-
- a=rtcp-fb:108 goog-remb
-
- a=rtcp-fb:108 transport-cc
-
- a=rtcp-fb:108 ccm fir
-
- a=rtcp-fb:108 nack
-
- a=rtcp-fb:108 nack pli
-
- a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
-
- a=rtpmap:109 rtx/90000
-
- a=fmtp:109 apt=108
-
- a=rtpmap:127 H264/90000
-
- a=rtcp-fb:127 goog-remb
-
- a=rtcp-fb:127 transport-cc
-
- a=rtcp-fb:127 ccm fir
-
- a=rtcp-fb:127 nack
-
- a=rtcp-fb:127 nack pli
-
- a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
-
- a=rtpmap:125 rtx/90000
-
- a=fmtp:125 apt=127
-
- a=rtpmap:39 H264/90000
-
- a=rtcp-fb:39 goog-remb
-
- a=rtcp-fb:39 transport-cc
-
- a=rtcp-fb:39 ccm fir
-
- a=rtcp-fb:39 nack
-
- a=rtcp-fb:39 nack pli
-
- a=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f
-
- a=rtpmap:40 rtx/90000
-
- a=fmtp:40 apt=39
-
- a=rtpmap:41 H264/90000
-
- a=rtcp-fb:41 goog-remb
-
- a=rtcp-fb:41 transport-cc
-
- a=rtcp-fb:41 ccm fir
-
- a=rtcp-fb:41 nack
-
- a=rtcp-fb:41 nack pli
-
- a=fmtp:41 level-asymmetry-allowed=1;pack
-
- # response:
-
- {
- "code" : 0,
- "id" : "wKgSAx9AH0A=_45",
- "sdp" : "v=0\r\no=- 2603351187133562715 2 IN IP4 10.60.100.196\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1\r\na=msid-semantic: WMS\r\na=ice-lite\r\nm=video 8000 UDP/TLS/RTP/SAVPF 106 107\r\nc=IN IP4 10.60.100.196\r\na=rtcp:8000 IN IP4 10.60.100.196\r\na=ice-ufrag:wKgSAx9AH0A=_45\r\na=ice-pwd:lRD99Pf1Co1vushq2tzTDWX4\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5D:43:0F:2C:BD:82:BB:C5:B4:77:42:D3:8C:2B:D5:1A:32:59:39:1D:78:7A:BB:88:E2:EF:2A:60:37:AD:6E:A3\r\na=setup:passive\r\na=mid:0\r\na=ice-lite\r\na=extmap:1 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\na=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=sendonly\r\na=rtcp-mux\r\na=rtpmap:106 H264/90000\r\na=rtcp-fb:106 ccm fir\r\na=rtcp-fb:106 goog-remb\r\na=rtcp-fb:106 nack\r\na=rtcp-fb:106 nack pli\r\na=rtcp-fb:106 transport-cc\r\na=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:107 rtx/90000\r\na=fmtp:107 apt=106\r\na=msid:zlmediakit-mslabel zlmediakit-label\r\na=ssrc:1 cname:zlmediakit-rtp\r\na=ssrc:1 msid:zlmediakit-mslabel zlmediakit-label\r\na=ssrc:1 mslabel:zlmediakit-mslabel\r\na=ssrc:1 label:zlmediakit-label\r\na=ssrc:3 cname:zlmediakit-rtp\r\na=ssrc:3 msid:zlmediakit-mslabel zlmediakit-label\r\na=ssrc:3 mslabel:zlmediakit-mslabel\r\na=ssrc:3 label:zlmediakit-label\r\na=ssrc-group:FID 1 3\r\na=candidate:udpcandidate 1 udp 110 10.60.100.196 8000 typ host\r\na=candidate:tcpcandidate 1 tcp 105 10.60.100.196 8000 typ host tcptype passive\r\nm=audio 8000 UDP/TLS/RTP/SAVPF 0\r\nc=IN IP4 10.60.100.196\r\na=rtcp:8000 IN IP4 10.60.100.196\r\na=ice-ufrag:wKgSAx9AH0A=_45\r\na=ice-pwd:lRD99Pf1Co1vushq2tzTDWX4\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5D:43:0F:2C:BD:82:BB:C5:B4:77:42:D3:8C:2B:D5:1A:32:59:39:1D:78:7A:BB:88:E2:EF:2A:60:37:AD:6E:A3\r\na=setup:passive\r\na=mid:1\r\na=ice-lite\r\na=extmap:14 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=sendonly\r\na=rtcp-mux\r\na=rtpmap:0 PCMU/8000/1\r\na=msid:zlmediakit-mslabel zlmediakit-label\r\na=ssrc:2 cname:zlmediakit-rtp\r\na=ssrc:2 msid:zlmediakit-mslabel zlmediakit-label\r\na=ssrc:2 mslabel:zlmediakit-mslabel\r\na=ssrc:2 label:zlmediakit-label\r\na=candidate:udpcandidate 1 udp 110 10.60.100.196 8000 typ host\r\na=candidate:tcpcandidate 1 tcp 105 10.60.100.196 8000 typ host tcptype passive\r\n",
- "type" : "answer"
- }
-
-
-
- 2024-03-21 16:02:24.709 W [MediaServer.exe] [23784-event poller 11] WebRtcSession.cpp:104 onError | 224-1436(10.60.100.196:61106) 1(end of file)
- 2024-03-21 16:02:24.709 W [MediaServer.exe] [23784-event poller 11] WebRtcSession.cpp:104 onError | 225-1368(10.60.100.196:61107) 1(end of file)
- 2024-03-21 16:02:24.710 W [MediaServer.exe] [23784-event poller 11] WebRtcSession.cpp:104 onError | 227-1500(10.60.100.196:61109) 1(end of file)
- 2024-03-21 16:02:24.773 I [MediaServer.exe] [23784-event poller 3] WebRtcSession.cpp:85 onRecv_l | 228-1500(10.60.100.196:51044)
- 2024-03-21 16:02:24.773 D [MediaServer.exe] [23784-event poller 3] IceServer.cpp:340 HandleTuple | transition from state 'new' to 'connected'
- 2024-03-21 16:02:24.774 I [MediaServer.exe] [23784-event poller 3] WebRtcTransport.cpp:170 OnIceServerSelectedTuple | wKgSAx9AH0A=_45 select tuple udp 10.60.100.196:51044
- 2024-03-21 16:02:24.774 I [MediaServer.exe] [23784-event poller 3] WebRtcTransport.cpp:176 OnIceServerConnected | wKgSAx9AH0A=_45
- 2024-03-21 16:02:24.774 E [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:744 ProcessDtlsData | cannot process data while not running
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] IceServer.cpp:429 HandleTuple | transition from state 'connected' to 'completed'
- 2024-03-21 16:02:24.835 I [MediaServer.exe] [23784-event poller 3] WebRtcTransport.cpp:180 OnIceServerCompleted | wKgSAx9AH0A=_45
- 2024-03-21 16:02:24.835 I [MediaServer.exe] [23784-event poller 3] WebRtcTransport.cpp:232 OnDtlsTransportConnecting | wKgSAx9AH0A=_45
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:699 Run | running [role:server]
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1411 OnSslInfo | DTLS handshake start
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'before SSL initialization']
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client hello']
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server hello']
- 2024-03-21 16:02:24.835 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate']
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write key exchange']
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate request']
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'SSLv3/TLS write server done']
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 2111 bytes of DTLS data ready to sent to the peer
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 100ms
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client certificate']
- 2024-03-21 16:02:24.836 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client key exchange']
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read certificate verify']
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read change cipher spec']
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read finished']
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write change cipher spec']
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write finished']
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1415 OnSslInfo | DTLS handshake done
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1166 CheckRemoteFingerprint | valid remote fingerprint
- 2024-03-21 16:02:24.837 D [MediaServer.exe] [23784-event poller 3] DtlsTransport.cpp:1340 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
- 2024-03-21 16:02:24.837 I [MediaServer.exe] [23784-event poller 3] WebRtcTransport.cpp:197 OnDtlsTransportConnected | wKgSAx9AH0A=_45
- 2024-03-21 16:02:24.890 W [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:903 onRtcp | 未识别的sr rtcp包:version:2
-
- padding:0
-
- report_count:0
-
- pt:200(RTCP_SR)
-
- size:28
-
- --------
-
- ssrc:3955139128
-
- ntpmsw:3919996944
-
- ntplsw:3506656113
-
- ntp time:2024-03-21 16:02:24.816
-
- rtpts:4187904151
-
- packet_count:0
-
- octet_count:0
-
-
- 2024-03-21 16:02:24.898 I [MediaServer.exe] [23784-event poller 11] WebRtcTransport.cpp:1012 createRtpChannel | create rtp receiver of ssrc:3955139128, rid:, codec:H264
- 2024-03-21 16:02:24.898 D [MediaServer.exe] [23784-event poller 11] MediaSink.cpp:162 emitAllTrackReady | All track ready use 452ms
- 2024-03-21 16:02:24.899 I [MediaServer.exe] [23784-event poller 11] MediaSource.cpp:517 emitEvent | 媒体注册:fmp4://__defaultVhost__/2fbe2a926db241b483ab4ea79950fb0c/dxw3Stream
- 2024-03-21 16:02:24.900 I [MediaServer.exe] [23784-event poller 11] MultiMediaSourceMuxer.cpp:551 onAllTrackReady | stream: rtc://10.60.100.196:6080/2fbe2a926db241b483ab4ea79950fb0c/dxw3Stream?app=2fbe2a926db241b483ab4ea79950fb0c&stream=dxw3Stream&type=push&session=219-1380 , codec info: PCMU[8000/1/16] H264[480/640/0]
- 2024-03-21 16:02:24.900 I [MediaServer.exe] [23784-event poller 11] MediaSource.cpp:517 emitEvent | 媒体注册:rtmp://__defaultVhost__/2fbe2a926db241b483ab4ea79950fb0c/dxw3Stream
- 2024-03-21 16:02:24.901 I [MediaServer.exe] [23784-event poller 11] MediaSource.cpp:517 emitEvent | 媒体注册:ts://__defaultVhost__/2fbe2a926db241b483ab4ea79950fb0c/dxw3Stream
- 2024-03-21 16:02:24.964 I [MediaServer.exe] [23784-event poller 3] WebRtcSession.cpp:85 onRecv_l | 229-1392(169.167.123.119:51045)
- 2024-03-21 16:02:25.039 I [MediaServer.exe] [23784-event poller 3] WebRtcSession.cpp:85 onRecv_l | 230-1472(192.168.18.3:51046)
- 2024-03-21 16:02:26.962 W [MediaServer.exe] [23784-event poller 11] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
- 2024-03-21 16:02:27.835 W [MediaServer.exe] [23784-event poller 10] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
- 2024-03-21 16:02:28.406 I [MediaServer.exe] [23784-event poller 11] MediaSource.cpp:517 emitEvent | 媒体注册:hls://__defaultVhost__/2fbe2a926db241b483ab4ea79950fb0c/dxw3Stream
- 2024-03-21 16:02:29.939 W [MediaServer.exe] [23784-event poller 10] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
- 2024-03-21 16:02:30.811 W [MediaServer.exe] [23784-event poller 10] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
- 2024-03-21 16:02:32.827 W [MediaServer.exe] [23784-event poller 11] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
- 2024-03-21 16:02:34.390 W [MediaServer.exe] [23784-event poller 6] WebRtcSession.cpp:104 onError | 223-1420(10.62.14.104:49543) 1(end of file)
- 2024-03-21 16:02:34.945 W [MediaServer.exe] [23784-event poller 11] WebRtcSession.cpp:104 onError | 226-1496(10.60.100.196:61108) 1(end of file)
- 2024-03-21 16:02:35.864 W [MediaServer.exe] [23784-event poller 10] EventPoller.cpp:209 async_l | take time: 16ms, thread may be overloaded
入口处的CB,即是对http的回复


下面的invoker为上图中传过来的invoker. 其中最难的就是其中的obj,就是on_publish执行回来的result里的值 。



研发的环境不对,如下

生产环境 2.8是对的,如下



下面的初始化直接决定着,什么时候生成recorder,是一拉流就有。比如上面record-push-live设置为true时,那么每段放视频,都会进行录制;反之,就直接取决于配置文件是的enable_mp4=false


当上述开关正确设置上,就可以达到当打开开关时,才进行录制


WebRTC: Real-Time Communication in Browsers (w3.org)