Comments (12)
Please specify how to reproduce. Is this when activating the camera? Or when consuming media?
from mediasoup-client.
When consuming microphone
from mediasoup-client.
Can you please enable debug logs and paste here the failing remote SDP? You should see a log line before the error with content "setRemoteDescription()" and the full SDP.
from mediasoup-client.
mediasoup-client:Chrome55 receive() | calling pc.setRemoteDescription() [offer:
v=0
o=mediasoup-client 10000 4 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
a=fingerprint:sha-256 04:B1:4E:DB:7D:0A:4B:79:C6:6E:66:36:47:EF:27:2D:56:FE:4B:98:7C:C0:68:2B:FC:CB:F1:52:4E:19:7D:1D
a=msid-semantic: WMS *
a=group:BUNDLE audio
m=audio 7 UDP/TLS/RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 maxplaybackrate=48000;stereo=1;useinbandfec=1;sprop-stereo=1;usedtx=1
a=rtcp-fb:100 nack
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time
a=setup:actpass
a=mid:audio
a=sendonly
a=ice-ufrag:47fjmsj2cl7lnij85kkcv9ov1icm8fgh
a=ice-pwd:q1l9wmx8qb1vdkpuneyi932dz8qk6xqz
a=candidate:udpcandidate 1 udp 1076302079 192.168.1.81 10009 typ host
a=end-of-candidates
a=ice-options:renomination
a=ssrc:861658784 cname:{1f5eee17-586b-410a-b230-86175184b39b}
a=ssrc:861658784 msid:q3mhSYAR-4nc1mIzAAAD-videoType 361ed17e-857f-4d7f-95a7-1af0831fba5e
a=ssrc:253623017 cname:{1f5eee17-586b-410a-b230-86175184b39b}
a=ssrc:253623017 msid:q3mhSYAR-4nc1mIzAAAD-videoType 48b5376d-5f75-4dc2-a624-14272804f565
a=rtcp-mux
a=rtcp-rsize
from mediasoup-client.
a=ssrc:861658784 cname:{1f5eee17-586b-410a-b230-86175184b39b}
a=ssrc:861658784 msid:q3mhSYAR-4nc1mIzAAAD-videoType 361ed17e-857f-4d7f-95a7-1af0831fba5e
a=ssrc:253623017 cname:{1f5eee17-586b-410a-b230-86175184b39b}
a=ssrc:253623017 msid:q3mhSYAR-4nc1mIzAAAD-videoType 48b5376d-5f75-4dc2-a624-14272804f565
So this is wrong, there should be only one ssrc value. Issue probably triggered by the usage of NACK for OPUS. Will check later.
from mediasoup-client.
But if in the meantime you could log and paste here the parameters given to recvTransport.consume()
that would help.
from mediasoup-client.
{
producerId: '78e71dbf-9b2d-4a57-85e5-125dcac50fa6',
rtpCapabilities: {
codecs: [
{
kind: 'audio',
mimeType: 'audio/opus',
clockRate: 48000,
channels: 2,
rtcpFeedback: [
{ type: 'nack', parameter: '' },
{ 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': 2000 },
preferredPayloadType: 101,
},
{
kind: 'video',
mimeType: 'video/rtx',
preferredPayloadType: 102,
clockRate: 90000,
parameters: { apt: 101 },
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',
},
{
kind: 'audio',
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
preferredId: 13,
preferredEncrypt: false,
direction: 'sendrecv',
},
{
kind: 'video',
uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time',
preferredId: 13,
preferredEncrypt: false,
direction: 'sendrecv',
},
],
},
appData: {
type: 'audioType',
peer: {
id: 'BBYFwfgI7raO-OK9AAAD',
data: {
user: {
color: '#0c57b9',
first_name: 'A',
id: 'ff87eb78-efc2-4b9e-a12e-2072f5091ed1',
last_name: 'Admin',
middle_name: 'D',
online: true,
full_name: 'Admin A D',
last_online: 'None',
username: 'admin_user',
external_id: '6b80fed3-bc39-4e35-a19d-de5c07057fe7',
email: '[email protected]',
token:
'CC3CB0A1ED456A4CDF9EA287587AFE3CE2F7ADA1958C5E1856EC50888F228500',
},
custom_id: 'ff87eb78-efc2-4b9e-a12e-2072f5091ed1',
},
connected_at: 1707909679346,
session_id: '6d57d9c9-badf-46d5-a8d1-f03829cb9a7e',
disconnected_at: null,
custom_id: 'ff87eb78-efc2-4b9e-a12e-2072f5091ed1',
},
},
enableRtx: true,
paused: false,
}
from mediasoup-client.
Sorry, I meant in mediasoup-client side.
from mediasoup-client.
{
"id": "a1e93d9c-7003-4082-9f6e-41cae71554d5",
"producerId": "8968bbe3-2ff0-4a16-bfea-b2bdd977f6ae",
"kind": "audio",
"rtpParameters": {
"codecs": [
{
"mimeType": "audio/opus",
"payloadType": 100,
"clockRate": 48000,
"channels": 2,
"parameters": {
"maxplaybackrate": 48000,
"stereo": 1,
"useinbandfec": 1,
"sprop-stereo": 1,
"usedtx": 1
},
"rtcpFeedback": [
{
"type": "nack",
"parameter": ""
}
]
}
],
"headerExtensions": [
{
"uri": "urn:ietf:params:rtp-hdrext:sdes:mid",
"id": 1,
"encrypt": false,
"parameters": {}
},
{
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",
"id": 4,
"encrypt": false,
"parameters": {}
},
{
"uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level",
"id": 10,
"encrypt": false,
"parameters": {}
},
{
"uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time",
"id": 13,
"encrypt": false,
"parameters": {}
}
],
"encodings": [
{
"ssrc": 251983012
}
],
"rtcp": {
"cname": "{acc4f34c-9116-40b7-b9af-16eb21200aa7}",
"reducedSize": true
},
"mid": "2"
},
"appData": {
"type": "audioType",
"peer": {
"id": "16WTY-U6COCia3CAAAAD",
"data": {
"user": {
"id": "ff87eb78-efc2-4b9e-a12e-2072f5091ed1",
"external_id": "6b80fed3-bc39-4e35-a19d-de5c07057fe7",
"first_name": "A",
"last_name": "Admin",
"middle_name": "D",
"email": "[email protected]",
"username": "admin_user",
"online": true,
"last_online": null,
"full_name": "Admin A D",
"token": "CC3CB0A1ED456A4CDF9EA287587AFE3CE2F7ADA1958C5E1856EC50888F228500",
"color": "#0c57b9"
},
"custom_id": "ff87eb78-efc2-4b9e-a12e-2072f5091ed1"
},
"connected_at": 1707910313317,
"session_id": "6d57d9c9-badf-46d5-a8d1-f03829cb9a7e",
"disconnected_at": null,
"custom_id": "ff87eb78-efc2-4b9e-a12e-2072f5091ed1"
}
},
"streamId": "16WTY-U6COCia3CAAAAD-videoType"
}
from mediasoup-client.
Thanks. The bug is in mediasoup-client when calling consume() with OPUS codec and enableRtx:true. Will fix soon.
from mediasoup-client.
I cannot reproduce the issue with very similar settngs and Chrome 121.0.6167.184. The remote SDP that mediasoup-client generates only has a a=ssrc
line as expected.
v=0
o=mediasoup-client 10000 2 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
a=fingerprint:sha-224 3F:C5:76:3A:23:DA:9D:D1:90:BB:93:2D:74:D2:C6:98:9A:C8:BB:03:00:12:68:9B:E6:D6:5F:D8
a=msid-semantic: WMS *
a=group:BUNDLE datachannel 0
m=application 7 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 127.0.0.1
a=setup:actpass
a=mid:datachannel
a=ice-ufrag:87ist39j6rg9sosjdgrp60y43ohyltpc
a=ice-pwd:ypw2jlvh4xyzqie9ralboqk6l6b0r3z6
a=candidate:udpcandidate 1 udp 1076302079 192.168.1.38 44444 typ host
a=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.38 44444 typ host tcptype passive
a=end-of-candidates
a=ice-options:renomination
a=sctp-port:5000
a=max-message-size:262144
m=audio 7 UDP/TLS/RTP/SAVPF 100
c=IN IP4 127.0.0.1
a=rtpmap:100 opus/48000/2
a=fmtp:100 minptime=10;useinbandfec=1;sprop-stereo=1;usedtx=1
a=rtcp-fb:100 nack
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:10 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=setup:actpass
a=mid:0
a=msid:ygestolh-mic-webcam 8caa1fcb-0822-4f02-9bb1-4ac03a97649b
a=sendonly
a=ice-ufrag:87ist39j6rg9sosjdgrp60y43ohyltpc
a=ice-pwd:ypw2jlvh4xyzqie9ralboqk6l6b0r3z6
a=candidate:udpcandidate 1 udp 1076302079 192.168.1.38 44444 typ host
a=candidate:tcpcandidate 1 tcp 1076276479 192.168.1.38 44444 typ host tcptype passive
a=end-of-candidates
a=ice-options:renomination
a=ssrc:434378758 cname:yD9jP5w0Yl4NDece
a=rtcp-mux
a=rtcp-rsize
But now I see that you are using Chrome55
SUPER OLD handler, why? Are you calling device = new Device({ handlerName: 'Chrome55' })
? and why?
mediasoup-client:Chrome55 receive() | calling pc.setRemoteDescription()
from mediasoup-client.
Closing since the bug is invalid. Chrome55
handler doesn't work on Chrome 121 because Chrome55
mediasoup-client handler uses Plan-B which is no longer available in modern Chrome versions.
from mediasoup-client.
Related Issues (20)
- pipeTransport connected but audio does not play HOT 4
- mediasoup-client.js HOT 1
- Make the implement of Transport simple? HOT 1
- Transport produce doesn't respect preferredPayloadType HOT 1
- Replace bowser dep HOT 1
- React Native producer localId is null HOT 2
- Make types.ts export only types and not classes HOT 2
- producer.close() throws unhandled rejection if called when PeerConnection's signalingState is "closed"
- Expose Transport Connection API HOT 4
- Remove DOM TypeScript type HOT 1
- DOMException: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: Failed to add remote stream ssrc: 901813733 to {mid: 7, media_type: video} HOT 1
- ua-parser-js will change license to AGPL HOT 1
- await sendTransport.produce is stuck. not response, don't resolve HOT 3
- 'awaitqueue' reports an error after upgrading to version 3. There is no problem with version 2. HOT 2
- Mediasoup client returns invalid payloadType for H264 on React Native. HOT 8
- DOMException: Failed to execute 'structuredClone' on 'Window': #<Object> could not be cloned. HOT 19
- Cannot change the number of encodings with setParameters HOT 2
- No video and Audio when remote stream url is provided to RtcView. HOT 2
- produce() does not perform strict match check on passed codec. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mediasoup-client.