Skip to content
Callaba

Video Codecs Compared: Compatibility, Quality, and Cost

On this page

A codec shortlist is a set of testable candidates. Compatibility, quality, latency, encode cost, decode cost, packaging, licensing, and fallback all have to fit the same delivery job.

Compare codec families here; tune H.264 elsewhere

This page helps choose among H.264, HEVC, VP9, and AV1. If H.264 is already the baseline and the work concerns profiles, levels, or a receiver fallback, move to the focused H.264 compatibility guide. Containers are separate from codecs; the codec and container guide explains that boundary.

Freeze the delivery job before creating samples

Record live or VOD use, target quality, resolution, cadence, delay budget, audience devices, browser versions, native applications, hardware encoders and decoders, packaging, storage, regions, accessibility, battery sensitivity, and fallback expectation. Choose representative source clips with faces, motion, texture, gradients, low light, animation, and screen text. Every codec candidate must receive the same source and viewing conditions.

H.264

Often considered for broad established receiver reach. Verify the required profile, level, container, hardware path, and actual device cohort rather than assuming the codec name is sufficient.

HEVC

Evaluate HEVC where its measured quality or delivery result may justify receiver, hardware, packaging, and licensing work. Do not infer support from device age alone.

VP9

Test VP9 in the target browser, application, container, encoder, and decoder path. Web use in one environment does not prove every production receiver accepts it.

AV1

Trial AV1 when receiver coverage and available encode resources can support it. Measure time, energy, delay, quality, packaging, and fallback with the real content.

Build the receiver matrix from current sources

Browser documentation offers a starting point. Mozilla’s current web video codec guide summarizes format considerations, while the W3C WebCodecs codec registry defines codec-string registrations used with that API. Neither source proves that a particular profile, level, container, operating system, or hardware path works for your audience.

Create rows for the actual combinations: device model, OS, browser or app, version, container, codec string, profile, level where applicable, resolution, cadence, audio, and playback route. Mark start, sustained playback, seeking, switching, CPU or power observation, and visible errors. Keep failures; they define the fallback.

Test packaging and rendition selection together

Place every candidate inside the container and delivery format proposed for production. Verify codec strings, initialization data, encryption mode, captions, audio pairing, seeking, live joins, and switches between codec or resolution families where supported. A raw elementary-stream decode proves less than the packaged route viewers will receive.

Decide how the player chooses a fallback when the preferred decoder is missing, slow, or disabled. Test direct links, cached manifests, and a session resumed after an application update. Keep the fallback visible in analytics so apparent success does not hide that most of the audience never used the candidate codec.

CandidateReceiver resultEncode observationDelivery and packagingDiligence
H.264Tested profile/level cohortQuality, time, load, delayRequired containers and fallbackCurrent licensing and product support
HEVCBrowsers, devices, apps, hardware decodeMatched-quality trialPackaging and rendition selectionLicensing and workflow constraints
VP9Target web and native receiversSoftware or hardware pathContainer and player behaviorOperational support lifecycle
AV1Current mandatory and optional cohortEncode time, energy, live suitabilityPackaging, cache, switch, fallbackImplementation and support maturity

Probe hardware instead of assuming acceleration

Identify the exact encoder and decoder devices, drivers, APIs, profiles, bit depth, session demands, and concurrent workload. NVIDIA publishes current capabilities through its Video Codec SDK, but support still depends on the specific GPU and matrix. Run the intended encode and decode while collecting load, memory, speed, dropped work, power where relevant, and a software fallback result.

Compare quality at an agreed operating point

Choose either a target bitrate or a target visual quality and state it before encoding. Use matched resolution, cadence, preprocessing, key-frame policy, and viewing conditions. Review blind where practical, then add objective measurements as supporting signals. A percentage saving from another clip, preset, or vendor does not transfer automatically to this workload.

Record encode time and end-to-end delay along with picture quality. A codec that reduces delivery bytes but multiplies production time may fit an offline library and fail a live channel. Use the bitrate guide to turn the selected quality point into a delivery budget.

Measure decoder cost on the viewer device

Observe startup, sustained frame delivery, dropped frames, CPU or hardware-decoder use, memory, temperature, and battery impact where those affect the audience. Include background-to-foreground transitions and a long-enough session to reveal thermal throttling. A codec can be technically supported yet provide an unacceptable experience on a mandatory receiver.

Accessibility assets and alternate audio must travel with the candidate during this test. Check captions, described audio, language selection, and seeking after a rendition change. Do not approve picture efficiency at the expense of a required track or control.

Keep licensing as a documented diligence item

Codec standards, open-source implementations, hardware, and distribution rights are different layers. Via LA publishes current information for its AVC/H.264 licensing programme. It cannot provide a complete legal conclusion for every implementation, pool, jurisdiction, or business model. Record which legal and procurement review applies to each candidate and revisit it before launch.

Operational support has a lifecycle too. Record encoder and decoder library versions, browser and operating-system support commitments, hardware replacement plans, and who can diagnose a failed file after launch. A royalty or open-technology description does not answer whether the organization can operate the implementation for the life of its archive.

Failure rehearsal: the candidate works in browsers but not televisions

Keep the exact failing file and receiver. Compare codec string, profile, level, bit depth, container, audio, dimensions, cadence, and delivery path with a known-good asset on the television. Verify whether decode support is hardware, software, or absent. If the candidate remains valuable elsewhere, test rendition selection and the H.264 fallback rather than silently removing the device cohort.

Make one migration slice

Encode a small live or VOD set, package it through the intended path, and expose it only to the measured receiver cohort. Monitor playback, failures, support requests, encode cost, delivery volume, and rollback.

Choose from a measured receiver and encode trial

Select the codec lanes that satisfy mandatory receivers, quality, delay, production cost, packaging, licensing diligence, and fallback. Gradual rollout is one method, not a universal rule. If implementation then needs live conversion, assess Callaba live video transcoding against the verified codec matrix. No codec, hardware-density, throughput, or savings capability is implied until current product evidence confirms it.

Store source clips, commands and versions, encoded files, receiver rows, visual notes, hardware measurements, delivery observations, licensing review, and rollback result. Reopen the shortlist when audience devices, encoder hardware, packaging, or business terms change.

Give the approved matrix an expiry trigger: a major browser release, device-family change, encoder update, new distribution region, or licensing change. The codec names may stay familiar while the workable combination moves.