With Chrome 136 shipping H.265/HEVC support for WebRTC (April 2025), I wanted to revisit the codec’s removal in 3.16.6 and ask whether there are any plans to reintroduce it, or whether it may be possible to re-enable it manually despite the weak support.
The hardware gap between H265 and AV1 is still pretty large. According to the latest Steam Hardware Survey, around 80% of consumer GPUs support H265 encoding, while AV1 encoding sits closer to a 35%, with decoding at ~half.
In my specific situation I run mediasoup as an SFU in an app where many users have it in a separate window/monitor while doing other GPU/CPU-intensive work simultaneously. This means that AV1 decode on the CPU is not a viable alternative, which has led me to pin to 3.16.5 for the past several months to avoid downgrading the majority of rooms to H264.
Would love to hear if H265 is on the roadmap, or any possible approaches for updating while keeping codec support. Happy to help in any way possible.
We removed H265 because it was not properly implemented at all. From the PR removing it:
Remove H265 video codec because we cannot even detect a keyframe on it. It’s never been maintained.
Remove frame-marking RTP extension because it is deprecated and replaced by dependency-descriptor in libwebrtc, meaning that nobody implements frame-marking anymore.
Once Chrome starts using Dependency-Descriptor header extension for H265 we can reintroduce it. Until then it doesn’t make sense to support a codec in which we can not event detect keyframes.
If you wanna help, please investigate current support of H265 in libwebrtc and if it’s guaranteed that it properly uses Dependency Descriptor extension to indicate key frames and spatial/temporal layers, then please open a Feature Request in mediasoup GitHub with the references.
While I can’t fully confirm this as I don’t have the necessary knowledge to review the source code, Intel’s implementation write-up specifically mentions doing work on this front and implementing DD for H265.
We also added support for the dependency descriptor RTP extension for H.265/HEVC, originally designed for AV1. This extension conveys the reference structure of frames at the session layer to media servers and receiving clients, enabling precise selective forwarding of video frames based on whether the current frame’s dependencies have already been forwarded.
We are doing tons of things in mediasoup (new SCTP stack, tons of optimizations, etc etc etc). We know that there are many companies using mediasoup in comercial products but for whatever reason none of them contributes economically to the project, because we are terribly busy at work and still spend lot of time on mediasoup, but users/companies still request more and more huge features and improvements.