Convert RM to 3GPP — Free Online Tool

Convert RealMedia (.rm) files to 3GPP (.3gp) format for playback on mobile devices, re-encoding the legacy RealVideo/RealAudio streams into H.264 video and AAC audio — codecs natively supported by 3G-era and modern smartphones. Ideal for rescuing old streaming-era content and making it accessible on contemporary mobile hardware.

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 use proprietary RealVideo and RealAudio codecs that are not supported by the 3GPP container or modern mobile devices. This conversion is a full transcode: the video stream is decoded from its RealMedia-compatible format (here MJPEG) and re-encoded using the libx264 H.264 encoder, while the audio is decoded and re-encoded into AAC at 64kbps — a bitrate well-suited for the bandwidth-conscious 3GPP format. The -movflags +faststart flag rearranges the output file's metadata to the front of the file, enabling progressive playback on mobile devices before the full file has downloaded. Because both the input and output are lossy formats, this is a generation loss conversion — quality from the original RealMedia encode cannot be fully recovered.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg command-line tool. In this browser-based tool, the equivalent FFmpeg.wasm (WebAssembly) binary runs entirely in your browser — no server is involved. The same command can be run locally on your desktop if you have FFmpeg installed.
-i input.rm Specifies the input RealMedia file. FFmpeg uses its built-in RealMedia demuxer to parse the proprietary .rm container and expose the encoded video and audio streams for decoding and re-encoding.
-c:v libx264 Selects the libx264 encoder to re-encode the video stream as H.264, the standard video codec for 3GPP. This replaces the RealVideo or MJPEG-encoded video from the source with a widely compatible, efficient H.264 stream that 3G mobile devices can decode in hardware.
-c:a aac Re-encodes the audio stream using FFmpeg's native AAC encoder, replacing the proprietary RealAudio codec from the source. AAC is the required audio codec for 3GPP files and is supported natively by virtually all mobile devices.
-crf 23 Sets the Constant Rate Factor for the H.264 encode to 23, which is the libx264 default and provides a balanced quality-to-file-size ratio suitable for mobile screens. Lower values (e.g., 18) produce higher quality at larger file sizes; higher values (e.g., 28) shrink the file but increase compression artifacts — important when targeting 3G bandwidth limits.
-b:a 64k Sets the AAC audio bitrate to 64 kilobits per second, the standard for 3GPP audio targeting 3G mobile delivery. This is intentionally lower than typical web audio defaults because 3GP was designed for constrained mobile bandwidth, and AAC at 64kbps remains intelligible for speech and adequate for mono or stereo mobile playback.
-movflags +faststart Moves the 3GP file's metadata index (moov atom) to the beginning of the output file after encoding completes. This enables the mobile device or streaming server to begin playing the video before the entire file is downloaded — a critical optimization for a format explicitly designed for mobile network streaming.
output.3gp Specifies the output filename with the .3gp extension, which signals FFmpeg to use the 3GPP muxer to wrap the H.264 video and AAC audio into the standardized 3GPP container format compatible with mobile devices and 3G-era media players.

Common Use Cases

  • Recovering old RealMedia video recordings from the late 1990s or early 2000s and converting them for playback on an Android or feature phone that supports 3GP but has no RealPlayer installed.
  • Preparing archived RealMedia streaming video content for distribution or storage in a more mobile-friendly format, especially when the target audience uses low-bandwidth 3G connections.
  • Converting RealMedia instructional or lecture recordings from early e-learning platforms into 3GP files compatible with older Nokia, Samsung, or Sony Ericsson handsets still in use in some regions.
  • Reducing the file size of legacy RealMedia video clips for MMS sharing or embedding in applications designed for 3G mobile networks with strict payload size limits.
  • Migrating a personal archive of RealMedia sports or news clips downloaded from early streaming sites into a format that can be indexed and played back on modern mobile media players.
  • Running an automated batch conversion pipeline to transcode a library of .rm files from a decommissioned RealServer into 3GP for long-term mobile-compatible archival storage.

