Convert RM to MKV — Free Online Tool
Convert legacy RealMedia (.rm) files to MKV by re-encoding the MJPEG or AAC streams into modern H.264 video and AAC audio inside Matroska's flexible container. This rescues content from a proprietary 1990s streaming format into a widely supported, open-standard format that plays on virtually any device or media player.
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 encapsulate video (typically MJPEG in this configuration) and audio (AAC or MP3) inside RealNetworks' proprietary container, which very few modern players support natively. This conversion decodes the MJPEG video stream and re-encodes it using the H.264 codec (libx264) with a CRF of 23, which produces substantially better compression and quality than MJPEG's intra-frame-only encoding. The AAC audio stream is either passed through or lightly re-encoded at 128k bitrate. The resulting MKV container is fully open-standard, supports subtitles, chapters, and multiple audio tracks — none of which RM supports — and the H.264 output will be far smaller than the original MJPEG-based file at comparable or better visual quality.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles all decoding, encoding, and container operations. In this browser-based tool, FFmpeg runs via WebAssembly (FFmpeg.wasm) entirely client-side with no server upload. |
-i input.rm
|
Specifies the input RealMedia file. FFmpeg will demux the proprietary RM container to extract the MJPEG video and AAC (or RealAudio) streams for processing. |
-c:v libx264
|
Encodes the output video using the H.264 codec via libx264, replacing the MJPEG intra-frame video from the RM source with a modern, inter-frame compressed stream that is far smaller and universally supported. |
-c:a aac
|
Encodes the audio as AAC, which is compatible with both the source format and the MKV output container. If the original RM file contains proprietary RealAudio, this flag forces a transcode to standard AAC. |
-crf 23
|
Sets the Constant Rate Factor for H.264 encoding to 23, FFmpeg's default. This is a quality-based encoding mode where 23 produces a good balance between visual fidelity and file size for the converted content; lower values (e.g., 18) give higher quality at larger file sizes. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, which provides good stereo audio quality appropriate for most RealMedia content including voice, music, and archival recordings. |
output.mkv
|
Defines the output file as a Matroska (.mkv) container, which wraps the H.264 video and AAC audio streams in an open-standard format that supports subtitles, chapters, and multiple audio tracks — all features the original RM format lacked. |
Common Use Cases
- Recovering old RealMedia recordings from the late 1990s or early 2000s — such as archived webcasts, lectures, or news clips — and converting them to a format modern media players like VLC, Plex, or Kodi can handle without plugins.
- Digitizing RealMedia files ripped from old CD-ROMs or educational software that shipped with .rm video tutorials, making them watchable on current hardware.
- Archiving historical streaming media content downloaded from early internet archives, converting from the proprietary RM container to the open MKV format to ensure long-term accessibility.
- Reducing file sizes of MJPEG-encoded RealMedia files, since H.264 (used in the output MKV) achieves far better compression ratios than MJPEG's frame-by-frame JPEG encoding.
- Preparing legacy RealMedia content for upload to platforms like YouTube or Vimeo, which do not accept .rm files but readily handle H.264 video in modern containers.
- Consolidating a mixed media library where some older content is in .rm format alongside newer files, standardizing everything to MKV for consistent playback and metadata management.
Frequently Asked Questions
RealMedia was a proprietary format developed by RealNetworks, and native playback requires either the old RealPlayer application or specific codec packs that are increasingly difficult to obtain and install on modern operating systems. Most current media players — including Windows Media Player, QuickTime, and even many versions of VLC — either refuse to open .rm files or produce errors. Converting to MKV with H.264 eliminates this dependency entirely.
There is some quality loss because both the input RM format and the conversion process are lossy — MJPEG video is decoded and re-encoded to H.264. However, at a CRF of 23, H.264 typically produces visually excellent results, and because MJPEG compresses each frame independently without inter-frame prediction, the H.264 output can actually look cleaner and more consistent at a significantly lower file size. The AAC audio, if re-encoded, is nearly transparent at 128k for most content.
RealMedia files using MJPEG video store each video frame as a separate JPEG image, which is extremely inefficient compared to modern codecs. H.264, used in the output MKV, uses inter-frame prediction — it encodes differences between frames rather than full images — which dramatically reduces file size. A 10:1 size reduction compared to MJPEG-based RM files is not unusual, especially for video with slow-moving or static content.
FFmpeg will attempt to copy metadata tags such as title, author, and copyright from the RM container into the MKV output, and MKV's flexible metadata system can store them all. However, RealMedia's proprietary metadata fields — such as RealNetworks-specific streaming parameters or DRM rights information — are not meaningful in MKV and will be discarded. Standard title and description fields are generally preserved.
The CRF (Constant Rate Factor) value controls H.264 video quality. Lower CRF values produce higher quality and larger files; higher values produce lower quality and smaller files. The current command uses -crf 23, which is the FFmpeg default and a good general-purpose setting. To improve quality for archival purposes, try -crf 18 (near-lossless visually); for smaller files at the cost of some quality, try -crf 28. You can also change -b:a 128k to -b:a 192k or -b:a 256k for higher audio fidelity.
The single-file command shown works for one file at a time, but you can batch process on the command line. On Linux or macOS, run: for f in *.rm; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.rm}.mkv"; done. On Windows Command Prompt, use: for %f in (*.rm) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.mkv". This is especially useful for large collections of archived RealMedia files.
Technical Notes
RealMedia's internal video codec in this configuration is MJPEG (Motion JPEG), an intra-frame codec with no temporal compression — every frame is stored as a full JPEG image. This makes MJPEG both less efficient and easier to decode than modern codecs, but it means conversion to H.264 requires a full decode-and-reencode pass rather than a simple remux. The libx264 encoder at CRF 23 uses B-frames and P-frames by default, which the MKV container handles correctly. RealMedia does not support subtitles, chapters, or multiple audio tracks, so none of those MKV features can be populated from the source file. If your .rm file uses RealAudio codecs (such as cook or ra288) rather than AAC, FFmpeg will still decode them and re-encode to AAC, though very old or heavily proprietary RealAudio variants may not decode cleanly with all FFmpeg builds. The .rm file extension is sometimes confused with .rmvb (RealMedia Variable Bitrate), which uses a different internal structure; if you encounter a .rmvb file, rename it and use the same FFmpeg command — the conversion process is identical.