I am trying to set up a video producer and consumer with mediasoup using the H265 codec. H265 has been included in supportedRtpCapabilities.ts as of mediasoup v3.9.3, but as I was attempting to facilitate codec matching between the producer and consumer, I noticed that the file lists level-asymmetry-allowed
as a parameter setting for H265. According to RTP Payload Format for H.264 Video and RTP Payload Format for High Efficiency Video Coding (HEVC), level-asymmetry-allowed
is an H264 specific RTP parameter.
As far as I understand, supportedRtpCapabilities.ts serves somewhat as a reference list for RtpCodecCapability for the mediaCodecs in RouterOptions, after which RtpCodecCapability can further specify the parameters in the codec matching. I have tried to specify a different set of parameters for H265 in mediaCodecs, but I have had no success streaming video so far. My producers are created successfully and I am able to receive a producer score but no keyframes, with an UnsupportedError: Cannot consume this Producer
. My RTP parameters are specified as such:
{
kind: 'video',
mimeType: 'video/h265',
preferredPayloadType: 105,
clockRate: 90000,
parameters: {
'profile-id': 1
},
rtcpFeedback: [{ type: 'nack' }, { type: 'nack', parameter: 'pli' }, { type: 'ccm', parameter: 'fir' }, { type: 'goog-remb' }, { type: 'transport-cc' }]
},
I have tried including level-asymmetry-allowed
in my RTP parameters for H265, but it has no benefit. Is H265 fully supported in mediasoup and should level-asymmetry-allowed
be ignored? In which case, what RTP parameters of H265 streaming are supported by mediasoup?
I have verified that my producer and consumer are otherwise functional using H264 and VP9, but I was hoping to achieve a higher video quality and improved video compression using H265.
Please let me know if you have any feedback and thank you.