Skip to main content

WebCodecs Bugs

This page is a list of known WebCodecs issues in browsers that our community has filed. It serves as a tracker for overall progress and known issues.

IssueProductFiled byStatus
AAC AudioEncoder always treats the first 1024 audio samples as silenceSafariDavid (@dpayr)Open
AVC VideoEncoder on Windows and Linux produces invalid AVCC record in decoder descriptionFirefox@VanilagyOpen
AVC VideoEncoder shifts EncodedVideoChunk timestamps by their durationFirefox@VanilagyOpen
Software AVC VideoDecoder drops initial B-framesChrome@VanilagyFixed in 156.0.8064.0
Rendering on a high-refresh-rate (144+ Hz) monitor throttles VideoDecoder by 5-10xChrome@VanilagyOpen
VideoEncoder does not respect visibleRect of VideoFrame, crops incorrectlyChrome@VanilagyFixed in 153.0.8002.0
AudioData.copyTo with interleaved f32 handles frameOffset incorrectlyFirefox@JonnyBurgerOpen
H.264 packet with "Unspecified" NALU (24..31) trips up key frame validation, erroring VideoDecoderChrome@VanilagyFixed in 145.0.7624.0
H.264 VideoDecoder key frame detection fails for packets with an AUD not at the startChrome@VanilagyFixed in 151.0.7916.0
YUV VideoFrame draws onto a canvas are 5-10x slower when resizedChrome@VanilagyFixed in 145.0.7580.0
AAC AudioEncoder produces incorrect decoder config descriptionSafari@VanilagyFixed
ArrayBuffer-backed YUV VideoFrame with visibleRect is rendered incorrectly (chroma channels are offset)Safari@VanilagyFixed
AudioData.copyTo() crashes the tab with valid conversionSafari@JonnyBurgerFixed
WebM audio plays back garbled when BlockGroup instead of SimpleBlock is usedSafari@VanilagyFixed
AudioEncoder emits humorous AAC bitrate suggestions in error messageChrome@VanilagyFixed in 144.0.7527.0
VideoEncoder encodeQueueSize behaves unpredictably after calling encode()Chrome@VanilagyWon't fix
AudioEncoder queue size not accurately reflected by encodeQueueSizeChrome@VanilagyFixed in 145.0.7588.0
WebCodecs VideoDecoder Outputs Frames in Incorrect OrderSafariJozef ChúťkaFixed
HDR HEVC VideoFrame draws onto a canvas as fully transparent (regression)Chrome@VanilagyFixed in 148
VideoDecoder HEVC key frame detection is too strict; rejects packets that Chromium decodes just fineChrome@VanilagyFixed in 149.0.7820.0
VideoDecoder fails on interlaced content when routed to hardware decoderChrome@VanilagyFixed in 144.0.7514.0
VideoEncoder with VP8/VP9 fails with zero-duration VideoFrameChrome@VanilagyFixed in 142.0.7430.0
VideoDecoder key frame detection too strict, rejects non-IDR AVC key frames, causing decoder errorChrome@VanilagyOpen
VideoEncoder performance drastically degrades if the page needs to rerenderChrome@VanilagyOpen
AudioDecoder.isConfigSupported() returns false positiveChrome@JonnyBurgerFixed in 130.0.6711.0
AudioDecoder doesn't respect chunks with negative timestamps, starts AudioData timestamps at 0Chrome@VanilagyFixed in 156.0.8070.0
HEVC VideoEncoder on AMD hardware on Windows labels first emitted chunk as "delta"Chrome@VanilagyWon't fix
VideoPixelFormat I444AP12 is not recognizedChrome@VanilagyOpen
VideoFrame RGBX -> RGB format conversion via .copyTo() outputs garbled dataChrome@VanilagyFixed in 152.0.7941.0
VideoEncoder encoding error surfaces AFTER flush() resolves, gets completely swallowed by close()Chrome@VanilagyFixed in 152.0.7951.0
VideoDecoder ignores VideoDecoderConfig.colorSpace for H.264 on macOS VideoToolbox and outputs bt709Chrome@JonnyBurgerOpen
VideoEncoder with bitrateMode: 'quantizer' has a large initial delay before emitting a chunkChrome@VanilagyOpen

Chrome build numbers identify the first build containing the fix and may refer to Canary before it reaches Stable. Where only a Chrome milestone is confirmed, only the major version is listed.

See also​