Convert RM to FLV — Free Online Tool

Convert RealMedia (.rm) files to Flash Video (.flv) format using H.264 video encoding and AAC audio — re-encoding the legacy MJPEG or RealVideo stream into a modern, web-compatible codec pair. Ideal for rescuing archived RealMedia content from the late 1990s and 2000s and making it playable in contemporary Flash-based or web workflows.

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 typically contain video encoded with RealVideo or MJPEG and audio encoded with RealAudio or AAC. During this conversion, the video stream is fully re-encoded from the source codec (often MJPEG in this context) into H.264 (libx264) — a far more efficient modern codec — using a Constant Rate Factor of 23, which balances file size and visual quality. The audio stream is transcoded to AAC at 128k bitrate, which is compatible with the FLV container. The output FLV container wraps these streams in Adobe's Flash Video format, historically used for web delivery via Flash Player. Because both the video and audio are re-encoded rather than copied, this is a full transcode: expect some generation loss, but significantly better compression and broader compatibility than the original RM format.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that handles all demuxing, decoding, encoding, and muxing steps in this RM-to-FLV conversion.
-i input.rm Specifies the input RealMedia file. FFmpeg will demux the .rm container to extract the MJPEG video stream and AAC or RealAudio audio stream for subsequent transcoding.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, replacing the source MJPEG frames with a modern inter-frame compressed video stream that the FLV container can deliver far more efficiently over the web.
-c:a aac Transcodes the audio stream to AAC using FFmpeg's built-in AAC encoder, which is natively supported by the FLV container and compatible with Flash Player's audio decoding pipeline.
-crf 23 Sets the Constant Rate Factor for the H.264 encoder to 23, the standard default that targets visually good quality without excessive file size — appropriate for converting legacy MJPEG content where the source quality ceiling is already limited.
-b:a 128k Sets the AAC audio output bitrate to 128 kilobits per second, a standard stereo quality level that is compatible with all Flash Player versions supporting AAC and appropriate for the typical audio quality found in legacy RealMedia files.
output.flv Specifies the output filename and tells FFmpeg to mux the encoded H.264 video and AAC audio into an FLV (Flash Video) container, Adobe's format historically used for browser-based video delivery via Flash Player.

Common Use Cases

  • Migrating archived RealMedia video lectures or educational content from the late 1990s and early 2000s into FLV format for use in legacy Flash-based e-learning platforms that do not support RM input
  • Recovering old RealMedia news clips or documentary footage saved from early internet streaming services and converting them to FLV for upload to older video hosting systems that require Flash Video
  • Preparing RM files from legacy media archives for integration into Flash-based multimedia CD-ROM or kiosk presentations that require FLV as their video source format
  • Converting RealMedia interview recordings or corporate training videos originally distributed via RealPlayer into FLV so they can be embedded in older CMS platforms with built-in JW Player or Flowplayer integration
  • Batch-processing a collection of .rm files from a personal digital archive into FLV to consolidate legacy streaming media into a single, more interoperable container format before further processing

Frequently Asked Questions

Yes, some quality loss is unavoidable because this is a full transcode — both the video and audio streams are decoded and re-encoded. However, the H.264 codec used in the output FLV is significantly more efficient than the MJPEG or RealVideo codec in the source RM file, meaning the output can actually look comparable or better at the same file size. The default CRF value of 23 is a reasonable middle ground; lower CRF values (e.g., 18) will produce higher quality at the cost of larger file size.
While FLV containers can technically hold video encoded with the older Sorenson Spark (FLV1) codec, H.264 (libx264) is the strongly preferred choice because it offers far superior compression efficiency and image quality. Flash Player 9 Update 3 and later fully support H.264 inside FLV, so unless you are targeting extremely old Flash Player versions, H.264 is the correct codec to use for any modern FLV workflow.
RealMedia was purpose-built for HTTP progressive streaming via RealServer/Helix, and FLV has its own HTTP progressive delivery and RTMP streaming capabilities. The converted FLV file will be compatible with Flash-based streaming infrastructure, but the proprietary RealNetworks streaming metadata and SureStream multi-bitrate information embedded in the original RM file will not carry over — the FLV output is a single-bitrate file without adaptive streaming support.
Yes — adjust the -crf flag to control H.264 video quality. The CRF scale runs from 0 (lossless) to 51 (worst quality), with 23 as the default. For better quality at a larger file size, try -crf 18; for a smaller file with slightly lower quality, try -crf 28. You can also raise the audio bitrate by changing -b:a 128k to -b:a 192k or -b:a 256k if the source audio justifies it.
On Linux or macOS, you can run a shell loop: for f in *.rm; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.rm}.flv"; 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.flv". This applies the same conversion settings to every .rm file in the current directory, outputting a matching .flv file for each.
No. Neither the RealMedia input format nor the FLV output format supports subtitle tracks or chapter markers in this conversion pipeline. Any timed text or navigation metadata that may have been embedded or delivered alongside the original RM stream will be lost in the output FLV file, which contains only a single video and audio stream.

Technical Notes

RealMedia (.rm) is a proprietary container from RealNetworks primarily associated with early internet streaming. In this conversion context, the source video codec is MJPEG — a frame-by-frame JPEG compression scheme that produces large file sizes compared to modern inter-frame codecs. The output H.264 stream in the FLV container uses temporal compression (P-frames and B-frames), which is why the resulting FLV file will often be substantially smaller than the source RM file even at high quality settings. The FLV container does not support transparency, multiple audio tracks, subtitles, or chapters — matching the limitations of the RM source in most of these areas. One known limitation is that very old or malformed RealMedia files created by early RealEncoder versions may contain non-standard stream headers that FFmpeg struggles to parse correctly; if you encounter decoding errors, adding -analyzeduration 100M -probesize 100M before the -i flag can help FFmpeg fully scan the file's stream metadata. Audio from RM files encoded with RealAudio (COOK, ATRAC, or RA28.8 codecs) will be transcoded through FFmpeg's decoder pipeline to AAC — these older RealAudio codecs are supported but may produce minor artifacts if the source bitrate was very low (e.g., 20–32k mono streams common in early internet radio clips).

Related Tools