Remote video stream not working for old users , only working for latest two connected users

Hello All,

I have developed a Video chat application using node.js,webRTC,Mediasoup with Pipe transport .
When I join call with more than two users , then the two latest users got remote video streams but the other old users got only empty video stream , can anyone suggest me about this , if I missing something or whats the issue behind , there is no error showing in mediasousp error and debug logs

Thanks

I cannot believe this kind of happy questions exist, honestly


if I missing something

maybe

All are not expert like you in Mediasoup , so instead of laughing , you can tell me the solution .
Missing something means , if any step or anything I have to add more in code related to webRTC or mediasoup as remote video stream is not working for old connected users , it is working only for latest two connected users .
You can laugh after solving this in 10 minutes .

No, thanks. I’m not gonna solve your issue because it looks like you really think that others can solve it with your minimal issue description.

There are debugging capabilities and stats in mediasoup that would help you identifying the problem. Just use them.

I have checked these , but there is no errors or info related to issue .

You can see in the attached image , that the 3rd user’s remote video stream is blank .
How ever , remote video streams are working fine for 2nd and 3rd user .
1st and 2nd user is also working fine.
Issue is with 1st and 3rd user .

If you need more info , then please tell me .

@ashusaini5141
You were a bit vague, you did not explain what you’re doing other than mention you are trying to utilize pipe transports. It’s fair to provide a “maybe” to your answer.

It’s not a matter of laughing, nothing was funny; it’s about expectations and you’ve set them high. IBC does this for who knows what reason but surely has helped lots of developers. You’re a bit demanding.


It truthfully sounds like you’re consuming once and that’s it, each viewer needs to have its transport consume the stream.

1 Like

I agree with you , but if anyone love technical problems and help to solve them , then he can ask for more info . I am beginner to mediasoup technology .

Let’s give a small example,

Server A: Contains produced video/audio
Server B: Will handle our viewers

  1. Connect Server A to Server B via PipeTransport.
  2. Take the stream on Server A and consume it to PipeTransport
  3. Take the stream on Server B by producing it.
  4. When viewer comes in consume off the pipetransport each time.

Assuming you have got to step 3, and the pipetransport on Server B has the stream, I’d think you’re not consuming each time a new viewer comes in.

1 Like

I am using only single server now .
I am using Node.js singnaling server .

Oh so it’s much easier then, you don’t have to signal for connection between “workers/routers”. So still applies.

Server A and Server B in this case can be on same machine, different workers/routers.

1 Like

We need more than one server after specific number of users like 1000 , as I am testing it with only 3 or 4 users now . Issue is that , 1st user receiving video stream of 3rd user but video is blank .

Are you consuming the publisher each time for every viewer wanting access?

You would had to of created a transport for each user viewing, and to that consume the publisher each time. DTLS would had then connected allowing to you build the stream with any nth amount of audio/video.


Your log is a mess, with no errors it’s safe to assume that your doing things out of step. Try debugging the server and step-by-step it and see if you’re doing it right.

1 Like

Here is the Node.js logs →

Room joinind memeber {
orgId: ‘o20190828092008798’,
meetingId: ‘a’,
userid: ‘5d674e9cb954b8523497fcc6’,
audio: true,
video: true,
username: ‘Nodejs’
}
socket.userid 5d674e9cb954b8523497fcc6
socket.id VRO1bukvELR5MDv0AAAA
listOfusers joinRoom getJoinRoomPeople 60{“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“VRO1bukvELR5MDv0AAAA”,“userid”:“5d674e9cb954b8523497fcc6”},“connectedWith”:{},“isPublic”:false,“extra”:{},“inCall”:false,“maxParticipantsAllowed”:100}}
listOfUsersJoinedRoom_ {“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“VRO1bukvELR5MDv0AAAA”,“userid”:“5d674e9cb954b8523497fcc6”},“extra”:{“audio”:true,“video”:true}}}
create new room. roomId= a
remoteSockets
{
id: ‘adfe9784-e206-48d6-950f-a2e6c4bd51d8’,
iceParameters: {
iceLite: true,
password: ‘qs60nc12l51w6t0671v9shan6yulvqpb’,
usernameFragment: ‘5rp7y3otsgor18j1’
},
iceCandidates: [
{
foundation: ‘udpcandidate’,
ip: ‘127.0.0.1’,
port: 27815,
priority: 1076558079,
protocol: ‘udp’,
type: ‘host’
},
{
foundation: ‘tcpcandidate’,
ip: ‘127.0.0.1’,
port: 14153,
priority: 1076302079,
protocol: ‘tcp’,
tcpType: ‘passive’,
type: ‘host’
}
],
dtlsParameters: {
fingerprints: [ [Object], [Object], [Object], [Object], [Object] ],
role: ‘auto’
},
iceServers: [
{ urls: ‘stun:54.86.122.151:3478’ },
{
urls: ‘turn:54.86.122.151:3479?transport=tcp’,
username: ‘raheem’,
credential: ‘zapoj’
}
]
} consumer tracks params
remoteSocketIds
getCurrentProducers meetingId a
id VRO1bukvELR5MDv0AAAA
users result []
– remoteVideoIds: []
– remoteAudioIds: []
remoteSockets
ensureAuthorized called
ensureAuthorized called
mediasoup.js file called

