Here is the codec that the remote device supports according to it’s rtpParameters.
mimeType: 'video/H264',
kind: 'video',
preferredPayloadType: 107,
clockRate: 90000,
parameters: {
'level-asymmetry-allowed': 1,
'packetization-mode': 1,
'profile-level-id': '42e01f'
},
rtcpFeedback: [
{ type: 'goog-remb', parameter: '' },
{ type: 'transport-cc', parameter: '' },
{ type: 'ccm', parameter: 'fir' },
{ type: 'nack', parameter: '' },
{ type: 'nack', parameter: 'pli' }
]
These are the 2 h264 codec options I get when I log the router rtpCapabilities.
{
kind: 'video',
mimeType: 'video/H264',
clockRate: 90000,
parameters: {
'level-asymmetry-allowed': 1,
'packetization-mode': 1,
'profile-level-id': '4d0032',
'x-google-start-bitrate': 1000
},
rtcpFeedback: [ [Object], [Object], [Object], [Object], [Object] ],
preferredPayloadType: 105
},
{
kind: 'video',
mimeType: 'video/H264',
clockRate: 90000,
parameters: {
'level-asymmetry-allowed': 1,
'packetization-mode': 1,
'profile-level-id': '42e01f',
'x-google-start-bitrate': 1000
},
rtcpFeedback: [ [Object], [Object], [Object], [Object], [Object] ],
preferredPayloadType: 107
},
The profile id “42e01f” is available in them both.
When I am trying to produce from my browser for consumption by the remote device while forcing the transport.produce to use this h264 profile of ‘42e01f’, It used to fail in the router.cancosume(producerId,remoteDeviceRTPCapabilities). When I dig deep, I realised that both chrome/edge are changing this profile-id from “42e01f” to “4d001f” in the rtpParameters while listening to the transport.on(“produce”). But this change doesn’t happen in case of firefox. For firefox, it successfully creates the video consumer for the remote device. But some other error seems to come in the client side.
rtp_transport_cc(196):Failed to demux RTP packet:PT=127 SSRC=1234 MID:probator
rtp_transport_cc(196):Failed to demux RTP packet:PT=127 SSRC=1234 MID:probator
internal_decoder_factory.cc(59) : Trying to create decoder for unsupported format.
I am able to consume the video sent by the remote device using the same parameters with h264 profile id “42e01f” but While sending it is not working. I am sure I am doing something wrong somewhere.