Code Monkey home page Code Monkey logo

Comments (12)

ibc avatar ibc commented on June 9, 2024

Please specify how to reproduce. Is this when activating the camera? Or when consuming media?

from mediasoup-client.

kalan4iki avatar kalan4iki commented on June 9, 2024

When consuming microphone

from mediasoup-client.

ibc avatar ibc commented on June 9, 2024

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.

kalan4iki avatar kalan4iki commented on June 9, 2024

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.

ibc avatar ibc commented on June 9, 2024

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.

ibc avatar ibc commented on June 9, 2024

But if in the meantime you could log and paste here the parameters given to recvTransport.consume() that would help.

from mediasoup-client.

kalan4iki avatar kalan4iki commented on June 9, 2024
{
	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.

ibc avatar ibc commented on June 9, 2024

Sorry, I meant in mediasoup-client side.

from mediasoup-client.

kalan4iki avatar kalan4iki commented on June 9, 2024

jsonformatter.txt

{
"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.

ibc avatar ibc commented on June 9, 2024

Thanks. The bug is in mediasoup-client when calling consume() with OPUS codec and enableRtx:true. Will fix soon.

from mediasoup-client.

ibc avatar ibc commented on June 9, 2024

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.

ibc avatar ibc commented on June 9, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.