Room joinind memeber {
orgId: ‘o20190828092008798’,
meetingId: ‘a’,
userid: ‘5d674e9cb954b8523497fcc6’,
audio: true,
video: true,
username: ‘Nodejs’
}
socket.userid 5d674e9cb954b8523497fcc6
socket.id wzXfRM32GkQcg7B5AAAA
listOfusers joinRoom getJoinRoomPeople 60{“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“wzXfRM32GkQcg7B5AAAA”,“userid”:“5d674e9cb954b8523497fcc6”},“connectedWith”:{},“isPublic”:false,“extra”:{},“inCall”:false,“maxParticipantsAllowed”:100}}
listOfUsersJoinedRoom_ {“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“wzXfRM32GkQcg7B5AAAA”,“userid”:“5d674e9cb954b8523497fcc6”},“extra”:{“audio”:true,“video”:true}}}
create new room. roomId= a
remoteSockets VRO1bukvELR5MDv0AAAA
{
id: ‘bd64d253-e4c7-4807-8d05-75b7a50f36a2’,
iceParameters: {
iceLite: true,
password: ‘ekuc3w5e9x586546b13do1afuyehfehn’,
usernameFragment: ‘hv5f2zg5wk4zlwn5’
},
iceCandidates: [
{
foundation: ‘udpcandidate’,
ip: ‘127.0.0.1’,
port: 42087,
priority: 1076558079,
protocol: ‘udp’,
type: ‘host’
},
{
foundation: ‘tcpcandidate’,
ip: ‘127.0.0.1’,
port: 42169,
priority: 1076302079,
protocol: ‘tcp’,
tcpType: ‘passive’,
type: ‘host’
}
],
dtlsParameters: {
fingerprints: [ [Object], [Object], [Object], [Object], [Object] ],
role: ‘auto’
},
iceServers: [
{ urls: ‘stun:54.86.122.151:3478’ },
{
urls: ‘turn:54.86.122.151:3479?transport=tcp’,
username: ‘raheem’,
credential: ‘zapoj’
}
]
} consumer tracks params
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“VRO1bukvELR5MDv0AAAA”,“remoteId”:“wzXfRM32GkQcg7B5AAAA”}
room [object Object]
remoteSocketIds VRO1bukvELR5MDv0AAAA
getCurrentProducers meetingId a
id VRO1bukvELR5MDv0AAAA
id wzXfRM32GkQcg7B5AAAA
users result [“VRO1bukvELR5MDv0AAAA”]
id VRO1bukvELR5MDv0AAAA
users result [“VRO1bukvELR5MDv0AAAA”]
– remoteVideoIds: [ ‘VRO1bukvELR5MDv0AAAA’ ]
– remoteAudioIds: [ ‘VRO1bukvELR5MDv0AAAA’ ]
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“wzXfRM32GkQcg7B5AAAA”,“remoteId”:“VRO1bukvELR5MDv0AAAA”,“kind”:“video”}
remoteSockets VRO1bukvELR5MDv0AAAA
room [object Object]
room [object Object]
room [object Object]
remote pipe address for remote id VRO1bukvELR5MDv0AAAA is { ip: ‘192.168.0.29’, port: 24986, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:24986,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“cml3Yml3eDdkYnlib3QwczRmbHMzZGU4eWNidzlx”}}
remote pipe address for remote id wzXfRM32GkQcg7B5AAAA is { ip: ‘192.168.0.29’, port: 38208, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:38208,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“a3U0aXhxYmt2cm5lZzc2NGhmeHphem81Z29rajFj”}}
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
ensureAuthorized called
ensureAuthorized called
mediasoup.js file called

