Convert RM to Y4M — Free Online Tool

Convert RealMedia (.rm) files to YUV4MPEG2 (.y4m) format by decoding the MJPEG or AAC-encoded streams inside the legacy RM container into fully uncompressed raw video frames. This is the go-to path for extracting pristine, pixel-perfect video data from old RealMedia archives for use in professional video processing pipelines.

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

RealMedia files store video using lossy codecs — most commonly MJPEG — inside RealNetworks' proprietary container. During this conversion, FFmpeg fully decodes every compressed video frame from the RM container, decompressing the MJPEG data into raw YUV pixel values. These uncompressed frames are then written sequentially into the Y4M (YUV4MPEG2) container using the rawvideo codec. No re-compression occurs on the output side — Y4M is purely a wrapper for uncompressed frame data. Audio is dropped entirely, since Y4M has no audio track support. The result is a lossless-at-output file that is very large but carries no further generation loss, making it ideal as an intermediate for further processing or encoding.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine running here as a WebAssembly module in your browser, and available as a desktop command-line tool for processing files over 1GB locally.
-i input.rm Specifies the input RealMedia file. FFmpeg reads the proprietary RealNetworks container, identifies the video stream (MJPEG) and any audio stream (AAC or MP3), and prepares them for processing.
-c:v rawvideo Instructs FFmpeg to write the video output using the rawvideo codec — meaning each decoded MJPEG frame from the RM file is written as fully uncompressed YUV pixel data, which is exactly what the Y4M container expects.
output.y4m Specifies the output file with the .y4m extension. FFmpeg infers the YUV4MPEG2 container format from this extension and writes the uncompressed frame sequence with a Y4M header containing frame rate, resolution, and chroma subsampling metadata read from the source RM file.

Common Use Cases

  • Feeding decoded RealMedia video into a command-line encoding pipeline (e.g., piping into x264 or AV1 encoders) without intermediate lossy re-encoding steps
  • Archiving the fully decoded pixel content of legacy RealMedia broadcast or news footage for digital preservation projects where the original RM format is no longer reliably playable
  • Importing old RealMedia video clips into professional tools like DaVinci Resolve or Avisynth that accept Y4M as a clean intermediate format
  • Performing frame-accurate analysis or quality measurement (PSNR, SSIM) on RealMedia-encoded video by decoding it to uncompressed Y4M for comparison against a reference source
  • Stripping the proprietary RealNetworks container from MJPEG-encoded content to produce a format-agnostic raw video stream for custom processing scripts
  • Preparing legacy streaming video content from the late 1990s or early 2000s for upscaling or restoration workflows that require uncompressed input

Frequently Asked Questions

No — the quality ceiling is set permanently by the original MJPEG encoding inside the RealMedia file. Y4M is an uncompressed output format, so no further quality is lost during this conversion, but the artifacts and resolution limitations baked into the MJPEG-compressed source are preserved exactly. Think of Y4M as a lossless snapshot of the decoded RM content, not a quality upgrade.
RealMedia stores video in a compressed form using MJPEG, which can achieve compression ratios of 10:1 or more. Y4M stores every frame as raw, uncompressed YUV pixel data with no compression whatsoever. A one-minute RealMedia clip that might be 10–30 MB can expand to several gigabytes in Y4M format. This is expected and intentional — Y4M is designed as an intermediate format, not for long-term storage.
The audio is dropped completely. Y4M is a video-only format with no provision for audio streams, so FFmpeg cannot include the AAC or MP3 audio from the RealMedia container in the output. If you need the audio, you should extract it separately using a command like 'ffmpeg -i input.rm -vn -c:a copy output.aac' before or after this conversion.
Yes — Y4M was specifically designed for piping between applications, which is one of its primary use cases. You can modify the FFmpeg command to write to stdout using 'ffmpeg -i input.rm -c:v rawvideo -f yuv4mpegpipe pipe:1 | x265 --y4m -' to encode the decoded RealMedia frames directly into a modern codec without writing a large intermediate file to disk.
On Linux or macOS, you can use a shell loop: 'for f in *.rm; do ffmpeg -i "$f" -c:v rawvideo "${f%.rm}.y4m"; done'. On Windows Command Prompt, use 'for %f in (*.rm) do ffmpeg -i "%f" -c:v rawvideo "%~nf.y4m"'. Be aware that batch converting to Y4M will consume enormous disk space quickly due to the uncompressed output size.
Yes — FFmpeg reads the frame rate and YUV color space information from the RealMedia container and embeds them into the Y4M file header automatically. The Y4M header stores fields for frame rate, interlacing, aspect ratio, and chroma subsampling (typically 4:2:0 for MJPEG-sourced content), so downstream tools that read the Y4M file will receive accurate timing and color metadata.

Technical Notes

RealMedia's MJPEG video codec stores each frame as an independent JPEG-compressed image, which means there are no inter-frame dependencies — every frame decodes independently. This actually makes RM-to-Y4M conversion straightforward for FFmpeg, as there is no need to manage reference frames or GOP structure. The output Y4M chroma subsampling will typically be 4:2:0, matching the MJPEG source's subsampling. Y4M does not support transparency, subtitles, chapters, or multiple audio tracks — none of which RM supports either, so no metadata is silently lost beyond the audio stream. One important limitation: very old or non-standard RealMedia files may use RealVideo codecs (RV10, RV20, RV30, RV40) rather than MJPEG; these are less well supported by modern FFmpeg builds, and decoding may fail or produce artifacts depending on your FFmpeg version. The files processed by this tool are the subset of RM files using MJPEG video. Because Y4M files are uncompressed, storing them long-term is impractical — they are best used as transient intermediates in a pipeline and deleted after the final encode is complete.

Related Tools