Convert FLV to RM — Free Online Tool
Convert FLV files to RealMedia (RM) format directly in your browser, re-encoding the video stream to MJPEG and the audio to AAC. This conversion bridges two historically distinct streaming eras — Flash Video from the mid-2000s web and RealNetworks' earlier streaming ecosystem — making it useful for legacy archival or compatibility with older RealPlayer-based systems.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your FLV 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
FLV files typically carry H.264 (libx264) video and AAC or MP3 audio. Because the RM container only supports MJPEG for video, the video stream must be fully re-encoded from the H.264 codec into MJPEG — a frame-based lossy compression format that encodes each frame as an independent JPEG image, with no inter-frame prediction. This means the output file will generally be significantly larger than the input for equivalent visual quality, and the motion smoothness characteristic of H.264 is replaced by MJPEG's intra-frame-only compression. The audio stream, if already AAC, is re-encoded at the target bitrate into the RM container's AAC track. No metadata, subtitles, or chapter data from the FLV is carried over, as neither format supports rich metadata interchange in this pipeline.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool — in the browser, this runs as FFmpeg.wasm compiled to WebAssembly, executing entirely on your local machine without any server upload. On the desktop, this calls your locally installed FFmpeg binary. |
-i input.flv
|
Specifies the input Flash Video file. FFmpeg reads the FLV container and demuxes the H.264 (or FLV1) video stream and AAC or MP3 audio stream for processing. |
-c:v mjpeg
|
Sets the video codec to MJPEG (Motion JPEG), re-encoding every frame from the H.264-compressed FLV video into an independent JPEG-compressed image. This is the only video codec supported for RM output in FFmpeg, and it fundamentally changes how compression works — from inter-frame to intra-frame only. |
-c:a aac
|
Re-encodes the audio stream to AAC, the default audio codec for this RM output. Even if the source FLV already uses AAC, the audio is decoded and re-encoded to fit the RM container's audio packetization requirements. |
-q:v 5
|
Controls MJPEG video quality on a scale from 1 (best quality, largest file) to 10 (worst quality, smallest file). A value of 5 is the balanced default; because MJPEG encodes each frame as a JPEG, this directly maps to the JPEG quantization tables applied to every frame in the output RM file. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, a standard quality level suitable for stereo speech and music content. This is the target bitrate for the re-encoded audio track within the RM container; the maximum supported bitrate for this output format is 256k. |
output.rm
|
Specifies the output filename with the .rm extension, which tells FFmpeg to use the RealMedia muxer to package the MJPEG video and AAC audio streams into a RealNetworks RM container file. |
Common Use Cases
- Archiving old Flash-era web video clips into RealMedia format for compatibility with legacy RealPlayer installations on preserved retro computing systems
- Preparing video content for ingest into older broadcast or media management systems that were built around RealNetworks infrastructure and only accept RM files
- Converting FLV recordings from early 2000s-era screen capture or webcam tools into RM format for storage alongside existing RealMedia archives
- Generating MJPEG-encoded video from FLV source footage for use in industrial or embedded systems that require MJPEG streams in an RM wrapper
- Creating RealMedia versions of Flash video content for educational or museum digital preservation projects documenting early internet media formats
- Extracting and repackaging FLV web content into RM format for playback in controlled legacy software environments where Flash Player is unavailable
Frequently Asked Questions
This is expected and is a direct consequence of the codec change. FLV files using H.264 compress video very efficiently using inter-frame prediction — each frame is encoded relative to neighboring frames. MJPEG, the only video codec supported in this RM output, compresses each frame independently as a JPEG image with no reference to surrounding frames. This intra-frame-only approach requires far more data to represent the same motion content, often resulting in output files several times larger than the H.264-encoded source, even at equivalent or lower visual quality.
Yes, there will be a noticeable quality difference. The H.264 video in your FLV is re-encoded to MJPEG, which produces a distinctive JPEG-artifact look — blocky compression visible especially in areas of fine detail or motion. The default -q:v 5 setting is a mid-range MJPEG quality; lower values (closer to 1) improve quality at the cost of larger file size, while higher values (up to 10) reduce file size but increase visible JPEG compression artifacts. Because this is a lossy-to-lossy transcode, some quality loss is unavoidable.
RealMedia support in modern players is limited. VLC Media Player is the most reliable modern option and can typically play RM files with MJPEG video and AAC audio. Most other contemporary players — including Windows Media Player on modern Windows, QuickTime, and browser-based players — do not natively support RM. The format was designed for the RealPlayer ecosystem, which is largely deprecated, so if broad playback compatibility is your goal, RM is not the right output format.
Yes, the audio is always re-encoded in this conversion. Even if the source FLV already contains AAC audio, it must be decoded and re-encoded into the RM container at the specified bitrate (default 128k). This is because the RM container uses its own audio packetization and the FFmpeg pipeline does not stream-copy AAC directly into RM without re-encoding. This introduces a small additional generation of quality loss on the audio side, though at 128k AAC the difference is typically not perceptible.
Change the -q:v value in the command to control MJPEG quality. The scale runs from 1 (highest quality, largest file) to 10 (lowest quality, smallest file), with 5 as the default. For example, replacing -q:v 5 with -q:v 2 will produce noticeably sharper frames with fewer JPEG artifacts but a significantly larger output file. Note that this quality scale is specific to MJPEG and works differently from the -crf parameter used for H.264 in the original FLV — lower numbers always mean better quality here.
Yes, on the command line you can use a shell loop to process multiple files. On Linux or macOS, you can run: for f in *.flv; do ffmpeg -i "$f" -c:v mjpeg -c:a aac -q:v 5 -b:a 128k "${f%.flv}.rm"; done. On Windows Command Prompt, use: for %f in (*.flv) do ffmpeg -i "%f" -c:v mjpeg -c:a aac -q:v 5 -b:a 128k "%~nf.rm". The browser-based tool processes one file at a time, but the displayed FFmpeg command is designed to be run locally for batch operations or for files larger than 1GB.
Technical Notes
The FLV-to-RM conversion is an entirely re-encoded, lossy-to-lossy transcode with no stream-copy possible for either track. The RM container's video codec support is restricted to MJPEG in FFmpeg's implementation, meaning the efficient temporal compression of H.264 (which exploits similarities between frames) is entirely discarded in favor of MJPEG's per-frame JPEG encoding. This has significant implications for both file size and perceptual quality on motion-heavy content. RealMedia's RM container does not support transparency, embedded subtitles, chapter markers, or multiple audio tracks, so any such data in the source FLV is silently dropped during conversion. The format was historically associated with RealNetworks' proprietary RTSP streaming infrastructure; while the container technically includes streaming features, modern streaming infrastructure does not use RM. FFmpeg's RM muxer has limited active development, and some edge cases — such as unusual FLV frame rates or non-standard audio sample rates — may require additional flags like -r to explicitly set the output frame rate. The audio bitrate cap for this RM output is 256k, lower than FLV's potential ceiling, which is a container-level limitation.