Room joinind memeber {
orgId: ‘o20190828092008798’,
meetingId: ‘a’,
userid: ‘5d674e9cb954b8523497fcc6’,
audio: true,
video: true,
username: ‘Nodejs’
}
socket.userid 5d674e9cb954b8523497fcc6
socket.id t_a4Y5bPd7fAVGp4AAAA
listOfusers joinRoom getJoinRoomPeople 60{“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“t_a4Y5bPd7fAVGp4AAAA”,“userid”:“5d674e9cb954b8523497fcc6”},“connectedWith”:{},“isPublic”:false,“extra”:{},“inCall”:false,“maxParticipantsAllowed”:100}}
listOfUsersJoinedRoom_ {“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“t_a4Y5bPd7fAVGp4AAAA”,“userid”:“5d674e9cb954b8523497fcc6”},“extra”:{“audio”:true,“video”:true}}}
create new room. roomId= a
remoteSockets VRO1bukvELR5MDv0AAAA,wzXfRM32GkQcg7B5AAAA
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“VRO1bukvELR5MDv0AAAA”,“remoteId”:“t_a4Y5bPd7fAVGp4AAAA”}
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“wzXfRM32GkQcg7B5AAAA”,“remoteId”:“t_a4Y5bPd7fAVGp4AAAA”}
{
id: ‘a2164e3e-e9d9-44da-81ab-836b235b2a5f’,
iceParameters: {
iceLite: true,
password: ‘aoiwr0pmxtd8ytwyr5f10xuz66utj6hz’,
usernameFragment: ‘9r97qfc1c8ov5gf9’
},
iceCandidates: [
{
foundation: ‘udpcandidate’,
ip: ‘127.0.0.1’,
port: 53463,
priority: 1076558079,
protocol: ‘udp’,
type: ‘host’
},
{
foundation: ‘tcpcandidate’,
ip: ‘127.0.0.1’,
port: 27449,
priority: 1076302079,
protocol: ‘tcp’,
tcpType: ‘passive’,
type: ‘host’
}
],
dtlsParameters: {
fingerprints: [ [Object], [Object], [Object], [Object], [Object] ],
role: ‘auto’
},
iceServers: [
{ urls: ‘stun:54.86.122.151:3478’ },
{
urls: ‘turn:54.86.122.151:3479?transport=tcp’,
username: ‘raheem’,
credential: ‘zapoj’
}
]
} consumer tracks params
room [object Object]
room [object Object]
remoteSocketIds VRO1bukvELR5MDv0AAAA,wzXfRM32GkQcg7B5AAAA
getCurrentProducers meetingId a
id VRO1bukvELR5MDv0AAAA
id wzXfRM32GkQcg7B5AAAA
id t_a4Y5bPd7fAVGp4AAAA
users result [“VRO1bukvELR5MDv0AAAA”,“wzXfRM32GkQcg7B5AAAA”]
id VRO1bukvELR5MDv0AAAA
id wzXfRM32GkQcg7B5AAAA
users result [“VRO1bukvELR5MDv0AAAA”,“wzXfRM32GkQcg7B5AAAA”]
– remoteVideoIds: [ ‘VRO1bukvELR5MDv0AAAA’, ‘wzXfRM32GkQcg7B5AAAA’ ]
– remoteAudioIds: [ ‘VRO1bukvELR5MDv0AAAA’, ‘wzXfRM32GkQcg7B5AAAA’ ]
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“t_a4Y5bPd7fAVGp4AAAA”,“remoteId”:“VRO1bukvELR5MDv0AAAA”,“kind”:“video”}
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“t_a4Y5bPd7fAVGp4AAAA”,“remoteId”:“wzXfRM32GkQcg7B5AAAA”,“kind”:“video”}
room [object Object]
remoteSockets VRO1bukvELR5MDv0AAAA,wzXfRM32GkQcg7B5AAAA
room [object Object]
room [object Object]
room [object Object]
room [object Object]
room [object Object]
remote pipe address for remote id VRO1bukvELR5MDv0AAAA is { ip: ‘192.168.0.29’, port: 51204, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:51204,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“ZHhkd3k5NGVybDd4ODV1anU2MjluMjliNGk0cXh5”}}
remote pipe address for remote id wzXfRM32GkQcg7B5AAAA is { ip: ‘192.168.0.29’, port: 58139, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:58139,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“a2xlZHRwa2F4MHlmNXJwYzU2M3F5bTFqaWxmZ2k0”}}
remote pipe address for remote id t_a4Y5bPd7fAVGp4AAAA is { ip: ‘192.168.0.29’, port: 25184, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:25184,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“Z2FvcXBpbmdibnZtazdxczVqZHZhN2d4OGM4ajlj”}}
remote pipe address for remote id t_a4Y5bPd7fAVGp4AAAA is { ip: ‘192.168.0.29’, port: 16503, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:16503,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“aDY0Mnc3Y3QycGRka2ExMGVmeGYxNHR5cjI2eTlq”}}
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
ensureAuthorized called
ensureAuthorized called
mediasoup.js file called

