Does your browser support WebRTC + H.265?
Today, the only ITU-T video codec supported by WebRTC on Chrome, Edge, Safari (macOS/iOS), Firefox, Opera, and other browsers is H.264, a 26 year old video codec designed when little video was sent over the web, and most video was 480p or smaller. Last month, Intel and Google completed a year long effort, releasing Chrome with H.265 support in WebRTC. However, it is still behind a feature flag.
Why does H.265 still matter in 2024?
Most all embedded systems-on-chip (SoCs) geared at video encoding only support the ITU-T series of video codecs, namely H.264 and H.265 — support for AV1/2 or VP8/9 is not common. Hence, to play real-time video from an embedded device, such as an IP camera, over the web in the browser, you're stuck with H.264 in WebRTC — software encoding VP8/9 or AV1/2 is generally not feasible on embedded CPUs, cloud transcoding is costly and adds latency, and non-WebRTC methods are not real-time (keep an eye on Media-over-QUIC though — WebCodecs does support H.265). To deliver 4K video from an IP camera over the Web, you generally need a modern codec, like H.265.
How to enable in Chrome? Safari?
Chrome/Edge: Run Chrome/Edge from the command line with the flag --enable-features=WebRtcAllowH265Receive
.
Safari: In Settings, under Feature Flags, enable 'WebRTC H265 codec'. As of Safari 18.0, supported and enabled in Stable (release notes).
Firefox: Doesn't support, won't support.