Why you need an HEVC browser fallback
You serve HEVC because it saves bandwidth — 30-50% smaller than H.264 at the same quality. But some browsers still can't play it. Those users get a black screen, a fallback to lower quality, or nothing.
The usual fix is double-encoding: serve HEVC for browsers that support it, H.264 for the rest. That means maintaining two encoding pipelines, two sets of manifests, and twice the storage on your CDN.
hevc.js takes a different approach. Keep your single HEVC pipeline. For Chrome and Edge without native HEVC, the transcoding happens client-side, in a Web Worker, invisible to your player and your infrastructure.
hevc.js is a browser compatibility solution for H.265/HEVC. Instead of maintaining a separate H.264 encoding pipeline as a fallback, the decoder handles HEVC to H.264 transcoding client-side, directly in the browser via WebAssembly.
The decoder is a direct implementation of the ITU-T H.265 spec — 716 pages of it, transcribed to C++17 and compiled to WebAssembly. Every frame is validated pixel-perfect against ffmpeg.