Room joinind memeber {
orgId: ‘o20190828092008798’,
meetingId: ‘a’,
userid: ‘5d674e9cb954b8523497fcc6’,
audio: true,
video: true,
username: ‘Nodejs’
}
socket.userid 5d674e9cb954b8523497fcc6
socket.id 3qGj__K8hBVdGAWvAAAB
listOfusers joinRoom getJoinRoomPeople 60{“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“3qGj__K8hBVdGAWvAAAB”,“userid”:“5d674e9cb954b8523497fcc6”},“connectedWith”:{},“isPublic”:false,“extra”:{},“inCall”:false,“maxParticipantsAllowed”:100}}
listOfUsersJoinedRoom_ {“5d674e9cb954b8523497fcc6”:{“socket”:{“id”:“3qGj__K8hBVdGAWvAAAB”,“userid”:“5d674e9cb954b8523497fcc6”},“extra”:{“audio”:true,“video”:true}}}
remoteSockets VRO1bukvELR5MDv0AAAA,wzXfRM32GkQcg7B5AAAA,t_a4Y5bPd7fAVGp4AAAA
{
id: ‘0c15887b-3f59-488b-b8f5-2537b1d49f20’,
iceParameters: {
iceLite: true,
password: ‘2f4337y4b249nhnyvsp8ggjlkn1mkms7’,
usernameFragment: ‘xm7em6trmxnsu42x’
},
iceCandidates: [
{
foundation: ‘udpcandidate’,
ip: ‘127.0.0.1’,
port: 27166,
priority: 1076558079,
protocol: ‘udp’,
type: ‘host’
},
{
foundation: ‘tcpcandidate’,
ip: ‘127.0.0.1’,
port: 43221,
priority: 1076302079,
protocol: ‘tcp’,
tcpType: ‘passive’,
type: ‘host’
}
],
dtlsParameters: {
fingerprints: [ [Object], [Object], [Object], [Object], [Object] ],
role: ‘auto’
},
iceServers: [
{ urls: ‘stun:54.86.122.151:3478’ },
{
urls: ‘turn:54.86.122.151:3479?transport=tcp’,
username: ‘raheem’,
credential: ‘zapoj’
}
]
} consumer tracks params
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“wzXfRM32GkQcg7B5AAAA”,“remoteId”:“3qGj__K8hBVdGAWvAAAB”}
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“VRO1bukvELR5MDv0AAAA”,“remoteId”:“3qGj__K8hBVdGAWvAAAB”}
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“t_a4Y5bPd7fAVGp4AAAA”,“remoteId”:“3qGj__K8hBVdGAWvAAAB”}
room [object Object]
room [object Object]
room [object Object]
remoteSocketIds VRO1bukvELR5MDv0AAAA,wzXfRM32GkQcg7B5AAAA,t_a4Y5bPd7fAVGp4AAAA
getCurrentProducers meetingId a
id VRO1bukvELR5MDv0AAAA
id wzXfRM32GkQcg7B5AAAA
id t_a4Y5bPd7fAVGp4AAAA
id 3qGj__K8hBVdGAWvAAAB
users result [“VRO1bukvELR5MDv0AAAA”,“wzXfRM32GkQcg7B5AAAA”,“t_a4Y5bPd7fAVGp4AAAA”]
id VRO1bukvELR5MDv0AAAA
id wzXfRM32GkQcg7B5AAAA
id t_a4Y5bPd7fAVGp4AAAA
users result [“VRO1bukvELR5MDv0AAAA”,“wzXfRM32GkQcg7B5AAAA”,“t_a4Y5bPd7fAVGp4AAAA”]
– remoteVideoIds: [
‘VRO1bukvELR5MDv0AAAA’,
‘wzXfRM32GkQcg7B5AAAA’,
‘t_a4Y5bPd7fAVGp4AAAA’
]
– remoteAudioIds: [
‘VRO1bukvELR5MDv0AAAA’,
‘wzXfRM32GkQcg7B5AAAA’,
‘t_a4Y5bPd7fAVGp4AAAA’
]

1st user → VRO1bukvELR5MDv0AAAA
2nd user → wzXfRM32GkQcg7B5AAAA
3rd user → t_a4Y5bPd7fAVGp4AAAA
4th user → 3qGj__K8hBVdGAWvAAAB

createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“3qGj__K8hBVdGAWvAAAB”,“remoteId”:“VRO1bukvELR5MDv0AAAA”,“kind”:“video”}
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“3qGj__K8hBVdGAWvAAAB”,“remoteId”:“wzXfRM32GkQcg7B5AAAA”,“kind”:“video”}
createPipeTransport request data {“orgId”:“o20190828092008798”,“meetingId”:“a”,“clientId”:“3qGj__K8hBVdGAWvAAAB”,“remoteId”:“t_a4Y5bPd7fAVGp4AAAA”,“kind”:“video”}
room [object Object]
remoteSockets VRO1bukvELR5MDv0AAAA,wzXfRM32GkQcg7B5AAAA,t_a4Y5bPd7fAVGp4AAAA
room [object Object]
room [object Object]
room [object Object]
room [object Object]
room [object Object]
room [object Object]
room [object Object]
room [object Object]
remote pipe address for remote id VRO1bukvELR5MDv0AAAA is { ip: ‘192.168.0.29’, port: 31674, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:31674,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“Z3Q2cm15YWhudWw3Y3FjdWR1NzQzM255d2ptZ3hu”}}
remote pipe address for remote id wzXfRM32GkQcg7B5AAAA is { ip: ‘192.168.0.29’, port: 45849, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:45849,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“M2t5c2k5eTM0ZnZiMjh2ZWdkdjl6bXY0cHdrc2po”}}
remote pipe address for remote id t_a4Y5bPd7fAVGp4AAAA is { ip: ‘192.168.0.29’, port: 21443, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:21443,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“MGhpdHRod2E1c2l6ZGpkMDlhYnVheTFqMnBqMG00”}}
remote pipe address for remote id 3qGj__K8hBVdGAWvAAAB is { ip: ‘192.168.0.29’, port: 21245, srtpParameters: [Object] }
remote pipe address for remote id 3qGj__K8hBVdGAWvAAAB is { ip: ‘192.168.0.29’, port: 34221, srtpParameters: [Object] }
remote pipe address for remote id 3qGj__K8hBVdGAWvAAAB is { ip: ‘192.168.0.29’, port: 10453, srtpParameters: [Object] }
connectObj {“ip”:“192.168.0.29”,“port”:21245,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“N3doNjlwMXd5OTQ2bjE3bGdkNjd5bWlkbjJsdmsy”}}
connectObj {“ip”:“192.168.0.29”,“port”:34221,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“YXBxZndyM3plZ3I2NHRyZDcydmM1c29nZnQ0ZmR1”}}
connectObj {“ip”:“192.168.0.29”,“port”:10453,“srtpParameters”:{“cryptoSuite”:“AES_CM_128_HMAC_SHA1_80”,“keyBase64”:“ZXpzcjd2MndycTBsYnRyeXI0ZGtrYzcxNG5waTR5”}}
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]
localPipeTransport [object Object]

I appreciate your help in that .

Replied above, log does nothing for us it’s a wall of text (no errors).

1 Like

These are browser console messages :
socket.io message: {type: ‘welcome’, id: ‘t5afL1vX3PuYpcw5AAAA’}
mediasoup:112 connected to server. clientId=t5afL1vX3PuYpcw5AAAA
mediasoup:391 socket.io connected(). prepare room=z
mediasoup:398 getRouterRtpCapabilities: {codecs: Array(3), headerExtensions: Array(13)}
mediasoup:404 — createProducerTransport –
mediasoup:406 transport params: {id: ‘be75964a-5e5d-4149-85a9-8a2e74e3c2b9’, iceParameters: {
}, iceCandidates: Array(2), dtlsParameters: {
}, iceServers: Array(2)}
mediasoup:408 createSendTransport: Transport {_events: {
}, _eventsCount: 0, _maxListeners: Infinity, _logger: Logger, _id: ‘be75964a-5e5d-4149-85a9-8a2e74e3c2b9’, 
}
mediasoup:412 --trasnport connect
mediasoup:440 publishing

