Convert RM to MP4 — Free Online Tool
Convert RealMedia (.rm) files to MP4 using H.264 video and AAC audio — rescuing legacy streaming content from the late-90s/early-2000s RealPlayer era into a universally playable modern format. The MJPEG or proprietary RealVideo stream is re-encoded with libx264, making the output compatible with virtually every device, browser, and video platform.
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 use RealNetworks' proprietary container format, which typically carries RealVideo or MJPEG video and RealAudio or AAC audio streams. Because modern software has little to no native support for the RealMedia container, this conversion fully re-encodes both streams: the video is decoded and re-encoded using libx264 (H.264), producing a highly compatible MP4 video stream, while the audio is transcoded to AAC at 128k bitrate. The output MP4 container also receives the -movflags +faststart flag, which relocates metadata to the beginning of the file — enabling progressive web playback before the full file has loaded. This is a full transcode, not a remux, so processing time depends on file length and your device's CPU performance.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool, which handles all decoding, encoding, and container operations for this conversion. The browser-based tool runs this same engine via FFmpeg.wasm (WebAssembly) entirely within your browser. |
-i input.rm
|
Specifies the input RealMedia file. FFmpeg detects the RealMedia container and identifies the internal video and audio streams (typically MJPEG or RealVideo, and RealAudio or AAC) so they can be decoded for re-encoding. |
-c:v libx264
|
Re-encodes the video stream using the libx264 encoder, producing H.264 video inside the MP4 container. H.264 is universally supported across browsers, phones, smart TVs, and video platforms — a major upgrade from the proprietary RealVideo codec that required RealPlayer to play. |
-c:a aac
|
Transcodes the audio stream to AAC using FFmpeg's built-in AAC encoder. AAC is the standard audio codec for MP4 and is natively supported on all modern platforms, replacing any legacy RealAudio or existing AAC stream from the source .rm file in a fully compatible wrapper. |
-crf 23
|
Sets the Constant Rate Factor for libx264 to 23, which is the default quality level. Lower values (e.g., 18) produce higher quality at larger file sizes; higher values (e.g., 28) reduce file size with more compression. This controls the visual quality of the re-encoded H.264 stream independently of a fixed bitrate. |
-b:a 128k
|
Sets the AAC audio output bitrate to 128 kilobits per second, which provides good stereo audio quality suitable for speech and music. Given that most RealMedia files were originally encoded at very low audio bitrates for streaming, 128k is often already a ceiling rather than a limitation. |
-movflags +faststart
|
Moves the MP4 metadata (the 'moov' atom) to the beginning of the output file after encoding is complete. This enables the video to begin playing in a browser or media player before the entire file has been downloaded, which is important if the converted MP4 will be hosted or shared online. |
output.mp4
|
Specifies the output filename and format. The .mp4 extension tells FFmpeg to use the MPEG-4 Part 14 container, which wraps the newly encoded H.264 video and AAC audio streams into a single, widely compatible file. |
Common Use Cases
- Recovering archived RealMedia lectures, tutorials, or documentaries from the early internet era and making them playable on modern devices without RealPlayer
- Uploading old .rm video files to YouTube, Vimeo, or social media platforms that do not accept the RealMedia container format
- Digitizing a personal or institutional video archive of .rm files so they can be played on smartphones, smart TVs, and tablets
- Converting RealMedia news clips or historical footage downloaded from early 2000s websites for use in video editing software like Premiere Pro or DaVinci Resolve
- Preparing legacy streaming content for long-term preservation by moving it out of the proprietary RealNetworks format into the widely supported MP4/H.264 standard
- Sharing old RealMedia home videos or presentations with colleagues or family members who have no way to play .rm files on their current systems
Frequently Asked Questions
Yes, some quality loss is unavoidable because this is a full transcode — the original video and audio are fully decoded and re-encoded rather than copied. RealMedia is already a lossy format, so the source is not lossless to begin with. The default CRF 23 setting for libx264 produces good visual quality for most content, and in many cases the H.264 output may actually look comparable to or better than aged RealVideo encoding at equivalent bitrates. If quality is critical, lower the CRF value (e.g., to 18) in the FFmpeg command.
Renaming the file only changes the file extension — it does not change the actual data inside. The RealMedia container and its codec streams remain unchanged, and modern players will still fail to read it because they lack support for the RealNetworks format. A real conversion using FFmpeg is required to decode the original streams and re-encode them into H.264/AAC inside an MP4 container.
The RealMedia format does not support embedded subtitle tracks or chapter markers in the way modern containers do, so there is nothing of that kind to lose during conversion. The output MP4 container does support subtitles and chapters, but since none existed in the source .rm file, the converted file will not contain them either. If you need to add subtitles, you would do so as a separate step after conversion.
To control video quality, change the -crf value in the command — lower numbers mean better quality and larger file sizes, with 0 being visually lossless and 51 being the worst. A value between 18 and 23 is typically recommended for good quality. To change audio quality, modify the -b:a value, for example replacing 128k with 192k or 256k for higher fidelity audio output from the transcoded AAC stream.
Yes. On Linux or macOS, you can run a shell loop such as: for f in *.rm; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k -movflags +faststart "${f%.rm}.mp4"; done — this processes every .rm file in the current directory. On Windows Command Prompt, use: for %f in (*.rm) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k -movflags +faststart "%~nf.mp4". The browser-based tool processes one file at a time, so the FFmpeg command is especially useful for bulk conversions of large archives.
The output quality is fundamentally limited by the quality of the source .rm file. RealMedia files from the late 1990s and early 2000s were often encoded at very low bitrates (sometimes under 100 kbps total) specifically for dial-up internet streaming, meaning the original video was heavily compressed. Re-encoding cannot recover detail that was discarded during the original RealVideo encoding. If the output looks poor, it is almost certainly a reflection of the source material rather than a problem with the conversion settings.
Technical Notes
RealMedia (.rm) files were designed by RealNetworks primarily for low-bandwidth streaming over dial-up and early broadband connections, which means source files are often encoded at aggressively low bitrates with significant compression artifacts baked in. FFmpeg's support for reading RealMedia and RealVideo is mature but depends on the specific codec variant — MJPEG-based .rm files decode cleanly, while some older RealVideo 1.0/2.0 or RealVideo 8/9/10 streams may decode with minor artifacts due to the proprietary nature of the codecs. The -movflags +faststart flag is applied to the output MP4, which is particularly valuable if the converted file will be served over the web, as it enables playback to begin before the full file downloads. Metadata such as title or author tags embedded in the RealMedia container may not transfer to the MP4 output, as RealNetworks used a proprietary metadata structure. The RealMedia format does not support transparency, multiple audio tracks, subtitles, or chapters, so none of these considerations affect this conversion. File sizes of the output MP4 will vary widely depending on the content and source bitrate, but H.264 at CRF 23 is generally more efficient than legacy RealVideo encoding, sometimes resulting in a smaller file at better perceptual quality.