Convert CAVS to Y4M — Free Online Tool
Convert CAVS (Chinese Audio Video Standard) video files to Y4M (YUV4MPEG2) uncompressed format directly in your browser. This conversion decodes the CAVS-encoded H.264 video stream into raw YUV pixel data, producing a lossless intermediate file ideal for frame-accurate processing pipelines.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your CAVS file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
CAVS files contain video encoded with H.264/libx264 and AAC audio wrapped in the Chinese national broadcast container. During this conversion, FFmpeg fully decodes the compressed H.264 video stream back to raw YUV pixel data and writes it into the Y4M container using the rawvideo codec. Y4M includes a simple plain-text header per frame describing resolution, frame rate, and color space — making it trivially readable by other tools. Because Y4M does not support audio, the AAC audio track from the CAVS file is discarded entirely. The result is a completely uncompressed, lossless representation of every video frame that was stored in the original CAVS file.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that handles decoding the CAVS container and H.264 video stream, and re-encoding it as raw YUV data for Y4M output. |
-i input.cavs
|
Specifies the input file in CAVS format. FFmpeg detects the CAVS container and identifies the H.264 video stream and AAC audio stream contained within it. |
-c:v rawvideo
|
Instructs FFmpeg to encode the output video stream using the rawvideo codec — meaning decoded YUV frames are written directly to the Y4M file with no compression applied. This is the only video codec Y4M supports. |
output.y4m
|
Specifies the output filename with the .y4m extension. FFmpeg uses this extension to automatically select the YUV4MPEG2 muxer, which writes the plain-text Y4M frame headers and raw pixel data. The resulting file will be substantially larger than the source CAVS file due to the complete absence of compression. |
Common Use Cases
- Feeding decoded CAVS broadcast footage into a lossless video processing pipeline (e.g., vapoursynth or avisynth) that requires uncompressed Y4M input
- Archiving individual frames from Chinese broadcast CAVS recordings for frame-by-frame quality analysis or comparison
- Piping CAVS-sourced video into a secondary FFmpeg command or encoder via stdout to re-encode with a different codec without intermediate lossy compression
- Extracting raw YUV frame data from CAVS video for use in academic or broadcast research comparing CAVS compression artifacts against other formats
- Preparing CAVS footage for use in video quality metric tools (such as VMAF or SSIM calculators) that require uncompressed Y4M as a reference or distorted input
- Converting CAVS broadcast clips to an universally readable uncompressed format when the target application cannot parse the CAVS container or H.264 stream directly
Frequently Asked Questions
The Y4M output is a lossless representation of the decoded frames — meaning every pixel value from the decompressed H.264 stream is preserved exactly. However, the original CAVS H.264 encoding was itself lossy, so any compression artifacts already present in the CAVS file will also be present in the Y4M output. No additional quality is lost during this conversion; you are simply unpacking what was already there.
CAVS uses H.264 compression, which dramatically reduces file size by discarding perceptually redundant information. Y4M stores every video frame as raw, uncompressed YUV pixel data with no compression whatsoever. A single minute of 1080p video at 30fps can easily exceed 10–15GB in Y4M format, compared to a few hundred megabytes in a compressed CAVS file. This is expected and is the core tradeoff of working with uncompressed intermediate formats.
The audio track is dropped completely. Y4M is a video-only format — it has no mechanism for storing audio streams. If you need to preserve the AAC audio from the CAVS file, extract it separately using FFmpeg with a command like 'ffmpeg -i input.cavs -vn -c:a copy output.aac' before or after your Y4M conversion.
Yes — this is one of Y4M's primary use cases. Replace 'output.y4m' with 'pipe:1' (or simply '-') and pipe stdout into another process. For example: 'ffmpeg -i input.cavs -c:v rawvideo -f yuv4mpegpipe pipe:1 | x265 --y4m - -o output.hevc'. This avoids writing a massive uncompressed file to disk entirely, which is especially useful given how large Y4M files become.
Yes. FFmpeg reads the frame rate and YUV color space (typically YUV 4:2:0 for H.264-encoded CAVS content) from the CAVS stream and writes them into the Y4M per-stream header. Most tools that consume Y4M will correctly read these parameters automatically. However, HDR metadata, color primaries, and transfer characteristics beyond basic YUV sampling are not stored in the Y4M format.
On Linux or macOS you can batch process with a shell loop: 'for f in *.cavs; do ffmpeg -i "$f" -c:v rawvideo "${f%.cavs}.y4m"; done'. On Windows Command Prompt use: 'for %f in (*.cavs) do ffmpeg -i "%f" -c:v rawvideo "%~nf.y4m"'. Be aware that each output Y4M file will be extremely large, so ensure you have sufficient disk space before batch processing.
Technical Notes
CAVS is a Chinese national broadcast standard whose video content is typically encoded with H.264/AVC (libx264), making it technically similar to a standard MP4 or TS container in terms of codec support. The Y4M (YUV4MPEG2) format originated in the mjpegtools project and is widely supported by open-source video tools as a lowest-common-denominator uncompressed interchange format. Because Y4M stores raw YUV data, the output pixel format will match whatever the H.264 decoder produces — almost always yuv420p for standard CAVS broadcast content. Y4M has no support for audio, subtitles, chapters, or multiple tracks of any kind. There are also no quality parameters to configure for Y4M output, since it is by definition uncompressed and lossless at the decoded frame level. One important limitation: Y4M files are not seekable in the traditional sense when streamed, which is why they are used almost exclusively as intermediate or pipe formats rather than final delivery formats. Files over 4GB will not have compatibility issues on modern 64-bit systems, but some legacy tools may struggle with large Y4M files.