mediasoup:419 --trasnport produce
mediasoup:444 published
mediasoup:430 --produce requested, then subscribe —
mediasoup:494 — createConsumerTransport –
mediasoup:497 transport params: {id: ‘003551db-c5a0-4e8f-8262-227a2132043a’, iceParameters: {
}, iceCandidates: Array(2), dtlsParameters: {
}, iceServers: Array(2)}
mediasoup:500 createConsumerTransport: Transport {_events: {
}, _eventsCount: 0, _maxListeners: Infinity, _logger: Logger, _id: ‘003551db-c5a0-4e8f-8262-227a2132043a’, 
}
mediasoup:558 – try consuleAll() –
mediasoup:538 – try consuleAll() –
mediasoup:565 remoteInfo.remotesocketIds: []
mediasoup:545 remoteInfo.remoteVideoIds: []
mediasoup:546 remoteInfo.remoteAudioIds: []
mediasoup:419 --trasnport produce
mediasoup:430 --produce requested, then subscribe —
mediasoup:494 — createConsumerTransport –
mediasoup:121 socket.io newProducer: {remoteId: ‘t5afL1vX3PuYpcw5AAAA’, producerId: ‘38e1d1d0-e7ad-4fb8-8616-5ce5f0b772aa’, kind: ‘video’, clientId: ‘YHAts6DBqNV43XyWAAAA’}
mediasoup:130 --try consumeAdd remoteId=t5afL1vX3PuYpcw5AAAA, prdId=38e1d1d0-e7ad-4fb8-8616-5ce5f0b772aa, kind=video
mediasoup:121 socket.io newProducer: {remoteId: ‘t5afL1vX3PuYpcw5AAAA’, producerId: ‘377de67b-9a8f-4fec-92b9-8977b8f099f7’, kind: ‘audio’, clientId: ‘YHAts6DBqNV43XyWAAAA’}
mediasoup:147 --try consumeAdd remoteId=t5afL1vX3PuYpcw5AAAA, prdId=377de67b-9a8f-4fec-92b9-8977b8f099f7, kind=audio
mediasoup:670 ----- consumeAll() -----
mediasoup:680 ----- connectTransports() -----YHAts6DBqNV43XyWAAAA
mediasoup:121 socket.io newProducer: {remoteId: ‘t5afL1vX3PuYpcw5AAAA’, producerId: ‘832ce9c9-fa3b-4399-ba10-159cfc2c5370’, kind: ‘video’, clientId: ‘UGa7AeSB_sXVpQV5AAAA’}
mediasoup:130 --try consumeAdd remoteId=t5afL1vX3PuYpcw5AAAA, prdId=832ce9c9-fa3b-4399-ba10-159cfc2c5370, kind=video
mediasoup:121 socket.io newProducer: {remoteId: ‘t5afL1vX3PuYpcw5AAAA’, producerId: ‘a43534ed-b335-439d-b8c4-2e6e1e23c366’, kind: ‘audio’, clientId: ‘UGa7AeSB_sXVpQV5AAAA’}
mediasoup:147 --try consumeAdd remoteId=t5afL1vX3PuYpcw5AAAA, prdId=a43534ed-b335-439d-b8c4-2e6e1e23c366, kind=audio
mediasoup:680 ----- connectTransports() -----UGa7AeSB_sXVpQV5AAAA
mediasoup:723 --start of consumeAdd – kind=video
mediasoup:731 response of consumeAdd {“producerId”:“195e6715-b851-4bbe-b50d-26653a815635”,“id”:“feed9c9a-60b7-4799-af97-07c77e08c396”,“kind”:“video”,“rtpParameters”:{“codecs”:[{“mimeType”:“video/VP8”,“payloadType”:101,“clockRate”:90000,“parameters”:{},“rtcpFeedback”:[{“type”:“transport-cc”,“parameter”:""},{“type”:“ccm”,“parameter”:“fir”},{“type”:“nack”,“parameter”:""},{“type”:“nack”,“parameter”:“pli”}]},{“mimeType”:“video/rtx”,“payloadType”:102,“clockRate”:90000,“parameters”:{“apt”:101},“rtcpFeedback”:[]}],“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”:“http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01”,“id”:5,“encrypt”:false,“parameters”:{}},{“uri”:“urn:3gpp:video-orientation”,“id”:11,“encrypt”:false,“parameters”:{}},{“uri”:“urn:ietf:params:rtp-hdrext:toffset”,“id”:12,“encrypt”:false,“parameters”:{}}],“encodings”:[{“ssrc”:982404836,“rtx”:{“ssrc”:982404837}}],“rtcp”:{“cname”:“hpMb6Rxib+iOTkuz”,“reducedSize”:true,“mux”:true},“mid”:“0”},“type”:“simple”,"producerPaused”:false}
mediasoup:504 --consumer trasnport connect
mediasoup:752 consumer track {"_events":{},"_eventsCount":2,"_maxListeners":null,"_logger":{},"_id":“feed9c9a-60b7-4799-af97-07c77e08c396”,"_localId":“0”,"_producerId":“195e6715-b851-4bbe-b50d-26653a815635”,"_closed":false,"_track":{},"_rtpParameters":{“codecs”:[{“mimeType”:“video/VP8”,“payloadType”:101,“clockRate”:90000,“parameters”:{},“rtcpFeedback”:[{“type”:“transport-cc”,“parameter”:""},{“type”:“ccm”,“parameter”:“fir”},{“type”:“nack”,“parameter”:""},{“type”:“nack”,“parameter”:“pli”}]},{“mimeType”:“video/rtx”,“payloadType”:102,“clockRate”:90000,“parameters”:{“apt”:101},“rtcpFeedback”:[]}],“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”:“http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01”,“id”:5,“encrypt”:false,“parameters”:{}},{“uri”:“urn:3gpp:video-orientation”,“id”:11,“encrypt”:false,“parameters”:{}},{“uri”:“urn:ietf:params:rtp-hdrext:toffset”,“id”:12,“encrypt”:false,“parameters”:{}}],“encodings”:[{“ssrc”:982404836,“rtx”:{“ssrc”:982404837}}],“rtcp”:{“cname”:“hpMb6Rxib+iOTkuz”,“reducedSize”:true,“mux”:true},“mid”:“0”},"_paused":false,"_appData”:{}}
mediasoup:806 videoConsumers count=1
mediasoup:775 --end of consumeAdd
mediasoup:779 --try resumeAdd –
mediasoup:513 subscribing

