Convert RM to CAVS — Free Online Tool
Convert RealMedia (.rm) files to CAVS format using libx264 video encoding and AAC audio, right in your browser. This tool modernizes legacy RealNetworks streaming content into a broadcast-compatible container using H.264 compression, replacing the outdated MJPEG or RealVideo codec with a far more efficient modern standard.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your RM 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
RealMedia files typically contain video encoded with RealVideo or MJPEG and audio in AAC or MP3. During this conversion, the video stream is fully re-encoded from the source codec into H.264 (libx264) — a computationally intensive transcode that applies the CRF 23 quality setting to control compression. The audio, if already AAC, is re-encoded into a clean AAC stream at 128k bitrate to match the CAVS container's requirements. The result is a .cavs file built on an H.264 video backbone, which offers dramatically better compression efficiency than the original RealMedia codec while conforming to the Chinese Audio Video Standard container structure.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles all decoding, transcoding, and muxing operations in this conversion pipeline. |
-i input.rm
|
Specifies the input RealMedia file. FFmpeg will detect the container format and attempt to demux the video and audio streams, which may be encoded in MJPEG, RealVideo, AAC, or MP3 depending on how the .rm file was originally produced. |
-c:v libx264
|
Re-encodes the video stream using the H.264 encoder (libx264), replacing whatever legacy codec was used in the source RealMedia file with a modern, widely-supported compression standard suitable for the CAVS container. |
-c:a aac
|
Re-encodes the audio stream to AAC using FFmpeg's native AAC encoder, ensuring compatibility with the CAVS container regardless of whether the source .rm file carried AAC or MP3 audio. |
-crf 23
|
Sets the Constant Rate Factor for the libx264 encoder to 23, which is the default balanced quality setting. Lower values (e.g., 18) produce higher-quality output at larger file sizes; higher values (e.g., 28) compress more aggressively, which can be useful when dealing with long legacy RealMedia recordings. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, a standard quality level well-suited to the stereo speech and music content typically found in legacy RealMedia streaming files. |
output.cavs
|
Defines the output filename and instructs FFmpeg to mux the encoded H.264 video and AAC audio into a CAVS container, the Chinese national standard format used in broadcast and IPTV distribution contexts. |
Common Use Cases
- Digitally archiving old RealMedia streaming video files from the late 1990s or early 2000s into a more modern, H.264-based format for long-term preservation
- Preparing legacy educational or corporate training videos originally distributed in .rm format for ingestion into Chinese broadcast or IPTV systems that require CAVS-compatible content
- Converting RealMedia news clips or documentary footage sourced from Chinese media archives into the nationally standardized CAVS format for regulatory compliance
- Re-encoding low-efficiency MJPEG-encoded RealMedia content to H.264 to dramatically reduce file size while maintaining comparable visual quality
- Migrating a library of RealMedia streaming content from an old intranet or media server into a CAVS format suitable for modern Chinese digital distribution platforms
- Extracting and re-encoding RealMedia video for use in workflows or editing pipelines that require H.264-encoded source material packaged in a CAVS container
Frequently Asked Questions
Yes, some generation loss is unavoidable since both the source RealMedia and the output CAVS format are lossy. The video is decoded from its original codec (typically MJPEG or RealVideo in .rm files) and then re-encoded to H.264 using CRF 23, which is a high-quality default. In practice, because H.264 is a far more efficient codec than the legacy codecs found in RealMedia files, the output may actually look comparable or even cleaner at a smaller file size, especially if the source was encoded at a low bitrate.
CAVS (Chinese Audio Video Standard) refers to both a container format and a broader family of standards. In FFmpeg's implementation, the .cavs container can wrap H.264 video and AAC audio, making libx264 the practical encoding choice since native CAVS video codec (AVS1) support in FFmpeg is limited. This means the resulting file is a CAVS-compatible container with H.264 content, which is the approach used by many tools targeting CAVS broadcast environments.
The audio is re-encoded to AAC at 128k bitrate regardless of whether the source RealMedia file contains AAC or MP3 audio. RealMedia files commonly carry AAC or libmp3lame audio, and both require transcoding to produce a clean AAC stream suited for the CAVS container. At 128k, AAC delivers good stereo quality for most speech and music content found in legacy streaming files.
Yes — the -crf flag controls quality, where lower values mean higher quality and larger files, and higher values mean more compression with more quality loss. The default CRF 23 is a well-balanced starting point. To improve quality (at the cost of a larger file), try -crf 18. For smaller output files where some quality degradation is acceptable, use -crf 28 or -crf 35. For the audio, replace -b:a 128k with values like 96k (smaller) or 192k (higher quality).
The displayed command handles a single file, but you can adapt it for batch processing in a shell script. On Linux or macOS, use: for f in *.rm; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.rm}.cavs"; done. On Windows Command Prompt, use a for loop with similar logic. This applies the same codec settings to every .rm file in a directory, which is especially useful when migrating a large archive of legacy RealMedia content.
No. RealMedia files do not support subtitles or chapters, and the CAVS format also lacks support for these features, so there is nothing to lose on those fronts. However, inline metadata tags that may exist in the .rm file (such as title or author fields embedded by RealProducer) are not guaranteed to carry over during the transcode, and CAVS has limited metadata support. If preserving metadata is critical, consider extracting it before conversion using ffprobe.
Technical Notes
RealMedia (.rm) is a legacy proprietary container from RealNetworks, and support for it in modern tools is limited. FFmpeg can decode most .rm files, but highly proprietary RealVideo codec variants (RV10, RV20, RV30, RV40) may have incomplete decoding support, potentially causing artifacts or errors with some source files. The CAVS container format has narrow adoption outside of Chinese broadcast contexts, and desktop media players may require specific codec packs to play .cavs files. Because the video must be fully re-encoded (there is no copy path — the source codec cannot be streamed directly into CAVS), this conversion is CPU-intensive and will take longer than a simple remux. The libx264 encoder used here is not the native AVS codec but is widely accepted in CAVS workflows. No transparency is supported by either format, and neither supports multiple audio tracks, so only the primary audio stream will be included in the output.