Convert CAVS to RM — Free Online Tool

Convert CAVS (Chinese Audio Video Standard) files to RealMedia (.rm) format entirely in your browser, re-encoding video with MJPEG and audio with AAC. This bridges a rare Chinese broadcast standard with a classic internet streaming container, making legacy CAVS content accessible in environments that recognize the RealMedia format.

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

CAVS files encode video using the AVS (Audio Video Coding Standard) codec, which FFmpeg decodes in full before re-encoding. Because RealMedia's supported video codec in this pipeline is MJPEG — a motion JPEG format that stores each frame as an independent JPEG image — every video frame from the CAVS source must be fully decoded and then re-compressed as MJPEG. This is a full transcode, not a remux. Audio encoded as AAC in the CAVS container is passed through and re-muxed into the RM container as AAC, though it may be re-encoded depending on bitrate adjustments. The result is a .rm file whose MJPEG video is frame-accurate and seekable but significantly larger per minute of footage than the original AVS-compressed source, since MJPEG does not use inter-frame compression.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that powers this conversion both in the browser (via FFmpeg.wasm) and on the desktop command line.
-i input.cavs Specifies the input file in CAVS format. FFmpeg reads the AVS-encoded video stream and the associated audio stream from this container for decoding.
-c:v mjpeg Instructs FFmpeg to encode the output video stream using the MJPEG codec — the only video codec supported by this RM output pipeline. Each decoded AVS frame is independently re-compressed as a JPEG image.
-c:a aac Sets the output audio codec to AAC, which is the default audio codec for this RM output. The audio from the CAVS source is decoded and re-encoded as AAC before being muxed into the RealMedia container.
-q:v 5 Controls MJPEG video quality using a scale of 1 (best quality, largest file) to 10 (lowest quality, smallest file). A value of 5 is the default, balancing visual fidelity and file size for typical CAVS broadcast content.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, the default for this conversion. This provides stereo audio quality suitable for speech and music typical in CAVS broadcast recordings without inflating the file size unnecessarily.
output.rm Specifies the output filename and triggers FFmpeg to use the RealMedia container format based on the .rm file extension. The MJPEG video and AAC audio streams are muxed into this legacy streaming container.

Common Use Cases

  • Archivists digitizing Chinese broadcast recordings stored in CAVS format who need to deliver files to legacy media servers or kiosk systems that only accept RealMedia input.
  • Researchers or journalists accessing CAVS footage from Chinese state broadcast archives who need to embed video in older editorial workflows or CMS platforms that were built around RealPlayer-era formats.
  • Video editors extracting frame-level accuracy from CAVS source material by converting to MJPEG inside an RM wrapper, since MJPEG's intra-frame-only encoding allows precise frame-by-frame scrubbing without decoding dependencies.
  • Developers or QA engineers testing RealMedia playback pipelines or legacy streaming infrastructure who need sample .rm files with realistic video content rather than synthetic test patterns.
  • Film students or media historians studying early 2000s Chinese digital video standards who want to compare CAVS-encoded content with the RealMedia streaming format that dominated the same era globally.
  • System integrators maintaining older Chinese government or enterprise video portals that were originally built around RealMedia streaming and need to ingest updated CAVS-encoded source material.

Frequently Asked Questions

Yes, this conversion involves two generations of lossy compression: the original CAVS/AVS-encoded video is fully decoded and then re-encoded as MJPEG. MJPEG compresses each frame independently as a JPEG image, which means it does not benefit from inter-frame prediction the way AVS does, so achieving comparable visual quality requires a notably higher bitrate. At the default quality setting (-q:v 5), the output will look reasonable for most content, but fine motion and complex backgrounds may show more JPEG-style blocking artifacts than the CAVS original.
CAVS uses inter-frame compression, meaning it encodes differences between frames rather than storing each frame in full — this is very space-efficient for video. MJPEG, used in the RM output, stores every frame as a complete JPEG image with no reference to adjacent frames. This intra-frame-only approach eliminates temporal compression entirely, so even at moderate quality settings the resulting file can be several times larger than the CAVS source for the same duration of footage.
Neither the CAVS input nor the RealMedia output format in this conversion pipeline supports subtitles, chapters, or multiple audio tracks. Any such embedded data in a CAVS file would be lost during conversion. RealMedia was designed primarily as a single-stream audio/video delivery container for internet streaming, so its feature set in that area is inherently limited compared to modern containers like MKV or MP4.
Native support for RealMedia in modern players is limited. VLC Media Player is the most reliable option and handles .rm files well. Windows Media Player and macOS do not play .rm files natively without third-party codecs. Most web browsers no longer support RealMedia playback. If broad modern compatibility is your goal, converting CAVS to MP4 or MKV would be a better choice — this CAVS-to-RM conversion is best suited for legacy system compatibility.
Change the value of the -q:v flag in the command. The scale runs from 1 (highest quality, largest file) to 10 (lowest quality, smallest file), with 5 as the default. For example, use -q:v 2 for near-lossless MJPEG output suitable for archival purposes, or -q:v 8 if you need to aggressively reduce file size and can tolerate visible JPEG artifacts. Unlike the CRF scale used for H.264, lower numbers always mean better quality with the MJPEG -q:v parameter.
Yes. On Linux or macOS you can use a shell loop: for f in *.cavs; do ffmpeg -i "$f" -c:v mjpeg -c:a aac -q:v 5 -b:a 128k "${f%.cavs}.rm"; done. On Windows Command Prompt the equivalent is: for %f in (*.cavs) do ffmpeg -i "%f" -c:v mjpeg -c:a aac -q:v 5 -b:a 128k "%~nf.rm". This is particularly useful since this browser tool handles files up to 1GB, and batch processing large collections is more practical via the desktop FFmpeg command.

Technical Notes

The CAVS format (also called AVS1 or GB/T 20090) is a Chinese national standard that uses the AVS video codec, which is broadly comparable in efficiency to H.264/AVC. FFmpeg decodes AVS video reliably, but the codec is uncommon outside of Chinese broadcast and set-top box contexts. The RealMedia container (.rm) was designed by RealNetworks for HTTP and RTSP streaming and saw peak usage between roughly 1997 and 2005. Modern FFmpeg writes RM files using MJPEG for video, which is a well-supported intra-frame codec with no licensing concerns but poor compression efficiency relative to AVS or H.264. Audio is handled as AAC at 128k by default, which is compatible with the RM container as FFmpeg implements it. Metadata fields common in CAVS files — such as title or creation time — are unlikely to be preserved in the RM output, as RealMedia's metadata system uses a different internal structure (RealText/RealMedia metadata chunks) that FFmpeg does not fully populate during muxing. Transparency is not supported by either format. If you are converting for archival purposes, consider whether MJPEG's larger file size and quality tradeoffs align with your storage and fidelity requirements before committing to this format pair.

Related Tools