mediasoup:517 subscribed
mediasoup:782 resumeAdd OK
mediasoup:723 --start of consumeAdd – kind=audio
mediasoup:731 response of consumeAdd {“producerId”:“297f353c-bce3-447f-9418-3dba2aefa284”,“id”:“3420983b-b059-444a-a821-0547a562693a”,“kind”:“audio”,“rtpParameters”:{“codecs”:[{“mimeType”:“audio/opus”,“payloadType”:100,“clockRate”:48000,“channels”:2,“parameters”:{“minptime”:10,“useinbandfec”:1},“rtcpFeedback”:[]}],“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”:{}}],“encodings”:[{“ssrc”:368940374}],“rtcp”:{“cname”:“hpMb6Rxib+iOTkuz”,“reducedSize”:true,“mux”:true},“mid”:“1”},“type”:“simple”,"producerPaused”:false}
mediasoup:752 consumer track {"_events":{},"_eventsCount":2,"_maxListeners":null,"_logger":{},"_id":“3420983b-b059-444a-a821-0547a562693a”,"_localId":“1”,"_producerId":“297f353c-bce3-447f-9418-3dba2aefa284”,"_closed":false,"_track":{},"_rtpParameters":{“codecs”:[{“mimeType”:“audio/opus”,“payloadType”:100,“clockRate”:48000,“channels”:2,“parameters”:{“minptime”:10,“useinbandfec”:1},“rtcpFeedback”:[]}],“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”:{}}],“encodings”:[{“ssrc”:368940374}],“rtcp”:{“cname”:“hpMb6Rxib+iOTkuz”,“reducedSize”:true,“mux”:true},“mid”:“1”},"_paused":false,"_appData”:{}}
mediasoup:810 audioConsumers count=1
mediasoup:775 --end of consumeAdd
mediasoup:723 --start of consumeAdd – kind=video
mediasoup:723 --start of consumeAdd – kind=audio
mediasoup:731 response of consumeAdd {“producerId”:“fa332e17-4781-4027-bcd1-e37cba7606c7”,“id”:“8c39e9f0-1db4-4c3b-8a18-9941a933e861”,“kind”:“video”,“rtpParameters”:{“codecs”:[{“mimeType”:“video/VP8”,“payloadType”:101,“clockRate”:90000,“parameters”:{},“rtcpFeedback”:[{“type”:“transport-cc”,“parameter”:""},{“type”:“ccm”,“parameter”:“fir”},{“type”:“nack”,“parameter”:""},{“type”:“nack”,“parameter”:“pli”}]},{“mimeType”:“video/rtx”,“payloadType”:102,“clockRate”:90000,“parameters”:{“apt”:101},“rtcpFeedback”:[]}],“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”:“http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01”,“id”:5,“encrypt”:false,“parameters”:{}},{“uri”:“urn:3gpp:video-orientation”,“id”:11,“encrypt”:false,“parameters”:{}},{“uri”:“urn:ietf:params:rtp-hdrext:toffset”,“id”:12,“encrypt”:false,“parameters”:{}}],“encodings”:[{“ssrc”:491362339,“rtx”:{“ssrc”:491362340}}],“rtcp”:{“cname”:“ZC76CZ4dJf7F6CeW”,“reducedSize”:true,“mux”:true},“mid”:“2”},“type”:“simple”,"producerPaused”:false}
mediasoup:731 response of consumeAdd {“producerId”:“0acd5d63-baf5-4583-8deb-dd4ef2a57901”,“id”:“3c2a7415-a92e-4899-92bc-403aaf8b7b05”,“kind”:“audio”,“rtpParameters”:{“codecs”:[{“mimeType”:“audio/opus”,“payloadType”:100,“clockRate”:48000,“channels”:2,“parameters”:{“minptime”:10,“useinbandfec”:1},“rtcpFeedback”:[]}],“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”:{}}],“encodings”:[{“ssrc”:271598341}],“rtcp”:{“cname”:“ZC76CZ4dJf7F6CeW”,“reducedSize”:true,“mux”:true},“mid”:“3”},“type”:“simple”,"producerPaused”:false}
mediasoup:752 consumer track {"_events":{},"_eventsCount":2,"_maxListeners":null,"_logger":{},"_id":“8c39e9f0-1db4-4c3b-8a18-9941a933e861”,"_localId":“2”,"_producerId":“fa332e17-4781-4027-bcd1-e37cba7606c7”,"_closed":false,"_track":{},"_rtpParameters":{“codecs”:[{“mimeType”:“video/VP8”,“payloadType”:101,“clockRate”:90000,“parameters”:{},“rtcpFeedback”:[{“type”:“transport-cc”,“parameter”:""},{“type”:“ccm”,“parameter”:“fir”},{“type”:“nack”,“parameter”:""},{“type”:“nack”,“parameter”:“pli”}]},{“mimeType”:“video/rtx”,“payloadType”:102,“clockRate”:90000,“parameters”:{“apt”:101},“rtcpFeedback”:[]}],“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”:“http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01”,“id”:5,“encrypt”:false,“parameters”:{}},{“uri”:“urn:3gpp:video-orientation”,“id”:11,“encrypt”:false,“parameters”:{}},{“uri”:“urn:ietf:params:rtp-hdrext:toffset”,“id”:12,“encrypt”:false,“parameters”:{}}],“encodings”:[{“ssrc”:491362339,“rtx”:{“ssrc”:491362340}}],“rtcp”:{“cname”:“ZC76CZ4dJf7F6CeW”,“reducedSize”:true,“mux”:true},“mid”:“2”},"_paused":false,"_appData”:{}}
mediasoup:806 videoConsumers count=2
mediasoup:775 --end of consumeAdd
mediasoup:779 --try resumeAdd –
mediasoup:782 resumeAdd OK
mediasoup:752 consumer track {"_events":{},"_eventsCount":2,"_maxListeners":null,"_logger":{},"_id":“3c2a7415-a92e-4899-92bc-403aaf8b7b05”,"_localId":“3”,"_producerId":“0acd5d63-baf5-4583-8deb-dd4ef2a57901”,"_closed":false,"_track":{},"_rtpParameters":{“codecs”:[{“mimeType”:“audio/opus”,“payloadType”:100,“clockRate”:48000,“channels”:2,“parameters”:{“minptime”:10,“useinbandfec”:1},“rtcpFeedback”:[]}],“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”:{}}],“encodings”:[{“ssrc”:271598341}],“rtcp”:{“cname”:“ZC76CZ4dJf7F6CeW”,“reducedSize”:true,“mux”:true},“mid”:“3”},"_paused":false,"_appData”:{}}
mediasoup:810 audioConsumers count=2
mediasoup:775 --end of consumeAdd

