WebRTC[7]-Failed to set remote offer sdp

目录

问题

解决

    Java:

    OC:

    C++:

    JS:


问题

WebRTC音视频通道建立的前提是完成SDP信息的交换,前端时间遇到了一个SDP信息交换失败的问题,非常具有代表性,今天周末特意整理了这篇文档。

报错信息:

Failed to set remote offer sdp: Called with SDP without DTLS fingerprint

解决

在进行详细介绍前,先把问题解决前后的SDP信息列一下。

之前SDP:

v=0
o=- 995255733528268584 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1
a=msid-semantic: WMS ARDAMS
m=video 9 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:3wNq
a=ice-pwd:C4nlIyp5n72lHo+DiK HEaDw
a=ice-options:trickle renomination
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=sendrecv
a=msid:ARDAMS ARDAMSv0
a=rtcp-mux
a=rtcp-rsize
a=crypto:0 AES_CM_128_HMAC_SHA1_80 inline:UbJzJZkVOi05s66TuBAhj0qRgomFkj7DdBB6B+vH
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 red 90000
a=rtpmap:101 rtx 90000
a=fmtp:101 apt=100
a=rtpmap:127 ulpfec 90000
a=ssrc-group:FID 877222065 2034621659
a=ssrc:877222065 cname:aqxYNZ4Y1vkk8ADA
a=ssrc:877222065 msid:ARDAMS ARDAMSv0
a=ssrc:877222065 mslabel:ARDAMS
a=ssrc:877222065 label:ARDAMSv0
a=ssrc:2034621659 cname:aqxYNZ4Y1vkk8ADA
a=ssrc:2034621659 msid:ARDAMS ARDAMSv0
a=ssrc:2034621659 mslabel:ARDAMS
a=ssrc:2034621659 label:ARDAMSv0
m=audio 9 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:3wNq
a=ice-pwd:C4nlIyp5n72lHo+DiK HEaDw
a=ice-options:trickle renomination
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http:  www.webrtc.org experiments rtp-hdrext abs-send-time
a=extmap:4 http:  www.ietf.org id draft-holmer-rmcat-transport-wide-cc-extensions-01
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=sendrecv
a=msid:ARDAMS ARDAMSa0
a=rtcp-mux
a=crypto:0 AES_CM_128_HMAC_SHA1_80 inline:UbJzJZkVOi05s66TuBAhj0qRgomFkj7DdBB6B+vH
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:2359316182 cname:aqxYNZ4Y1vkk8ADA
a=ssrc:2359316182 msid:ARDAMS ARDAMSa0
a=ssrc:2359316182 mslabel:ARDAMS
a=ssrc:2359316182 label:ARDAMSa0

之后SDP:

v=0 o=- 4961499810910361213 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 1 2 a=msid-semantic: WMS ARDAMS m=video 9 UDP TLS RTP SAVPF 96 97 98 99 100 101

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

WebRTC工作原理精讲 文章被收录于专栏

WebRTC 作为当下最热门的实时音视频通讯框架,涉及非常多的过程,比如采集、编码、组包、发包、传输、收包、丢包重传、解封装、解码、音视频同步、渲染等,同时还包括很多功能特性,比如ANS、AGC、AEC,REMB、GCC、CNG、FEC、PLI、SVC等,需要一点点深入理解其中的奥秘。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务