In this.protooPeer.on('request', async (request, accept, reject) => {...
I’m handling the newConsumer
value for request.method
in a switch statement using the below code.
case 'newConsumer': {
const {
peerId,
producerId,
id,
kind,
rtpParameters,
type,
appData,
producerPaused,
} = request.data
try {
const consumer = await this.recvTransport?.consume({
id,
producerId,
kind,
rtpParameters,
appData: { ...appData, peerId },
})!
// Store in the map.
this.consumers.set(consumer.id, consumer)
consumer.on('transportclose', () => {
this.consumers.delete(consumer.id)
})
const consumerRtpParams = consumer.rtpParameters
const consumerScalabilityMode = consumerRtpParams.encodings![0]
?.scalabilityMode!
const {
spatialLayers,
temporalLayers,
} = mediasoupClient.parseScalabilityMode(consumerScalabilityMode)
// Gathering data here regarding the consumer, layers, etc...see JSON below
Here’s the data I gather with the consumer.track: MediaStreamTrack
property which I need to bind to the HTML element and enable the video/audio stream.
{
"id": "4fb46745-7cff-4f3e-a6fa-b0ff626e62f3",
"peerId": "mitch-12345",
"type": "simulcast",
"locallyPaused": false,
"remotelyPaused": false,
"rtpParameters": {
"codecs": [
{
"mimeType": "video/H264",
"payloadType": 105,
"clockRate": 90000,
"parameters": {
"level-asymmetry-allowed": 1,
"packetization-mode": 1,
"profile-level-id": "4d0032"
},
"rtcpFeedback": [
{
"type": "transport-cc",
"parameter": ""
},
{
"type": "ccm",
"parameter": "fir"
},
{
"type": "nack",
"parameter": ""
},
{
"type": "nack",
"parameter": "pli"
}
]
},
{
"mimeType": "video/rtx",
"payloadType": 106,
"clockRate": 90000,
"parameters": {
"apt": 105
},
"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": "http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07",
"id": 6,
"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": 340544270,
"rtx": {
"ssrc": 130972761
},
"scalabilityMode": "S3T3",
"maxBitrate": 5000000,
"dtx": false
}
],
"rtcp": {
"cname": "u0ZvBggNCA3Sw0xS",
"reducedSize": true,
"mux": true
},
"mid": "1"
},
"spatialLayers": 3,
"temporalLayers": 3,
"preferredSpatialLayer": 2,
"preferredTemporalLayer": 2,
"priority": 1,
"codec": "H264",
"track": {
},
"consumerClosed": false,
"consumerPaused": false,
"consumerLocalId": "1"
}
I also receive the consumerScore notification
protooPeer notification consumerScore 4fb46745-7cff-4f3e-a6fa-b0ff626e62f3 - {"producerScore":0,"producerScores":[0,0,0],"score":10}
Any ideas on how can I debug this to grab the MediaStreamTrack?