I am sending these , may you identify anything from logs .
Otherwise ignore them .

No logs needed, your codes logic is failing; try other examples and read documentation more. It’s probably best cause you’re missing steps somewhere or doing something completely wrong.

I can only advise of potential missteps but that’s really it. To explain, common enough if code runs out of order in which it needs execution or you’re not doing certain steps it’s going to fail. You’ll want to debug and step-by-step it to determine the fault it’s much work for us to sort this but lend an idea unless obvious and this isn’t clear.

Good luck.

1 Like

okay , thanks .

@BronzedBroth , I think the issue is in this function .

socket.on(‘newProducer’,async function (message) {
console.log(‘socket.io newProducer:’, message);
const remoteId = message.remoteId;
const prdId = message.producerId;
const kind = message.kind;
const clientId = message.clientId
const remoteInfo = [clientId]
let meetingId = getmeetingId();
// connectTransports(socket.id, remoteInfo)
if (kind === ‘video’) {
console.log(’–try consumeAdd remoteId=’ + remoteId + ‘, prdId=’ + prdId + ‘, kind=’ + kind);
const data = await sendRequest(‘createPipeTransport’, {orgId : orgId, meetingId : meetingId,clientId: remoteId, remoteId: clientId})
.catch(err => {
console.error(‘createPipeTransport ERROR:’, err);
});

                const consumePipeTransport = await sendRequest('consumePipeTransport', {orgId : orgId, meetingId : meetingId,clientId: remoteId, remoteId: clientId, kind : 'video'})
                .catch(err => {
                    console.error('consumePipeTransport ERROR:', err);
                });
                setTimeout(function(){
                 connectTransports(remoteId, remoteInfo) 
                },2000)           

            }
            else if (kind === 'audio') {
                //console.warn('-- audio NOT SUPPORTED YET. skip remoteId=' + remoteId + ', prdId=' + prdId + ', kind=' + kind);
                console.log('--try consumeAdd remoteId=' + remoteId + ', prdId=' + prdId + ', kind=' + kind);
                const consumePipeTransport = await sendRequest('consumePipeTransport', {orgId : orgId, meetingId : meetingId,clientId: remoteId, remoteId: clientId, kind : 'audio'})
                .catch(err => {
                    console.error('consumePipeTransport ERROR:', err);
                });
                // connectTransports(remoteId, remoteInfo) 
            }

// connectTransports(remoteId, remoteInfo)

                setTimeout(function(){
                    consumeAdd(consumerTransport, clientId, prdId, kind);
                },5000)
        });

Can you check that ??