Convert RM to AVI — Free Online Tool
Convert RealMedia (.rm) files to AVI using H.264 video and MP3 audio — rescuing late-1990s streaming content from a proprietary format into a widely compatible container. The conversion re-encodes the MJPEG video stream to libx264 and transcodes the audio to MP3, making your legacy RealMedia files playable on virtually any modern device or software.
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 store video encoded with RealVideo or MJPEG codecs and audio in RealAudio, AAC, or MP3 formats inside RealNetworks' proprietary container. Because AVI is a completely different container with different codec expectations, this conversion cannot simply remux the streams — it must re-encode. The video stream is decoded from its source codec and re-encoded using libx264 (H.264) with a CRF of 23, which produces a good balance of quality and file size. The audio is transcoded to MP3 using the LAME encoder at 128k bitrate. The result is an AVI file with interleaved H.264 video and MP3 audio that can be opened by any media player without needing RealPlayer or RealMedia codec packs installed.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. This is the same engine that runs in your browser via WebAssembly (FFmpeg.wasm) — the command shown is identical to what you would run locally in a terminal. |
-i input.rm
|
Specifies the input RealMedia file. FFmpeg uses its libavformat demuxer to parse the proprietary RealMedia container, extracting the video and audio streams for decoding and re-encoding. |
-c:v libx264
|
Encodes the output video stream using the H.264 codec via libx264. This replaces whatever video codec was used in the source .rm file (typically MJPEG or a RealVideo variant) with a modern, efficient codec that is universally supported in AVI players. |
-c:a libmp3lame
|
Transcodes the audio to MP3 using the LAME encoder, which is the default and most compatible audio codec for AVI files. This replaces the source audio (commonly RealAudio COOK or AAC) with MP3, ensuring playback in any media player that supports AVI. |
-crf 23
|
Sets the Constant Rate Factor for H.264 encoding to 23, the libx264 default. For typical low-resolution RealMedia streaming content, this produces a good quality-to-file-size balance without introducing visually significant compression artifacts beyond what already exists in the source. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second, matching the audio quality default used in this tool. Since most RealMedia files were originally encoded at similar or lower audio bitrates for streaming, 128k provides sufficient fidelity without inflating the output file size. |
output.avi
|
Specifies the output filename and tells FFmpeg to write the result into an AVI container. FFmpeg infers the container format from the .avi extension, producing an interleaved Audio Video Interleave file with the H.264 video and MP3 audio streams. |
Common Use Cases
- Recovering old streaming video clips downloaded from early-2000s websites that were saved as .rm files and can no longer be played without legacy codec packs
- Digitizing archived RealMedia recordings from corporate intranets or educational platforms that used RealServer for content delivery in the early 2000s
- Converting RealMedia interview or documentary footage sourced from old news archives into an editable format compatible with video editing software like Premiere Pro or DaVinci Resolve
- Preparing legacy RealMedia training or tutorial videos for upload to modern platforms that do not accept .rm files
- Migrating a personal or institutional media library of .rm files from the RealNetworks era into a long-term archival format that does not depend on proprietary software
- Extracting usable video content from .rm files found on old CD-ROMs or backup drives where the original production files are no longer available
Frequently Asked Questions
Yes, some generation loss is unavoidable because the video must be decoded from its original codec and re-encoded to H.264. However, since most .rm files were already highly compressed streaming video — often encoded at low bitrates in the 200–500 kbps range — the H.264 encoder at CRF 23 will typically produce output that is visually comparable or even cleaner than the source. The bigger quality constraint is the original source resolution and bitrate, not the re-encoding step.
RealMedia was specifically designed for low-bandwidth internet streaming, so .rm files are often aggressively compressed to minimize file size at the cost of quality. AVI with H.264 at CRF 23 and MP3 at 128k is optimized for local playback quality rather than minimal streaming size, so the output will commonly be several times larger than the source .rm file. If smaller file sizes are important, you can increase the CRF value (e.g., to 28 or 30) to reduce bitrate.
AVI does not support subtitles or chapters, and neither does RealMedia in this context, so nothing is lost there. However, RealMedia's proprietary streaming metadata, playback control markers, and any RealText or SMIL-based overlays embedded in the .rm file will not carry over into AVI. The conversion preserves only the core video and audio streams.
The -crf flag controls H.264 quality — lower values mean higher quality and larger files, higher values mean lower quality and smaller files. The default of 23 is a good general-purpose setting. To improve quality for a visually degraded source, try -crf 18. For a smaller output file where the source is already low resolution, -crf 28 or -crf 30 is reasonable. You can also increase the audio bitrate by changing -b:a 128k to -b:a 192k or -b:a 256k if the source has high-quality audio.
Yes. On Linux or macOS you can run: for f in *.rm; do ffmpeg -i "$f" -c:v libx264 -c:a libmp3lame -crf 23 -b:a 128k "${f%.rm}.avi"; done. On Windows Command Prompt: for %f in (*.rm) do ffmpeg -i "%f" -c:v libx264 -c:a libmp3lame -crf 23 -b:a 128k "%~nf.avi". This is especially useful for migrating an entire legacy media library in one pass.
While AVI does support MJPEG, H.264 (libx264) offers dramatically better compression efficiency — typically 5 to 10 times more efficient than MJPEG at the same visual quality. Since the video must be re-encoded anyway due to container incompatibility, using H.264 produces a much smaller output file with better quality than simply re-encoding to MJPEG. If you specifically need MJPEG output (e.g., for compatibility with certain hardware editors), you can substitute -c:v mjpeg and replace -crf with -q:v 3 to 5.
Technical Notes
RealMedia (.rm) is a proprietary container that requires RealNetworks' demuxer to read correctly, and FFmpeg's support for it — while functional — can be inconsistent with certain authoring tools or early RealVideo codec variants. Files containing pure RealVideo 1/2 streams may decode with more artifacts than files that used MJPEG as the video codec, since RealVideo codec support in FFmpeg is based on reverse-engineered implementations. The audio in .rm files is frequently RealAudio COOK or AAC, both of which FFmpeg handles reasonably well. Because RealMedia was a streaming format, some .rm files have incomplete or missing headers that can cause FFmpeg to fail or produce truncated output — in these cases, adding -analyzeduration 100M -probesize 100M before the input flag can help. The output AVI container stores H.264 and MP3 in an interleaved structure, which is broadly compatible but note that AVI does not support variable frame rate video natively; if the source .rm file has a variable frame rate (common in screen-capture-style recordings), FFmpeg will force a constant frame rate which may introduce minor timing drift.