Convert RMVB to MPEG — Free Online Tool

Convert RMVB files to MPEG format by re-encoding the video stream to MPEG-2 and the audio to MP2 — producing a broadly compatible legacy video file suited for broadcast systems, older hardware players, and DVD-authoring workflows. RMVB's variable-bitrate RealVideo compression is fully decoded and rewritten into the standardized MPEG program stream container.

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

RMVB (RealMedia Variable Bitrate) stores video using RealNetworks' proprietary RealVideo codec, which is incompatible with the MPEG container. This means a full re-encode is required: FFmpeg decodes the RealVideo stream from scratch and re-encodes every frame using the MPEG-2 video codec (mpeg2video), which uses discrete cosine transform (DCT) compression and a fixed GOP structure rather than RMVB's adaptive variable-bitrate approach. The audio — often encoded as AAC or MP3 in RMVB — is similarly re-encoded to MP2 (MPEG Audio Layer II), the standard audio format for MPEG-2 program streams. The result is a .mpeg file using a standardized program stream structure that legacy decoders, broadcast equipment, and DVD tools can reliably read.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles the full decode-and-reencode pipeline — reading the proprietary RealMedia Variable Bitrate container, demuxing its streams, and writing them out to the MPEG program stream format.
-i input.rmvb Specifies the input file — an RMVB (RealMedia Variable Bitrate) file. FFmpeg will use its RealMedia demuxer and the appropriate RealVideo decoder to read the video and audio streams from this proprietary container.
-c:v mpeg2video Sets the video codec for the output to MPEG-2 Video, re-encoding every frame from the decoded RealVideo source into the standardized MPEG-2 compression format required by the .mpeg program stream container.
-c:a mp2 Re-encodes the audio stream to MP2 (MPEG Audio Layer II), which is the native and most compatible audio codec for MPEG program streams — replacing whatever audio format (typically AAC or MP3) the source RMVB file contained.
-q:v 2 Sets the MPEG-2 video quality using the quantizer scale, where 1 is the highest possible quality and 31 is the lowest. A value of 2 targets near-maximum quality, allowing the encoder to use a high bitrate to faithfully represent the decoded RealVideo frames with minimal MPEG-2 compression artifacts.
-b:a 192k Sets the MP2 audio bitrate to 192 kilobits per second, which is the standard bitrate for broadcast-quality MPEG-2 audio and provides a good balance of fidelity and file size for the converted audio stream.
output.mpeg Specifies the output filename and container. The .mpeg extension tells FFmpeg to write an MPEG program stream, which packages the re-encoded MPEG-2 video and MP2 audio into a format compatible with legacy players, broadcast ingest systems, and DVD-authoring tools.

Common Use Cases

  • Importing old RMVB downloads from early-2000s file-sharing networks into DVD-authoring software like DVD Flick or Nero Vision, which requires MPEG-2 video input
  • Playing back RealMedia video content on legacy hardware media players and set-top boxes that support MPEG-2 but have no RealVideo decoder
  • Archiving a collection of RMVB files into a more universally readable format before RealVideo codec support disappears from modern operating systems
  • Preparing RMVB-sourced footage for integration into broadcast editing systems that accept MPEG-2 program streams as an ingest format
  • Converting RMVB tutorial or lecture videos into MPEG so they can be played back on older computers in educational institutions without internet access or codec packs
  • Migrating video content from a RealPlayer-era media library into a format compatible with video kiosk or digital signage hardware running legacy MPEG-2 playback firmware

Frequently Asked Questions

Yes, some quality loss is inevitable. RMVB files are already lossy — encoded with RealVideo's proprietary compression — so transcoding to MPEG-2 means a second generation of lossy compression is applied. The degree of quality loss depends on the source RMVB's original bitrate and the -q:v setting used for the MPEG-2 output. At the default -q:v 2 (the highest quality end of MPEG-2's scale), the output will be as faithful to the source as MPEG-2 can represent, but fine detail from the original RealVideo encode may degrade slightly due to the different codec characteristics.
The MPEG program stream format has strict audio codec constraints — it is designed around MP2 (MPEG Audio Layer II) and MP3 as its primary audio formats, which is why FFmpeg transcodes the audio to MP2 by default. RMVB files commonly carry AAC or MP3 audio, neither of which can be natively embedded in a standard .mpeg program stream without compatibility issues. MP2 at 192k provides solid audio fidelity and is the standard choice for MPEG-2 broadcast and DVD-compatible streams.
Change the -q:v value in the command. The MPEG-2 quality scale runs from 1 (best quality, largest file) to 31 (lowest quality, smallest file), with 2 as the default here. For example, use -q:v 4 for a smaller file with slightly lower quality, or -q:v 1 to push for the absolute maximum quality the codec can produce. Unlike the CRF scale used for H.264, lower numbers always mean higher quality in MPEG-2's -q:v parameter.
Yes. On Linux or macOS, you can run a shell loop: for f in *.rmvb; do ffmpeg -i "$f" -c:v mpeg2video -c:a mp2 -q:v 2 -b:a 192k "${f%.rmvb}.mpeg"; done. On Windows Command Prompt, use: for %f in (*.rmvb) do ffmpeg -i "%f" -c:v mpeg2video -c:a mp2 -q:v 2 -b:a 192k "%~nf.mpeg". This applies the same conversion settings to every RMVB file in the current directory and names each output after its source file.
RMVB was specifically engineered for efficient file size using RealNetworks' variable-bitrate compression, making it a popular format for distributing compressed video at small file sizes. MPEG-2, by contrast, is a broadcast-heritage codec optimized for quality and compatibility rather than compression efficiency — it typically requires significantly higher bitrates to represent the same content. At -q:v 2, FFmpeg allows MPEG-2 to use whatever bitrate it needs to maintain high quality, which will usually result in a noticeably larger file than the original RMVB.
RMVB can store basic metadata in RealMedia's proprietary container fields, but the MPEG program stream format has very limited metadata support and does not have standardized equivalents for most of these tags. FFmpeg will attempt to map recognized metadata fields during the conversion, but in practice most RMVB metadata is lost in the output .mpeg file. If preserving metadata is important, consider converting to a more metadata-capable container like MKV or MP4 instead.

Technical Notes

RMVB's defining characteristic is its variable-bitrate allocation — the RealVideo encoder dynamically assigns more bits to complex scenes and fewer to static ones, enabling relatively small file sizes. When converting to MPEG, this adaptive strategy is completely discarded: MPEG-2 video (mpeg2video in FFmpeg) uses a fixed GOP (Group of Pictures) structure with I, P, and B frames, and quality is controlled via the quantizer scale (-q:v) rather than a target bitrate or CRF curve. The MPEG program stream (.mpeg) container does not support transparency, subtitle streams, chapter markers, or multiple audio tracks, so any such data in the RMVB source will be silently dropped. The audio re-encode from whatever RMVB carried (typically AAC or MP3) to MP2 introduces a small additional quality loss but is necessary for MPEG program stream compliance. One important limitation: very old or obscure RMVB files encoded with early RealVideo 3 or RealVideo 4 variants may require the 'realvideo' decoder and may expose seek or timestamp irregularities during the decode phase; if the output has audio/video sync issues, adding -vsync 1 to the command can help stabilize frame timing.

Related Tools