Frequently Asked Questions

Yes — this is an unavoidable generation loss conversion. The original RealMedia file was already compressed using lossy RealVideo/RealAudio codecs, and the 3GP output re-compresses that decoded content again using H.264 and AAC. The default CRF of 23 for H.264 and 64kbps for AAC are conservative settings tuned for mobile devices, so visual and audio quality will be noticeably lower than modern high-bitrate formats. If preserving as much quality as possible is the priority, lower the CRF value (e.g., to 18) and raise the audio bitrate to 96k or 128k in the FFmpeg command.
3GPP was designed for 3G mobile networks where bandwidth was severely limited, so low audio bitrates are a core design principle of the format. At 64kbps, AAC audio is actually quite intelligible for speech and acceptable for music on small mobile speakers. The source RealMedia file likely used RealAudio at a similarly low bitrate for streaming purposes, so the perceived quality difference may be minimal. If you need better audio fidelity, you can increase the bitrate to 96k or 128k in the FFmpeg command, though this will increase file size.
3GP files are broadly compatible with modern Android devices, which natively support the format through the built-in media framework. iOS support for 3GP is more limited and has historically been inconsistent, so playback on iPhones may require a third-party app like VLC. If your target is modern smartphones in general, consider converting the RM file to MP4 instead, which uses the same H.264/AAC codecs but has near-universal support across all platforms.
The -movflags +faststart flag moves the moov atom (the file's index and metadata) from the end of the file to the beginning. In the default output, FFmpeg writes this metadata at the end after encoding is complete. By moving it to the front, the 3GP file can begin playing on a mobile device as soon as enough data has been received, without needing to buffer the entire file first. This is especially important for 3GP since the format is specifically intended for streaming over mobile networks.
Video quality is controlled by the -crf flag, which accepts values from 18 (higher quality, larger file) to 28 (lower quality, smaller file), with 23 as the default. To reduce file size for MMS or upload limits, increase the CRF to 26 or 28. To maximize quality at the cost of file size, lower it to 18 or 19. Audio size can be reduced by changing -b:a 64k to -b:a 32k or 48k. For example: ffmpeg -i input.rm -c:v libx264 -c:a aac -crf 26 -b:a 48k -movflags +faststart output.3gp
RealMedia files can embed metadata like title, author, and copyright fields in their proprietary header format. FFmpeg will attempt to map recognized metadata fields to the 3GP/MP4-compatible metadata atoms during conversion, but RealMedia's metadata schema is non-standard and some fields may be dropped or not correctly transferred. If metadata preservation is important, verify the output with ffprobe or a tag editor after conversion, and manually re-apply any missing tags using FFmpeg's -metadata flag.

Technical Notes

RealMedia (.rm) files were designed exclusively for RealNetworks' streaming ecosystem and use proprietary codecs — RealVideo and RealAudio — that are not natively readable by the 3GPP container. FFmpeg has limited but functional decoding support for older RealMedia variants, meaning the input can be decoded even without RealPlayer installed. In this tool's configuration, the input video is handled as MJPEG (a common intra-frame codec found in some RM variants) and transcoded to H.264 via libx264. The 3GPP container is technically a restricted profile of the MPEG-4 Part 12 container (sharing the same ISO Base Media File Format as MP4), which is why the -movflags +faststart flag — normally associated with MP4 — applies here as well. Notably, 3GP does not support subtitles, chapters, or multiple audio tracks, so any such streams present in the RM source will be silently dropped. Transparency is not a concern for either format. Because RealMedia files from the streaming era were often encoded at very low resolutions (e.g., 320x240 or 176x144) and low frame rates for dial-up or early broadband delivery, upscaling is not recommended — the 3GP output should target the same or similar resolution as the source to avoid introducing blocking artifacts from the H.264 re-encode of already-degraded RealVideo frames.

Related Tools