Convert HEVC to CAVS — Free Online Tool

Convert HEVC/H.265 video files to CAVS format using libx264 encoding, directly in your browser. This conversion re-encodes your H.265 stream into an H.264-based CAVS container — useful for compatibility with Chinese broadcast systems and legacy hardware that predates HEVC support.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

HEVC (H.265) and CAVS use fundamentally different video compression architectures, so this conversion requires full re-encoding — the video cannot simply be remuxed. FFmpeg decodes every frame of the H.265 stream and re-encodes it using libx264, producing an H.264-compatible video stream wrapped in a CAVS container. Because CAVS is a lossy-only format, any lossless HEVC source will be converted to lossy output. The audio track (if present) is encoded to AAC at 128k, since CAVS relies on AAC for audio. The H.265-to-H.264 re-encode typically results in a larger output file than the source, because H.264 requires more data to represent the same visual quality that H.265 achieves at roughly half the bitrate.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles the decoding of the HEVC source, the re-encoding to H.264/AAC, and the muxing into the CAVS container format.
-i input.hevc Specifies the input HEVC file. FFmpeg will demux the container and pass the H.265 video stream (and any audio) to the appropriate decoders.
-c:v libx264 Instructs FFmpeg to re-encode the decoded H.265 video frames using libx264, the H.264 encoder required for CAVS-compatible output. This cannot be a stream copy because H.265 and H.264 are incompatible codecs.
-c:a aac Encodes the audio track to AAC, which is the audio codec used in the CAVS format. If the source HEVC file contains audio in another format (e.g., AC-3 or DTS), this re-encodes it to AAC for CAVS compatibility.
-crf 23 Sets the Constant Rate Factor for libx264 to 23, which is the encoder's default and produces visually good quality H.264 output. Lower values (e.g., 18) increase quality and file size; higher values (e.g., 28) reduce file size at the cost of visible compression.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, a standard quality level for stereo audio in broadcast-oriented formats like CAVS. Increase to 192k or 256k if audio fidelity is a priority.
output.cavs Defines the output filename and signals FFmpeg to mux the encoded H.264 video and AAC audio into a CAVS container, which uses the .cavs file extension.

Common Use Cases

  • Preparing HEVC-encoded video content for compatibility with Chinese digital broadcast infrastructure that mandates the CAVS standard
  • Converting drone or camera footage shot in H.265 for playback on older Chinese-market set-top boxes or televisions that support CAVS but not HEVC
  • Transcoding H.265 video archives into CAVS format for submission to Chinese state media or regulatory platforms with specific codec requirements
  • Downgrading high-efficiency HEVC streams from modern cameras for use in legacy Chinese video editing or post-production software pipelines that predate H.265 support
  • Converting HEVC recordings from action cameras or smartphones into CAVS for distribution on Chinese streaming platforms that enforce national codec standards

Frequently Asked Questions

This is expected and is a direct consequence of the codec difference. H.265 (HEVC) achieves the same visual quality as H.264 at roughly half the bitrate, meaning when you re-encode from H.265 to the H.264-based CAVS format at equivalent quality settings, the output will require significantly more data. The default CRF of 23 used for the CAVS output targets a visually good quality level for H.264, but H.264 simply cannot compress as efficiently as your original H.265 source.
Yes — this is a lossy transcode in both directions. Your HEVC source is decoded and then re-encoded using libx264, which is a generational quality loss. If your source was already compressed (as most HEVC files are), you are compressing already-compressed data, which introduces additional artifacting. To minimize quality loss, lower the CRF value in the FFmpeg command (e.g., change -crf 23 to -crf 18) at the cost of a larger output file.
CAVS itself is designed as a broadcast standard with practical roots in standard and high definition video, and the libx264 encoder used here does not natively carry HDR metadata (such as HDR10 or Dolby Vision) the way HEVC containers can. If your source is HDR HEVC, the color metadata will be lost or ignored during re-encoding, and the output will effectively be tone-mapped or clipped depending on your system. CAVS is not a recommended format for preserving HDR or 8K content.
The CAVS format does not support subtitles, chapters, or multiple audio tracks, so all of these are dropped during conversion. Only the primary video stream and the first audio track are carried into the output. If your HEVC source contains embedded subtitles or alternate language audio, you should extract those separately before converting, as they cannot be preserved in the CAVS container.
To adjust video quality, change the -crf value: lower numbers (e.g., 18) mean higher quality and larger files, while higher numbers (e.g., 28 or 35) produce smaller files with more compression artifacts. The valid range for libx264 is 0 (lossless) to 51 (worst quality). To adjust audio quality, change the -b:a value — for example, replace 128k with 192k or 256k for better audio fidelity, or 96k to reduce file size. The command would become: ffmpeg -i input.hevc -c:v libx264 -c:a aac -crf 18 -b:a 192k output.cavs
Yes. On Linux or macOS, you can use a shell loop: for f in *.hevc; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.hevc}.cavs"; done. On Windows Command Prompt, use: for %f in (*.hevc) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.cavs". This is especially practical for large files or large batches, since the browser-based tool has a 1GB per-file limit.

Technical Notes

This conversion involves a full transcode from the H.265 codec (as used in HEVC files, encoded with libx265) to H.264 (libx264), wrapped in a CAVS container. CAVS — officially GB/T 20090 — was developed by China as a domestic alternative to H.264/AVC, but ironically many CAVS implementations use H.264-compatible video encoding, which is why libx264 is the appropriate encoder here. The format is lossy-only, so even if your source HEVC was encoded at CRF 0 (lossless), the output will be lossy. The default CRF 23 for libx264 is the codec's own default and represents a reasonable quality-to-size balance for H.264. CAVS does not support transparency, subtitle streams, chapter markers, or multiple audio tracks — all of which are silently dropped. The -x265-params log-level=error flag from the input side suppresses verbose x265 decoder noise during processing. Because H.264 is less efficient than H.265, expect output files to be 1.5x to 2x larger than the source at comparable perceptual quality. This tool is best suited for compatibility-driven conversions rather than archival use.

Related Tools