一端和服务器通信:
{
"request": true,
"method": "getRouterRtpCapabilities",
"id": 7244185,
"data": {}
}
{
"response": true,
"id": 7244185,
"ok": true,
"data": {
"codecs": [{
"kind": "audio",
"mimeType": "audio/opus",
"clockRate": 48000,
"channels": 2,
"rtcpFeedback": [{
"type": "transport-cc",
"parameter": ""
}],
"parameters": {},
"preferredPayloadType": 100
}, {
"kind": "video",
"mimeType": "video/VP8",
"clockRate": 90000,
"rtcpFeedback": [{
"type": "nack",
"parameter": ""
}, {
"type": "nack",
"parameter": "pli"
}, {
"type": "ccm",
"parameter": "fir"
}, {
"type": "goog-remb",
"parameter": ""
}, {
"type": "transport-cc",
"parameter": ""
}],
"parameters": {
"x-google-start-bitrate": 1000
},
"preferredPayloadType": 101
}, {
"kind": "video",
"mimeType": "video/rtx",
"preferredPayloadType": 102,
"clockRate": 90000,
"parameters": {
"apt": 101
},
"rtcpFeedback": []
}, {
"kind": "video",
"mimeType": "video/VP9",
"clockRate": 90000,
"rtcpFeedback": [{
"type": "nack",
"parameter": ""
}, {
"type": "nack",
"parameter": "pli"
}, {
"type": "ccm",
"parameter": "fir"
}, {
"type": "goog-remb",
"parameter": ""
}, {
"type": "transport-cc",
"parameter": ""
}],
"parameters": {
"profile-id": 2,
"x-google-start-bitrate": 1000
},
"preferredPayloadType": 103
}, {
"kind": "video",
"mimeType": "video/rtx",
"preferredPayloadType": 104,
"clockRate": 90000,
"parameters": {
"apt": 103
},
"rtcpFeedback": []
}, {
"kind": "video",
"mimeType": "video/H264",
"clockRate": 90000,
"parameters": {
"packetization-mode": 1,
"level-asymmetry-allowed": 1,
"profile-level-id": "4d0032",
"x-google-start-bitrate": 1000
},
"rtcpFeedback": [{
"type": "nack",
"parameter": ""
}, {
"type": "nack",
"parameter": "pli"
}, {
"type": "ccm",
"parameter": "fir"
}, {
"type": "goog-remb",
"parameter": ""
}, {
"type": "transport-cc",
"parameter": ""
}],
"preferredPayloadType": 105
}, {
"kind": "video",
"mimeType": "video/rtx",
"preferredPayloadType": 106,
"clockRate": 90000,
"parameters": {
"apt": 105
},
"rtcpFeedback": []
}, {
"kind": "video",
"mimeType": "video/H264",
"clockRate": 90000,
"parameters": {
"packetization-mode": 1,
"level-asymmetry-allowed": 1,
"profile-level-id": "42e01f",
"x-google-start-bitrate": 1000
},
"rtcpFeedback": [{
"type": "nack",
"parameter": ""
}, {
"type": "nack",
"parameter": "pli"
}, {
"type": "ccm",
"parameter": "fir"
}, {
"type": "goog-remb",
"parameter": ""
}, {
"type": "transport-cc",
"parameter": ""
}],
"preferredPayloadType": 107
}, {
"kind": "video",
"mimeType": "video/rtx",
"preferredPayloadType": 108,
"clockRate": 90000,
"parameters": {
"apt": 107
},
"rtcpFeedback": []
}],
"headerExtensions": [{
"kind": "audio",
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid",
"preferredId": 1,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "video",
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid",
"preferredId": 1,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "video",
"uri": "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",
"preferredId": 2,
"preferredEncrypt": false,
"direction": "recvonly"
}, {
"kind": "video",
"uri": "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",
"preferredId": 3,
"preferredEncrypt": false,
"direction": "recvonly"
}, {
"kind": "audio",
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
"preferredId": 4,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "video",
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
"preferredId": 4,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "audio",
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
"preferredId": 5,
"preferredEncrypt": false,
"direction": "recvonly"
}, {
"kind": "video",
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",
"preferredId": 5,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "video",
"uri": "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07",
"preferredId": 6,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "video",
"uri": "urn:ietf:params:rtp-hdrext:framemarking",
"preferredId": 7,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "audio",
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level",
"preferredId": 10,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "video",
"uri": "urn:3gpp:video-orientation",
"preferredId": 11,
"preferredEncrypt": false,
"direction": "sendrecv"
}, {
"kind": "video",
"uri": "urn:ietf:params:rtp-hdrext:toffset",
"preferredId": 12,
"preferredEncrypt": false,
"direction": "sendrecv"
}]
}
}
//createSendTransport
{
"request": true,
"method": "createWebRtcTransport",
"id": 4281216,
"data": {
"forceTcp": false,
"producing": true,
"consuming": false,
"sctpCapabilities": ""
}
}
{
"response": true,
"id": 4281216,
"ok": true,
"data": {
"id": "93196a8a-e30f-42ae-9db9-9fc3d7d7d0d6",
"iceParameters": {
"iceLite": true,
"password": "m1zmdn4asup2fozzvqcfy01jpbyn8hw4",
"usernameFragment": "1keho6nhzlc9qfmq"
},
"iceCandidates": [{
"foundation": "udpcandidate",
"ip": "10.168.11.43",
"port": 42026,
"priority": 1076302079,
"protocol": "udp",
"type": "host"
}],
"dtlsParameters": {
"fingerprints": [{
"algorithm": "sha-1",
"value": "B3:E9:14:C8:DD:8B:6E:53:82:B9:99:9E:54:1F:24:6B:20:7A:C7:15"
}, {
"algorithm": "sha-224",
"value": "30:BB:8F:2A:4B:C4:CB:15:E2:5D:8B:B0:53:D6:C9:63:F3:1C:D5:F9:F0:C4:CC:CE:F8:6D:85:45"
}, {
"algorithm": "sha-256",
"value": "AD:E0:A0:10:4D:BB:43:45:DC:ED:C4:0E:14:7F:72:C9:48:46:48:29:6E:CD:60:94:7F:8F:E7:B8:B1:04:58:B6"
}, {
"algorithm": "sha-384",
"value": "CE:52:85:F1:1D:58:C5:6A:AC:23:15:65:93:B6:5B:6E:05:1B:96:14:35:61:34:3C:A9:8B:F4:67:FF:34:6F:32:D8:92:38:42:BB:95:F9:E2:C4:D9:7C:C5:A0:B1:03:3C"
}, {
"algorithm": "sha-512",
"value": "E8:C1:31:AF:25:86:89:61:5D:5B:1D:68:36:AF:5A:59:19:08:0E:E4:A6:CB:1A:38:95:63:5A:EB:D8:EC:78:74:25:55:02:44:87:83:1D:F2:8E:D8:0C:1E:F9:AC:12:7B:B8:54:9F:FB:C8:CF:C1:9A:10:63:4E:6B:87:FB:C3:9B"
}],
"role": "auto"
}
}
}
//createRecvTransport
{
"request": true,
"method": "createWebRtcTransport",
"id": 1832277,
"data": {
"forceTcp": false,
"producing": false,
"consuming": true,
"sctpCapabilities": ""
}
}
{
"response": true,
"id": 1832277,
"ok": true,
"data": {
"id": "c308f22e-c2f1-4ebe-a257-e6f556c28e0c",
"iceParameters": {
"iceLite": true,
"password": "syxs2v13pshabymehr29zwiwux674bzn",
"usernameFragment": "v54ntec6ofwteltd"
},
"iceCandidates": [{
"foundation": "udpcandidate",
"ip": "10.168.11.43",
"port": 46129,
"priority": 1076302079,
"protocol": "udp",
"type": "host"
}],
"dtlsParameters": {
"fingerprints": [{
"algorithm": "sha-1",
"value": "B3:E9:14:C8:DD:8B:6E:53:82:B9:99:9E:54:1F:24:6B:20:7A:C7:15"
}, {
"algorithm": "sha-224",
"value": "30:BB:8F:2A:4B:C4:CB:15:E2:5D:8B:B0:53:D6:C9:63:F3:1C:D5:F9:F0:C4:CC:CE:F8:6D:85:45"
}, {
"algorithm": "sha-256",
"value": "AD:E0:A0:10:4D:BB:43:45:DC:ED:C4:0E:14:7F:72:C9:48:46:48:29:6E:CD:60:94:7F:8F:E7:B8:B1:04:58:B6"
}, {
"algorithm": "sha-384",
"value": "CE:52:85:F1:1D:58:C5:6A:AC:23:15:65:93:B6:5B:6E:05:1B:96:14:35:61:34:3C:A9:8B:F4:67:FF:34:6F:32:D8:92:38:42:BB:95:F9:E2:C4:D9:7C:C5:A0:B1:03:3C"
}, {
"algorithm": "sha-512",
"value": "E8:C1:31:AF:25:86:89:61:5D:5B:1D:68:36:AF:5A:59:19:08:0E:E4:A6:CB:1A:38:95:63:5A:EB:D8:EC:78:74:25:55:02:44:87:83:1D:F2:8E:D8:0C:1E:F9:AC:12:7B:B8:54:9F:FB:C8:CF:C1:9A:10:63:4E:6B:87:FB:C3:9B"
}],
"role": "auto"
}
}
}
{
"request": true,
"method": "join",
"id": 4957333,
"data": {
"displayName": "Tanay",
"rtpCapabilities": {
"codecs": [{
"channels": 2,
"clockRate": 48000,
"kind": "audio",
"mimeType": "audio\/opus",
"parameters": {
"minptime": 10,
"useinbandfec": 1
},
"preferredPayloadType": 100,
"rtcpFeedback": [{
"parameter": "",
"type": "transport-cc"
}]
}, {
"clockRate": 90000,
"kind": "video",
"mimeType": "video\/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f"
},
"preferredPayloadType": 107,
"rtcpFeedback": [{
"parameter": "",
"type": "goog-remb"
}, {
"parameter": "",
"type": "transport-cc"
}, {
"parameter": "fir",
"type": "ccm"
}, {
"parameter": "",
"type": "nack"
}, {
"parameter": "pli",
"type": "nack"
}]
}, {
"clockRate": 90000,
"kind": "video",
"mimeType": "video\/rtx",
"parameters": {
"apt": 107
},
"preferredPayloadType": 108,
"rtcpFeedback": []
}],
"headerExtensions": [{
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 1,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
}, {
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 1,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
}, {
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 4,
"uri": "http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time"
}, {
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 4,
"uri": "http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time"
}, {
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 5,
"uri": "http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01"
}, {
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 6,
"uri": "http:\/\/tools.ietf.org\/html\/draft-ietf-avtext-framemarking-07"
}, {
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 10,
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
}, {
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 11,
"uri": "urn:3gpp:video-orientation"
}, {
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 12,
"uri": "urn:ietf:params:rtp-hdrext:toffset"
}]
},
"sctpCapabilities": ""
}
}
{
"response": true,
"id": 4957333,
"ok": true,
"data": {
"peers": []
}
}
{
"request": true,
"method": "connectWebRtcTransport",
"id": 9068619,
"data": {
"transportId": "93196a8a-e30f-42ae-9db9-9fc3d7d7d0d6",
"dtlsParameters": {
"fingerprints": [{
"algorithm": "sha-256",
"value": "CE:6E:A8:7E:F9:F0:62:A2:82:E6:1D:35:15:A2:F3:54:3B:63:E8:6A:CC:19:E9:BE:F3:62:C9:53:22:AF:00:E5"
}],
"role": "server"
}
}
}
{
"response": true,
"id": 9068619,
"ok": true,
"data": {}
}
{
"request": true,
"method": "produce",
"id": 288838,
"data": {
"transportId": "93196a8a-e30f-42ae-9db9-9fc3d7d7d0d6",
"kind": "audio",
"rtpParameters": {
"codecs": [{
"channels": 2,
"clockRate": 48000,
"mimeType": "audio\/opus",
"parameters": {
"minptime": 10,
"useinbandfec": 1
},
"payloadType": 111,
"rtcpFeedback": [{
"parameter": "",
"type": "transport-cc"
}]
}],
"encodings": [{
"dtx": false,
"ssrc": 2266946011
}],
"headerExtensions": [{
"encrypt": false,
"id": 4,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
}, {
"encrypt": false,
"id": 2,
"parameters": {},
"uri": "http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time"
}, {
"encrypt": false,
"id": 3,
"parameters": {},
"uri": "http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01"
}, {
"encrypt": false,
"id": 1,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
}],
"mid": "0",
"rtcp": {
"cname": "",
"reducedSize": true
}
},
"appData": "{}"
}
}
{
"response": true,
"id": 288838,
"ok": true,
"data": {
"id": "3bd30e28-4c38-48ab-96e6-a9d64b92b4e7"
}
}
{
"request": true,
"method": "produce",
"id": 5836679,
"data": {
"transportId": "93196a8a-e30f-42ae-9db9-9fc3d7d7d0d6",
"kind": "video",
"rtpParameters": {
"codecs": [{
"clockRate": 90000,
"mimeType": "video\/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f"
},
"payloadType": 98,
"rtcpFeedback": [{
"parameter": "",
"type": "goog-remb"
}, {
"parameter": "",
"type": "transport-cc"
}, {
"parameter": "fir",
"type": "ccm"
}, {
"parameter": "",
"type": "nack"
}, {
"parameter": "pli",
"type": "nack"
}]
}, {
"clockRate": 90000,
"mimeType": "video\/rtx",
"parameters": {
"apt": 98
},
"payloadType": 99,
"rtcpFeedback": []
}],
"encodings": [{
"dtx": false,
"rtx": {
"ssrc": 3649893365
},
"ssrc": 3057125697
}],
"headerExtensions": [{
"encrypt": false,
"id": 4,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
}, {
"encrypt": false,
"id": 5,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id"
}, {
"encrypt": false,
"id": 6,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"
}, {
"encrypt": false,
"id": 2,
"parameters": {},
"uri": "http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time"
}, {
"encrypt": false,
"id": 3,
"parameters": {},
"uri": "http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01"
}, {
"encrypt": false,
"id": 8,
"parameters": {},
"uri": "http:\/\/tools.ietf.org\/html\/draft-ietf-avtext-framemarking-07"
}, {
"encrypt": false,
"id": 13,
"parameters": {},
"uri": "urn:3gpp:video-orientation"
}, {
"encrypt": false,
"id": 14,
"parameters": {},
"uri": "urn:ietf:params:rtp-hdrext:toffset"
}],
"mid": "1",
"rtcp": {
"cname": "",
"reducedSize": true
}
},
"appData": "{}"
}
}
{
"response": true,
"id": 5836679,
"ok": true,
"data": {
"id": "ef7d5e8d-9547-4bbd-b8f0-2c10b5da2e6e"
}
}
{
"request": true,
"id": 6109114,
"method": "newDataConsumer",
"data": {
"peerId": "15_40_53_908",
"dataProducerId": "5813d592-5ba7-4e9c-8d09-416978a643f9",
"id": "2404cd52-0fe1-4471-839e-bc11c0995fa9",
"sctpStreamParameters": {
"ordered": true,
"streamId": 0
},
"label": "chat",
"protocol": "",
"appData": {}
}
}
{
"response": true,
"id": 6109114,
"ok": true,
"data": {}
}
{
"id": 949333985,
"method": "produceData",
"request": true,
"data": {
"appData": {},
"label": "chat",
"protocol": "",
"sctpStreamParameters": {
"label": "",
"maxPacketLifeTime": 0,
"maxRetransmits": 0,
"ordered": true,
"protocol": "",
"streamId": 0
},
"transportId": "355e01ed-7d49-4ae0-90d2-8f7fdaf1f439"
}
}
{
"response": true,
"id": 949333985,
"ok": true,
"data": {
"id": "63fbc411-4f6a-4746-8e22-abc2317e81c3"
}
}
Handler::Send() | calling pc->SetLocalDescription():
v=0
o=- 2123024220638169078 3 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1
a=msid-semantic: WMS 0
m=audio 39163 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126
c=IN IP4 10.168.138.78
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2801784103 1 udp 2122260223 10.168.138.78 39163 typ host generation 0 network-id 7 network-cost 10
a=candidate:2801784103 1 udp 2121998079 10.168.138.78 38232 typ host generation 0 network-id 1 network-cost 900
a=candidate:3806566203 1 tcp 1518151935 240e:505:7e00:ae5e:1:1:b373:6a1d 9 typ host tcptype active generation 0 network-id 3 network-cost 900
a=candidate:2743714882 1 tcp 1518086399 240e:505:1e30:661f:1:1:d7a4:94c2 9 typ host tcptype active generation 0 network-id 4 network-cost 900
a=ice-ufrag:uCyc
a=ice-pwd:vrTR2++ojAOS35blblsLXzCE
a=ice-options:trickle
a=fingerprint:sha-256 CE:6E:A8:7E:F9:F0:62:A2:82:E6:1D:35:15:A2:F3:54:3B:63:E8:6A:CC:19:E9:BE:F3:62:C9:53:22:AF:00:E5
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:0 mic
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:2266946011 cname:va35rWj5XvTJbHHW
a=ssrc:2266946011 msid:0 mic
a=ssrc:2266946011 mslabel:0
a=ssrc:2266946011 label:mic
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:uCyc
a=ice-pwd:vrTR2++ojAOS35blblsLXzCE
a=ice-options:trickle
a=fingerprint:sha-256 CE:6E:A8:7E:F9:F0:62:A2:82:E6:1D:35:15:A2:F3:54:3B:63:E8:6A:CC:19:E9:BE:F3:62:C9:53:22:AF:00:E5
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://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 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:0 cam
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/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=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c1f
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 H264/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 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 red/90000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 ulpfec/90000
a=ssrc-group:FID 3057125697 3649893365
a=ssrc:3057125697 cname:va35rWj5XvTJbHHW
a=ssrc:3057125697 msid:0 cam
a=ssrc:3057125697 mslabel:0
a=ssrc:3057125697 label:cam
a=ssrc:3649893365 cname:va35rWj5XvTJbHHW
a=ssrc:3649893365 msid:0 cam
a=ssrc:3649893365 mslabel:0
a=ssrc:3649893365 label:cam
Handler::Send() | calling pc->SetRemoteDescription():
v=0
o=libmediasoupclient 10000 2 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
a=fingerprint:sha-512 E8:C1:31:AF:25:86:89:61:5D:5B:1D:68:36:AF:5A:59:19:08:0E:E4:A6:CB:1A:38:95:63:5A:EB:D8:EC:78:74:25:55:02:44:87:83:1D:F2:8E:D8:0C:1E:F9:AC:12:7B:B8:54:9F:FB:C8:CF:C1:9A:10:63:4E:6B:87:FB:C3:9B
a=msid-semantic: WMS *
a=group:BUNDLE 0 1
m=audio 7 UDP/TLS/RTP/SAVPF 111
c=IN IP4 127.0.0.1
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
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:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=setup:active
a=mid:0
a=recvonly
a=ice-ufrag:1keho6nhzlc9qfmq
a=ice-pwd:m1zmdn4asup2fozzvqcfy01jpbyn8hw4
a=candidate:udpcandidate 1 udp 1076302079 10.168.11.43 42026 typ host
a=end-of-candidates
a=ice-options:renomination
a=rtcp-mux
a=rtcp-rsize
m=video 7 UDP/TLS/RTP/SAVPF 98 99
c=IN IP4 127.0.0.1
a=rtpmap:98 H264/90000
a=rtpmap:99 rtx/90000
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f;x-google-start-bitrate=1000
a=fmtp:99 apt=98
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
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=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:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:13 urn:3gpp:video-orientation
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=setup:active
a=mid:1
a=recvonly
a=ice-ufrag:1keho6nhzlc9qfmq
a=ice-pwd:m1zmdn4asup2fozzvqcfy01jpbyn8hw4
a=candidate:udpcandidate 1 udp 1076302079 10.168.11.43 42026 typ host
a=end-of-candidates
a=ice-options:renomination
a=rtcp-mux
a=rtcp-rsize
[candidate:candidate:2801784103 1 udp 2122260223 10.168.138.78 39163 typ host generation 0 ufrag uCyc network-id 7 network-cost 10]
[candidate:candidate:2801784103 1 udp 2121998079 10.168.138.78 38232 typ host generation 0 ufrag uCyc network-id 1 network-cost 900]
[candidate:candidate:3806566203 1 tcp 1518151935 240e:505:7e00:ae5e:1:1:b373:6a1d 9 typ host tcptype active generation 0 ufrag uCyc network-id 3 network-cost 900]
[candidate:candidate:2743714882 1 tcp 1518086399 240e:505:1e30:661f:1:1:d7a4:94c2 9 typ host tcptype active generation 0 ufrag uCyc network-id 4 network-cost 900]
[candidate:candidate:2801784103 1 udp 2122260223 10.168.138.78 32829 typ host generation 0 ufrag uCyc network-id 7 network-cost 10]
[candidate:candidate:2801784103 1 udp 2121998079 10.168.138.78 46558 typ host generation 0 ufrag uCyc network-id 1 network-cost 900]
got native RTP capabilities offer:
{
"codecs": [
{
"channels": 1,
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/PCMU",
"parameters": {},
"preferredPayloadType": 0,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/PCMA",
"parameters": {},
"preferredPayloadType": 8,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/G722",
"parameters": {},
"preferredPayloadType": 9,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/CN",
"parameters": {},
"preferredPayloadType": 13,
"rtcpFeedback": []
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f"
},
"preferredPayloadType": 98,
"rtcpFeedback": [
{
"type": "goog-remb"
},
{
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/rtx",
"parameters": {
"apt": 98
},
"preferredPayloadType": 99,
"rtcpFeedback": []
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/red",
"parameters": {},
"preferredPayloadType": 100,
"rtcpFeedback": []
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/rtx",
"parameters": {
"apt": 100
},
"preferredPayloadType": 101,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/ILBC",
"parameters": {},
"preferredPayloadType": 102,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 16000,
"kind": "audio",
"mimeType": "audio/ISAC",
"parameters": {},
"preferredPayloadType": 103,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 32000,
"kind": "audio",
"mimeType": "audio/ISAC",
"parameters": {},
"preferredPayloadType": 104,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 16000,
"kind": "audio",
"mimeType": "audio/CN",
"parameters": {},
"preferredPayloadType": 105,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 32000,
"kind": "audio",
"mimeType": "audio/CN",
"parameters": {},
"preferredPayloadType": 106,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 48000,
"kind": "audio",
"mimeType": "audio/telephone-event",
"parameters": {},
"preferredPayloadType": 110,
"rtcpFeedback": []
},
{
"channels": 2,
"clockRate": 48000,
"kind": "audio",
"mimeType": "audio/opus",
"parameters": {
"minptime": 10,
"useinbandfec": 1
},
"preferredPayloadType": 111,
"rtcpFeedback": [
{
"type": "transport-cc"
}
]
},
{
"channels": 1,
"clockRate": 32000,
"kind": "audio",
"mimeType": "audio/telephone-event",
"parameters": {},
"preferredPayloadType": 112,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 16000,
"kind": "audio",
"mimeType": "audio/telephone-event",
"parameters": {},
"preferredPayloadType": 113,
"rtcpFeedback": []
},
{
"channels": 1,
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/telephone-event",
"parameters": {},
"preferredPayloadType": 126,
"rtcpFeedback": []
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/ulpfec",
"parameters": {},
"preferredPayloadType": 127,
"rtcpFeedback": []
}
],
"fecMechanisms": [],
"headerExtensions": [
{
"kind": "audio",
"preferredId": 1,
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
},
{
"kind": "audio",
"preferredId": 2,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"kind": "audio",
"preferredId": 3,
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"
},
{
"kind": "audio",
"preferredId": 4,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"kind": "audio",
"preferredId": 5,
"uri": "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id"
},
{
"kind": "audio",
"preferredId": 6,
"uri": "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"
},
{
"kind": "video",
"preferredId": 14,
"uri": "urn:ietf:params:rtp-hdrext:toffset"
},
{
"kind": "video",
"preferredId": 2,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"kind": "video",
"preferredId": 13,
"uri": "urn:3gpp:video-orientation"
},
{
"kind": "video",
"preferredId": 3,
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"
},
{
"kind": "video",
"preferredId": 12,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"
},
{
"kind": "video",
"preferredId": 11,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/video-content-type"
},
{
"kind": "video",
"preferredId": 7,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/video-timing"
},
{
"kind": "video",
"preferredId": 8,
"uri": "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07"
},
{
"kind": "video",
"preferredId": 9,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/color-space"
},
{
"kind": "video",
"preferredId": 4,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"kind": "video",
"preferredId": 5,
"uri": "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id"
},
{
"kind": "video",
"preferredId": 6,
"uri": "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"
}
]
}
//this->extendedRtpCapabilities = ortc::getExtendedRtpCapabilities(nativeRtpCapabilities, routerRtpCapabilities);
got extended RTP capabilities:
{
"codecs": [
{
"channels": 2,
"clockRate": 48000,
"kind": "audio",
"localParameters": {
"minptime": 10,
"useinbandfec": 1
},
"localPayloadType": 111,
"localRtxPayloadType": null,
"mimeType": "audio/opus",
"remoteParameters": {},
"remotePayloadType": 100,
"remoteRtxPayloadType": null,
"rtcpFeedback": [
{
"parameter": "",
"type": "transport-cc"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"localParameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f"
},
"localPayloadType": 98,
"localRtxPayloadType": 99,
"mimeType": "video/H264",
"remoteParameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f",
"x-google-start-bitrate": 1000
},
"remotePayloadType": 107,
"remoteRtxPayloadType": 108,
"rtcpFeedback": [
{
"parameter": "",
"type": "goog-remb"
},
{
"parameter": "",
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"parameter": "",
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
}
],
"headerExtensions": [
{
"direction": "sendrecv",
"encrypt": false,
"kind": "audio",
"recvId": 1,
"sendId": 4,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "video",
"recvId": 1,
"sendId": 4,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"direction": "sendonly",
"encrypt": false,
"kind": "video",
"recvId": 2,
"sendId": 5,
"uri": "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id"
},
{
"direction": "sendonly",
"encrypt": false,
"kind": "video",
"recvId": 3,
"sendId": 6,
"uri": "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "audio",
"recvId": 4,
"sendId": 2,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "video",
"recvId": 4,
"sendId": 2,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"direction": "sendonly",
"encrypt": false,
"kind": "audio",
"recvId": 5,
"sendId": 3,
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "video",
"recvId": 5,
"sendId": 3,
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "video",
"recvId": 6,
"sendId": 8,
"uri": "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "audio",
"recvId": 10,
"sendId": 1,
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "video",
"recvId": 11,
"sendId": 13,
"uri": "urn:3gpp:video-orientation"
},
{
"direction": "sendrecv",
"encrypt": false,
"kind": "video",
"recvId": 12,
"sendId": 14,
"uri": "urn:ietf:params:rtp-hdrext:toffset"
}
]
}
got receiving RTP capabilities:
{
"codecs": [
{
"channels": 2,
"clockRate": 48000,
"kind": "audio",
"mimeType": "audio/opus",
"parameters": {
"minptime": 10,
"useinbandfec": 1
},
"preferredPayloadType": 100,
"rtcpFeedback": [
{
"parameter": "",
"type": "transport-cc"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/H264",
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "42e01f"
},
"preferredPayloadType": 107,
"rtcpFeedback": [
{
"parameter": "",
"type": "goog-remb"
},
{
"parameter": "",
"type": "transport-cc"
},
{
"parameter": "fir",
"type": "ccm"
},
{
"parameter": "",
"type": "nack"
},
{
"parameter": "pli",
"type": "nack"
}
]
},
{
"clockRate": 90000,
"kind": "video",
"mimeType": "video/rtx",
"parameters": {
"apt": 107
},
"preferredPayloadType": 108,
"rtcpFeedback": []
}
],
"headerExtensions": [
{
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 1,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 1,
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid"
},
{
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 4,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 4,
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 5,
"uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 6,
"uri": "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07"
},
{
"direction": "sendrecv",
"kind": "audio",
"preferredEncrypt": false,
"preferredId": 10,
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 11,
"uri": "urn:3gpp:video-orientation"
},
{
"direction": "sendrecv",
"kind": "video",
"preferredEncrypt": false,
"preferredId": 12,
"uri": "urn:ietf:params:rtp-hdrext:toffset"
}
]
}