Media track received in consumer but unable to play

  • I have a single WebRTC Transport object in my server, and as per the docs it can handle both consuming and producing on server side.
  • On my client side I have a producer transport, and a consumer transport.…both of them generate dtls params, {role, dtlsFingerprints} “on connect” which equates to role:client, dtlsFingerprints: algo:… , value:… ;
  • Both these dtls params are different.
  • In my server code i have a transport.connect method that takes in these dtls params after being signalled from client side. (currently i am not signalling the client consumer dtls params to the server transport.connect() .
  • How can the same transport object be configured to have multiple [sender and reciever] dtls params?
    [problem: i am receiving a media track in my client consumer but it is not playing… i guess it is due to the encryption thing ] need some insights…

You have to create 2 transport in server side, one for each client side transport.

I did. Still no luck.
i have created two transports on the server side and on the client side. And on connect is done in client side for both transport and consumer in which i am signaling dtlsparams to server.
in transport.produce where i need to send the audio track and codec and encodings (from the client [browser] ) , I am passing only track… I have no idea what codec or encoding to pass here.
In the mediasoup server while creating the router I am passing the following as mediaCodecs :
[
{
kind: ‘audio’,
mimeType: ‘audio/opus’,
clockRate: 48000,
channels: 2,
},
{
kind: ‘video’,
mimeType: ‘video/VP8’,
clockRate: 90000,
parameters: {
‘x-google-start-bitrate’: 1000,
},
},
]

Verify that the ICE and DTLS states of the transports are connected. There is API for that in server and client side.

1 Like

your intuition was right… the producer transport does not get connected [on client side]. it fails.
here is my handlers of on produce and on connect… what could be the possible reason for this

I wonder what does this.voiceComService.getProducerID().subscribe(...) mean?
Judging by its name, getProducerID() looks like a function returning none other than producer’s id (a string).

Thanks a lot. that worked… for me… i checked if the connection is getting connected or not with :

Then i changed listenIps to listenInfos and it worked…it got connected …
And the voice tranfer was successful …great it worked !!

yes… it gets the producer id from the server…