vr7bd
April 7, 2025, 7:26pm
1
I have an application where my gstreamer app in rust is behaving as the receiver and the browser behaves as the sender. I have functionality in the sender that can stop and start screen sharing.
While connecting, the sender doesn’t send any streams i.e, there is only a data channel connection. I share my screen (sender sending offer for video) and the screen sharing is going on fine. I later stop the screen share (sender sending offer only for data channel).
When I stop the screen share, I’m getting an error in the browser:
handleNegotiationNeededEvent Error: InvalidAccessError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote answer sdp: A BUNDLE group in answer contains a MID='1' that was not in the offered group.
The sender sent the following offer:
v=0
o=- 3299318957091646788 5 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 49028 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 64.227.163.77
a=candidate:2570622895 1 udp 2113937151 68b118a2-6d46-43fb-a144-aabe6d76f04e.local 62189 typ host generation 0 network-cost 999
a=candidate:432528671 1 udp 2113939711 408a961a-c593-41f4-94d8-1aee53664189.local 57033 typ host generation 0 network-cost 999
a=candidate:4197075383 1 udp 1677729535 49.207.242.121 25539 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=candidate:1426892169 1 udp 33562623 64.227.163.77 49028 typ relay raddr 49.207.242.121 rport 25539 generation 0 network-cost 999
a=candidate:1426892169 1 udp 33562879 64.227.163.77 64344 typ relay raddr 49.207.242.121 rport 25539 generation 0 network-cost 999
a=ice-ufrag:+lKv
a=ice-pwd:H9gnSA7N/gydRr6CruQSOayu
a=ice-options:trickle
a=fingerprint:sha-256 34:98:D3:B3:F2:21:48:27:F4:C2:16:E4:DE:B9:39:EA:CF:E0:D3:15:E8:E4:A5:CE:B8:C4:EC:D3:95:5D:EB:A0
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
m=video 0 UDP/TLS/RTP/SAVPF 98 99 100 101 103 104 107 108 109 114 115 116 117 118 39 40 45 46 96 97 123 124 125
c=IN IP4 49.207.242.121
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2570622895 1 udp 2113937151 68b118a2-6d46-43fb-a144-aabe6d76f04e.local 55132 typ host generation 0 network-cost 999
a=candidate:432528671 1 udp 2113939711 408a961a-c593-41f4-94d8-1aee53664189.local 50869 typ host generation 0 network-cost 999
a=candidate:4197075383 1 udp 1677729535 49.207.242.121 27214 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=ice-ufrag:+lKv
a=ice-pwd:H9gnSA7N/gydRr6CruQSOayu
a=ice-options:trickle
a=fingerprint:sha-256 34:98:D3:B3:F2:21:48:27:F4:C2:16:E4:DE:B9:39:EA:CF:E0:D3:15:E8:E4:A5:CE:B8:C4:EC:D3:95:5D:EB:A0
a=setup:actpass
a=mid:1
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=inactive
a=rtcp-mux
a=rtcp-rsize
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:103 H264/90000
a=rtcp-fb:103 goog-remb
a=rtcp-fb:103 transport-cc
a=rtcp-fb:103 ccm fir
a=rtcp-fb:103 nack
a=rtcp-fb:103 nack pli
a=fmtp:103 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:104 rtx/90000
a=fmtp:104 apt=103
a=rtpmap:107 H264/90000
a=rtcp-fb:107 goog-remb
a=rtcp-fb:107 transport-cc
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:108 rtx/90000
a=fmtp:108 apt=107
a=rtpmap:109 H264/90000
a=rtcp-fb:109 goog-remb
a=rtcp-fb:109 transport-cc
a=rtcp-fb:109 ccm fir
a=rtcp-fb:109 nack
a=rtcp-fb:109 nack pli
a=fmtp:109 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:114 rtx/90000
a=fmtp:114 apt=109
a=rtpmap:115 H264/90000
a=rtcp-fb:115 goog-remb
a=rtcp-fb:115 transport-cc
a=rtcp-fb:115 ccm fir
a=rtcp-fb:115 nack
a=rtcp-fb:115 nack pli
a=fmtp:115 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:116 rtx/90000
a=fmtp:116 apt=115
a=rtpmap:117 H264/90000
a=rtcp-fb:117 goog-remb
a=rtcp-fb:117 transport-cc
a=rtcp-fb:117 ccm fir
a=rtcp-fb:117 nack
a=rtcp-fb:117 nack pli
a=fmtp:117 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
a=rtpmap:118 rtx/90000
a=fmtp:118 apt=117
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:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0
a=rtpmap:46 rtx/90000
a=fmtp:46 apt=45
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:123 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=123
a=rtpmap:125 ulpfec/90000
for which the reciever sent:
v=0
o=- 3299318957091646788 5 IN IP4 0.0.0.0
s=-
t=0 0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:ZQiXjLzk7vFntSEkiuc/A6lkIMn4t+WC
a=ice-pwd:ebE7/QsC9ehjNpoWgeL+EhQNJ0W6s/x5
a=mid:0
a=setup:active
a=sctp-port:5000
a=fingerprint:sha-256 64:E8:2D:E4:F7:8C:A2:30:17:06:13:D8:46:0A:62:EB:62:35:C4:F2:E6:48:CD:B8:10:15:51:C1:59:52:55:06
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=ice-ufrag:/y5uC+G7YqgS4HJ31oj4T0RaWW3PRTw9
a=ice-pwd:xbix2u/UAD1xme4s5Ajt8cBl4NmsGNDo
a=mid:1
a=rtcp-mux
a=setup:active
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 transport-cc
a=inactive
a=fingerprint:sha-256 64:E8:2D:E4:F7:8C:A2:30:17:06:13:D8:46:0A:62:EB:62:35:C4:F2:E6:48:CD:B8:10:15:51:C1:59:52:55:06
SInce the offer had a=group:BUNDLE 0
but the answer has a bundle group with mid 1, it seems to be the problem if I’m not wrong.
Is there something wrong I’m doing or is this a bug? If you need any more details, kindly let me know
The problem actually comes from the offer which contains an m-line with mid=1. The receiver then echos that back for the sender which is what is failing.
The receiver does not seem to be configured for bundle as there is no a=group:BUNDLE section in the answer. You need to set the bundle-policy to a max-bundle for bundle to actually apply.
vr7bd
April 8, 2025, 10:19am
3
Oh I see. I was running this with bundle-policy=balanced
since the MDN docs says that the browser used balanced and I have a browser version of the receiver that accepts this offer.
I ran with bundle-policy=max-bundle
and I got the same error
Offer from sender:
v=0
o=- 4719951345278303818 5 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 52310 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 64.227.163.77
a=candidate:1548135380 1 udp 2113937151 d0a83ff2-bea2-4303-a226-245cd28a2e70.local 65015 typ host generation 0 network-cost 999
a=candidate:3328954433 1 udp 2113939711 944c5a26-d55e-4c8c-8c8c-42cd460b41ec.local 60461 typ host generation 0 network-cost 999
a=candidate:1223977673 1 udp 1677729535 49.207.242.121 26597 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=candidate:1677924448 1 udp 33562879 64.227.163.77 52310 typ relay raddr 49.207.242.121 rport 26597 generation 0 network-cost 999
a=candidate:1677924448 1 udp 33562623 64.227.163.77 48998 typ relay raddr 49.207.242.121 rport 26597 generation 0 network-cost 999
a=ice-ufrag:xKiV
a=ice-pwd:gj+kPKEaimMY1QTgVEB5yGOZ
a=ice-options:trickle
a=fingerprint:sha-256 9F:BD:F2:A5:25:AB:FF:02:6E:63:EB:53:0E:5E:1D:6B:24:18:3B:6B:28:4E:6D:D6:45:53:43:D8:BB:7A:04:50
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
m=video 0 UDP/TLS/RTP/SAVPF 98 99 100 101 103 104 107 108 109 114 115 116 117 118 39 40 45 46 96 97 123 124 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:xKiV
a=ice-pwd:gj+kPKEaimMY1QTgVEB5yGOZ
a=ice-options:trickle
a=fingerprint:sha-256 9F:BD:F2:A5:25:AB:FF:02:6E:63:EB:53:0E:5E:1D:6B:24:18:3B:6B:28:4E:6D:D6:45:53:43:D8:BB:7A:04:50
a=setup:actpass
a=mid:1
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=inactive
a=rtcp-mux
a=rtcp-rsize
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:103 H264/90000
a=rtcp-fb:103 goog-remb
a=rtcp-fb:103 transport-cc
a=rtcp-fb:103 ccm fir
a=rtcp-fb:103 nack
a=rtcp-fb:103 nack pli
a=fmtp:103 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:104 rtx/90000
a=fmtp:104 apt=103
a=rtpmap:107 H264/90000
a=rtcp-fb:107 goog-remb
a=rtcp-fb:107 transport-cc
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:108 rtx/90000
a=fmtp:108 apt=107
a=rtpmap:109 H264/90000
a=rtcp-fb:109 goog-remb
a=rtcp-fb:109 transport-cc
a=rtcp-fb:109 ccm fir
a=rtcp-fb:109 nack
a=rtcp-fb:109 nack pli
a=fmtp:109 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:114 rtx/90000
a=fmtp:114 apt=109
a=rtpmap:115 H264/90000
a=rtcp-fb:115 goog-remb
a=rtcp-fb:115 transport-cc
a=rtcp-fb:115 ccm fir
a=rtcp-fb:115 nack
a=rtcp-fb:115 nack pli
a=fmtp:115 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:116 rtx/90000
a=fmtp:116 apt=115
a=rtpmap:117 H264/90000
a=rtcp-fb:117 goog-remb
a=rtcp-fb:117 transport-cc
a=rtcp-fb:117 ccm fir
a=rtcp-fb:117 nack
a=rtcp-fb:117 nack pli
a=fmtp:117 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
a=rtpmap:118 rtx/90000
a=fmtp:118 apt=117
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:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0
a=rtpmap:46 rtx/90000
a=fmtp:46 apt=45
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:123 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=123
a=rtpmap:125 ulpfec/90000
for which the receiver replied with
v=0
o=- 4719951345278303818 5 IN IP4 0.0.0.0
s=-
t=0 0
a=group:BUNDLE 0 1
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:+MCccFodfEy/mBMEjdraXdAA9rMagAGu
a=ice-pwd:sJwD48Ry9wg0JQQau28P/iWV2rZGXzet
a=mid:0
a=setup:active
a=sctp-port:5000
a=fingerprint:sha-256 28:0D:A5:8E:87:B1:25:9F:78:26:67:C9:01:1F:BA:0B:D2:5A:5D:B7:71:6E:C4:C5:69:C2:48:C5:FF:CF:2A:E1
m=video 9 UDP/TLS/RTP/SAVPF 96
c=IN IP4 0.0.0.0
a=ice-ufrag:+MCccFodfEy/mBMEjdraXdAA9rMagAGu
a=ice-pwd:sJwD48Ry9wg0JQQau28P/iWV2rZGXzet
a=mid:1
a=rtcp-mux
a=setup:active
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 transport-cc
a=inactive
a=fingerprint:sha-256 28:0D:A5:8E:87:B1:25:9F:78:26:67:C9:01:1F:BA:0B:D2:5A:5D:B7:71:6E:C4:C5:69:C2:48:C5:FF:CF:2A:E1
I also have a receiver which runs on the browser with the same functionality which works fine. In this case the
Sender offer
v=0
o=- 6862573425337318510 5 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 60018 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 192.168.0.94
a=candidate:3624551204 1 udp 2113937151 952655fa-b833-4a75-ac25-5bf456440412.local 65147 typ host generation 0 network-cost 999
a=candidate:3086303313 1 udp 1677729535 192.168.0.93 65147 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=candidate:2431173171 1 udp 33562623 192.168.0.94 60018 typ relay raddr 192.168.0.93 rport 65147 generation 0 network-cost 999
a=ice-ufrag:r/xf
a=ice-pwd:1fAteY6ih0iAcxK60ecTFzaA
a=ice-options:trickle
a=fingerprint:sha-256 1F:FE:52:4C:9E:0D:B3:DF:11:69:69:6A:38:1C:4B:04:39:2E:7D:09:2A:4A:19:DA:6F:42:D8:BE:16:D9:A9:E5
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
m=video 0 UDP/TLS/RTP/SAVPF 98 99 100 101 103 104 107 108 109 114 115 116 117 118 39 40 45 46 96 97 123 124 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:r/xf
a=ice-pwd:1fAteY6ih0iAcxK60ecTFzaA
a=ice-options:trickle
a=fingerprint:sha-256 1F:FE:52:4C:9E:0D:B3:DF:11:69:69:6A:38:1C:4B:04:39:2E:7D:09:2A:4A:19:DA:6F:42:D8:BE:16:D9:A9:E5
a=setup:actpass
a=mid:1
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=inactive
a=rtcp-mux
a=rtcp-rsize
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:103 H264/90000
a=rtcp-fb:103 goog-remb
a=rtcp-fb:103 transport-cc
a=rtcp-fb:103 ccm fir
a=rtcp-fb:103 nack
a=rtcp-fb:103 nack pli
a=fmtp:103 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:104 rtx/90000
a=fmtp:104 apt=103
a=rtpmap:107 H264/90000
a=rtcp-fb:107 goog-remb
a=rtcp-fb:107 transport-cc
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:108 rtx/90000
a=fmtp:108 apt=107
a=rtpmap:109 H264/90000
a=rtcp-fb:109 goog-remb
a=rtcp-fb:109 transport-cc
a=rtcp-fb:109 ccm fir
a=rtcp-fb:109 nack
a=rtcp-fb:109 nack pli
a=fmtp:109 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:114 rtx/90000
a=fmtp:114 apt=109
a=rtpmap:115 H264/90000
a=rtcp-fb:115 goog-remb
a=rtcp-fb:115 transport-cc
a=rtcp-fb:115 ccm fir
a=rtcp-fb:115 nack
a=rtcp-fb:115 nack pli
a=fmtp:115 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:116 rtx/90000
a=fmtp:116 apt=115
a=rtpmap:117 H264/90000
a=rtcp-fb:117 goog-remb
a=rtcp-fb:117 transport-cc
a=rtcp-fb:117 ccm fir
a=rtcp-fb:117 nack
a=rtcp-fb:117 nack pli
a=fmtp:117 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
a=rtpmap:118 rtx/90000
a=fmtp:118 apt=117
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:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0
a=rtpmap:46 rtx/90000
a=fmtp:46 apt=45
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:123 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=123
a=rtpmap:125 ulpfec/90000
the receiver (browser) is sending answer
v=0
o=- 3281861859640168342 5 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 60049 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 192.168.0.94
a=candidate:2437261266 1 udp 2113937151 226ffc61-7b71-4afc-b46e-0c9ad89d3293.local 50667 typ host generation 0 network-cost 999
a=candidate:2153638421 1 udp 1677729535 192.168.0.94 50667 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=candidate:600242147 1 udp 33562623 192.168.0.94 60049 typ relay raddr 192.168.0.94 rport 50667 generation 0 network-cost 999
a=candidate:2153638421 1 udp 1677729535 14.142.151.66 50667 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999
a=ice-ufrag:JZyK
a=ice-pwd:LDAOBDzC19vBIceIAu+OAeZX
a=ice-options:trickle
a=fingerprint:sha-256 C3:A2:D2:80:7D:83:F8:7C:47:4B:31:48:F4:AA:80:77:C5:79:AB:6B:7A:A1:0B:3C:1C:22:47:DF:5C:95:61:52
a=setup:active
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
m=video 0 UDP/TLS/RTP/SAVPF 98 99 100 101 103 104 107 108 109 114 115 116 117 118 39 40 45 46 96 97 123 124 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:JZyK
a=ice-pwd:LDAOBDzC19vBIceIAu+OAeZX
a=ice-options:trickle
a=fingerprint:sha-256 C3:A2:D2:80:7D:83:F8:7C:47:4B:31:48:F4:AA:80:77:C5:79:AB:6B:7A:A1:0B:3C:1C:22:47:DF:5C:95:61:52
a=setup:active
a=mid:1
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=inactive
a=rtcp-mux
a=rtcp-rsize
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;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
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;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:103 H264/90000
a=rtcp-fb:103 goog-remb
a=rtcp-fb:103 transport-cc
a=rtcp-fb:103 ccm fir
a=rtcp-fb:103 nack
a=rtcp-fb:103 nack pli
a=fmtp:103 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:104 rtx/90000
a=fmtp:104 apt=103;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:107 H264/90000
a=rtcp-fb:107 goog-remb
a=rtcp-fb:107 transport-cc
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:108 rtx/90000
a=fmtp:108 apt=107;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:109 H264/90000
a=rtcp-fb:109 goog-remb
a=rtcp-fb:109 transport-cc
a=rtcp-fb:109 ccm fir
a=rtcp-fb:109 nack
a=rtcp-fb:109 nack pli
a=fmtp:109 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:114 rtx/90000
a=fmtp:114 apt=109;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:115 H264/90000
a=rtcp-fb:115 goog-remb
a=rtcp-fb:115 transport-cc
a=rtcp-fb:115 ccm fir
a=rtcp-fb:115 nack
a=rtcp-fb:115 nack pli
a=fmtp:115 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:116 rtx/90000
a=fmtp:116 apt=115;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:117 H264/90000
a=rtcp-fb:117 goog-remb
a=rtcp-fb:117 transport-cc
a=rtcp-fb:117 ccm fir
a=rtcp-fb:117 nack
a=rtcp-fb:117 nack pli
a=fmtp:117 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:118 rtx/90000
a=fmtp:118 apt=117;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
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;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:40 rtx/90000
a=fmtp:40 apt=39;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:46 rtx/90000
a=fmtp:46 apt=45;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
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;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:123 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=123;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000
a=rtpmap:125 ulpfec/90000
webrtcbin
does not support a bundle group that does not include all of the m-lines. As your offer only contains the first m-line, webrtcbin will not work for this SDP offer.
What is producing this SDP offer? I’ve never seen this construction before.
vr7bd
April 8, 2025, 2:03pm
5
This offer is being produced by a Chromium-based browser.
You’ll find below the complete negotiation in the working and non-working case. The browser behaves as the sender in both scenarios.
Edit: Had to split the messages due to character limit
vr7bd
April 8, 2025, 2:04pm
7
Working case Rx Data Answer:
{"sdp":"v=0\r\no=- 5738461014109199554 5 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 60047 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 192.168.0.94\r\na=candidate:276706315 1 udp 2113937151 cbdc12f1-4550-4b82-95b8-15963367187f.local 65225 typ host generation 0 network-cost 999\r\na=candidate:154709968 1 udp 1677729535 192.168.0.94 65225 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999\r\na=candidate:154709968 1 udp 1677729535 14.142.151.66 65225 typ srflx raddr 0.0.0.0 rport 0 generation 0 network-cost 999\r\na=candidate:774188466 1 udp 33562623 192.168.0.94 60047 typ relay raddr 192.168.0.94 rport 65225 generation 0 network-cost 999\r\na=ice-ufrag:1S5H\r\na=ice-pwd:0uL4qLsCDTzgRwTWxwJglcpm\r\na=ice-options:trickle\r\na=fingerprint:sha-256 74:A6:54:E9:65:A9:00:D8:77:0E:4B:89:F9:E4:E5:07:87:0B:B1:8B:31:32:42:4E:82:3A:3D:68:08:E6:5F:E1\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\nm=video 0 UDP/TLS/RTP/SAVPF 98 99 100 101 103 104 107 108 109 114 115 116 117 118 39 40 45 46 96 97 123 124 125\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:1S5H\r\na=ice-pwd:0uL4qLsCDTzgRwTWxwJglcpm\r\na=ice-options:trickle\r\na=fingerprint:sha-256 74:A6:54:E9:65:A9:00:D8:77:0E:4B:89:F9:E4:E5:07:87:0B:B1:8B:31:32:42:4E:82:3A:3D:68:08:E6:5F:E1\r\na=setup:active\r\na=mid:1\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:3 urn:3gpp:video-orientation\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:9 urn:ietf:params:rtp-hdrext:sdes:mid\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=inactive\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 profile-id=0;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:100 VP9/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 profile-id=2;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:103 H264/90000\r\na=rtcp-fb:103 goog-remb\r\na=rtcp-fb:103 transport-cc\r\na=rtcp-fb:103 ccm fir\r\na=rtcp-fb:103 nack\r\na=rtcp-fb:103 nack pli\r\na=fmtp:103 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:104 rtx/90000\r\na=fmtp:104 apt=103;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:108 rtx/90000\r\na=fmtp:108 apt=107;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:109 H264/90000\r\na=rtcp-fb:109 goog-remb\r\na=rtcp-fb:109 transport-cc\r\na=rtcp-fb:109 ccm fir\r\na=rtcp-fb:109 nack\r\na=rtcp-fb:109 nack pli\r\na=fmtp:109 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:114 rtx/90000\r\na=fmtp:114 apt=109;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:115 H264/90000\r\na=rtcp-fb:115 goog-remb\r\na=rtcp-fb:115 transport-cc\r\na=rtcp-fb:115 ccm fir\r\na=rtcp-fb:115 nack\r\na=rtcp-fb:115 nack pli\r\na=fmtp:115 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:116 rtx/90000\r\na=fmtp:116 apt=115;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:117 H264/90000\r\na=rtcp-fb:117 goog-remb\r\na=rtcp-fb:117 transport-cc\r\na=rtcp-fb:117 ccm fir\r\na=rtcp-fb:117 nack\r\na=rtcp-fb:117 nack pli\r\na=fmtp:117 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:118 rtx/90000\r\na=fmtp:118 apt=117;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:39 H264/90000\r\na=rtcp-fb:39 goog-remb\r\na=rtcp-fb:39 transport-cc\r\na=rtcp-fb:39 ccm fir\r\na=rtcp-fb:39 nack\r\na=rtcp-fb:39 nack pli\r\na=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:40 rtx/90000\r\na=fmtp:40 apt=39;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:45 AV1/90000\r\na=rtcp-fb:45 goog-remb\r\na=rtcp-fb:45 transport-cc\r\na=rtcp-fb:45 ccm fir\r\na=rtcp-fb:45 nack\r\na=rtcp-fb:45 nack pli\r\na=fmtp:45 level-idx=5;profile=0;tier=0;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:46 rtx/90000\r\na=fmtp:46 apt=45;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:123 red/90000\r\na=rtpmap:124 rtx/90000\r\na=fmtp:124 apt=123;x-google-max-bitrate=15000;x-google-min-bitrate=5000;x-google-start-bitrate=10000\r\na=rtpmap:125 ulpfec/90000\r\n","type":"answer"}]
vr7bd
April 8, 2025, 9:38pm
9
I think I found the issue
Below is the snippet for stopping the video stream from the sender side
async function stopCapture() {
const transceivers = peerConnection.getTransceivers();
for (const transceiver of transceivers) {
await transceiver.stop(); // Seems to be the culprit
}
// ^^^ Culprit
const senders = await peerConnection.getSenders();
await senders.forEach(async (sender) => {
if (sender && sender.track) {
await sender.track.stop();
await peerConnection.removeTrack(sender);
}
});
const offer = await peerConnection.createOffer({
offerToReceiveAudio: false,
offerToReceiveVideo: false,
iceRestart: false,
});
peerConnection.setLocalDescription(offer);
// Send data channel offer
}
Calling transceiver.stop()
seems to be causing the issue. Commenting the line out seems to be working. But the issue is when the user tries to share again, the offer for the video will have the content for the previous inactive video streams which will make the SDP huge.
Also the answer seems to be the same with and without transceiver.stop()
. So I don’t understand why the browser doesn’t like the answer when we’re stopping the transceiver.
Any ideas on what’s going on?
vr7bd
April 8, 2025, 10:11pm
10
Also when I tried the same thing from a firefox based browser, I’m not getting any error thrown from the browser. However I get
0:35:48.408545959 45622 0x6000012c2990 WARN webrtcbin gstwebrtcbin.c:7007:_set_description_task:<webrtcbin> returning error: media 1 is missing or contains an empty 'ice-ufrag' attribute
0:35:48.408561209 45622 0x6000012c2990 WARN webrtcbin gstwebrtcbin.c:4833:_create_sdp_task:<webrtcbin> returning error: Asked to create an answer without a remote description
when I run with GST_DEBUG=3 for the following offer:
v=0
o=mozilla...THIS_IS_SDPARTA-99.0 7234526636243871857 3 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sha-256 64:27:2F:AF:64:6C:70:F3:E6:0B:96:38:11:78:A4:FF:11:F2:B0:77:F1:A2:88:59:7C:62:4A:F2:E4:8C:4A:96
a=group:BUNDLE 0
a=ice-options:trickle
a=msid-semantic:WMS *
m=application 56269 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 64.227.163.77
a=candidate:0 1 UDP 2122187007 bacc90c4-1ccd-47d2-9514-49d976ce115a.local 61701 typ host
a=candidate:5 1 UDP 2122252543 ef7727b8-0128-47bb-883e-5a3c623a0a2f.local 59898 typ host
a=candidate:8 1 TCP 2105458943 bacc90c4-1ccd-47d2-9514-49d976ce115a.local 9 typ host tcptype active
a=candidate:9 1 TCP 2105524479 ef7727b8-0128-47bb-883e-5a3c623a0a2f.local 9 typ host tcptype active
a=candidate:2 1 UDP 1685987071 49.207.242.121 26837 typ srflx raddr 0.0.0.0 rport 0
a=candidate:4 1 UDP 92150271 64.227.163.77 56269 typ relay raddr 64.227.163.77 rport 56269
a=candidate:4 1 UDP 92149759 64.227.163.77 49104 typ relay raddr 64.227.163.77 rport 49104
a=sendrecv
a=end-of-candidates
a=ice-pwd:6c4dab516cc6c897a602f0d6432d9021
a=ice-ufrag:88132378
a=mid:0
a=setup:actpass
a=sctp-port:5000
a=max-message-size:1073741823
m=video 0 UDP/TLS/RTP/SAVPF 120
c=IN IP4 0.0.0.0
a=inactive
a=mid:1
a=rtpmap:120 VP8/90000
In the working case where I’ve commented out the transceiver.stop()
on firefox, I’m getting the offer:
v=0
o=mozilla...THIS_IS_SDPARTA-99.0 6330021262124301521 3 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sha-256 29:2D:D6:FA:13:06:88:84:8E:AE:2B:83:45:C3:6E:B5:F5:9B:63:EF:73:38:2C:A0:39:6C:CC:0F:0A:43:10:55
a=group:BUNDLE 0 1
a=ice-options:trickle
a=msid-semantic:WMS *
m=application 51098 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 64.227.163.77
a=candidate:0 1 UDP 2122187007 7f645abd-8ab5-4054-afd4-2a7e6505daeb.local 55544 typ host
a=candidate:5 1 UDP 2122252543 99ea825b-cea5-4b81-ae03-b1c772751bb7.local 49881 typ host
a=candidate:8 1 TCP 2105458943 7f645abd-8ab5-4054-afd4-2a7e6505daeb.local 9 typ host tcptype active
a=candidate:9 1 TCP 2105524479 99ea825b-cea5-4b81-ae03-b1c772751bb7.local 9 typ host tcptype active
a=candidate:2 1 UDP 1685987071 49.207.242.121 25734 typ srflx raddr 0.0.0.0 rport 0
a=candidate:4 1 UDP 92150271 64.227.163.77 51098 typ relay raddr 64.227.163.77 rport 51098
a=candidate:4 1 UDP 92149759 64.227.163.77 48121 typ relay raddr 64.227.163.77 rport 48121
a=sendrecv
a=end-of-candidates
a=ice-pwd:96d7ecc4a8b254c476db179c84e0bd20
a=ice-ufrag:51995e37
a=mid:0
a=setup:actpass
a=sctp-port:5000
a=max-message-size:1073741823
m=video 9 UDP/TLS/RTP/SAVPF 121 125 126 127 97 98 99 100 120 124 123 122 119
c=IN IP4 0.0.0.0
a=inactive
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:5 urn:ietf:params:rtp-hdrext:toffset
a=extmap:6/recvonly http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1
a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1
a=fmtp:121 max-fs=12288;max-fr=60
a=fmtp:125 apt=121
a=fmtp:127 apt=126
a=fmtp:98 apt=97
a=fmtp:100 apt=99
a=fmtp:120 max-fs=12288;max-fr=60
a=fmtp:124 apt=120
a=fmtp:119 apt=122
a=ice-pwd:96d7ecc4a8b254c476db179c84e0bd20
a=ice-ufrag:51995e37
a=mid:1
a=rtcp-fb:120 nack
a=rtcp-fb:120 nack pli
a=rtcp-fb:120 ccm fir
a=rtcp-fb:120 goog-remb
a=rtcp-fb:120 transport-cc
a=rtcp-fb:121 nack
a=rtcp-fb:121 nack pli
a=rtcp-fb:121 ccm fir
a=rtcp-fb:121 goog-remb
a=rtcp-fb:121 transport-cc
a=rtcp-fb:126 nack
a=rtcp-fb:126 nack pli
a=rtcp-fb:126 ccm fir
a=rtcp-fb:126 goog-remb
a=rtcp-fb:126 transport-cc
a=rtcp-fb:97 nack
a=rtcp-fb:97 nack pli
a=rtcp-fb:97 ccm fir
a=rtcp-fb:97 goog-remb
a=rtcp-fb:97 transport-cc
a=rtcp-fb:99 nack
a=rtcp-fb:99 nack pli
a=rtcp-fb:99 ccm fir
a=rtcp-fb:99 goog-remb
a=rtcp-fb:99 transport-cc
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 transport-cc
a=rtcp-fb:122 nack
a=rtcp-fb:122 nack pli
a=rtcp-fb:122 ccm fir
a=rtcp-fb:122 goog-remb
a=rtcp-fb:122 transport-cc
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:121 VP9/90000
a=rtpmap:125 rtx/90000
a=rtpmap:126 H264/90000
a=rtpmap:127 rtx/90000
a=rtpmap:97 H264/90000
a=rtpmap:98 rtx/90000
a=rtpmap:99 AV1/90000
a=rtpmap:100 rtx/90000
a=rtpmap:120 VP8/90000
a=rtpmap:124 rtx/90000
a=rtpmap:123 ulpfec/90000
a=rtpmap:122 red/90000
a=rtpmap:119 rtx/90000
a=setup:actpass
a=ssrc:3220794461 cname:{1ca2060d-67bc-4aee-a554-1b8c9c2e8e19}
Ah, that’s a different not implemented thing in webrtcbin. webrtcbin does not support stopping or removing transceivers in a SDP renegotiation.
vr7bd
April 9, 2025, 11:07am
12
Thanks for the support!
I’m curious about you mentioning that the offer being sent is invalid. If you don’t mind, could you explain why it’s invalid and is it something that Chrome or Firefox is doing wrong?
I didn’t say anything about invalid. Just that webrtcbin doesn’t support that offer construction (a bundle group that does not contain all mlines).
1 Like