Extract Audio from RM to AAC — Free Online Tool
Extract the audio track from legacy RealMedia (.rm) files and save it as a modern AAC (.aac) file — perfect for rescuing audio from old streaming-era content. This tool strips the video stream entirely and re-encodes the embedded AAC or MP3 audio using the AAC codec at 128k bitrate, giving you a clean, portable audio file compatible with virtually any modern device.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your RM 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
RealMedia files from the late 1990s and early 2000s typically contain audio encoded with RealAudio, AAC, or MP3 codecs inside RealNetworks' proprietary container. During this conversion, FFmpeg reads the .rm container, discards the video stream entirely using the -vn flag, and re-encodes the audio stream to AAC inside a raw .aac file. Because the RealMedia container is not directly compatible with modern AAC packaging, a full audio transcode is performed rather than a simple stream copy — meaning the audio is decoded and then re-encoded at 128k bitrate. The output is a standard MPEG-4 AAC bitstream, which is natively supported by iPhones, Android devices, iTunes, and most streaming platforms.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool, which handles all demuxing, decoding, encoding, and muxing operations in this conversion pipeline. |
-i input.rm
|
Specifies the input RealMedia file. FFmpeg uses its RealMedia demuxer to parse the proprietary .rm container and expose the audio and video streams for processing. |
-vn
|
Disables video output entirely, telling FFmpeg to ignore any video stream present in the .rm file. Since the goal is audio extraction, this prevents any video data from being processed or written to the output. |
-c:a aac
|
Selects FFmpeg's built-in native AAC encoder to encode the audio stream. This transcodes whatever audio codec was stored in the RealMedia container (RealAudio, MP3, or AAC) into a standard AAC bitstream compatible with modern devices and platforms. |
-b:a 128k
|
Sets the AAC audio output bitrate to 128 kilobits per second, which is a broadly accepted balance between file size and audio quality — sufficient for voice, podcasts, and general music listening from legacy streaming-quality sources. |
output.aac
|
Defines the output filename with the .aac extension, which tells FFmpeg to write a raw AAC Elementary Stream. This format is natively playable on iOS, Android, macOS, and most modern audio software without any additional plugins or codecs. |
Common Use Cases
- Recovering audio from archived RealMedia lecture recordings or educational content downloaded during the early internet era
- Extracting music or radio broadcasts that were originally distributed as .rm streaming files in the late 1990s and early 2000s
- Converting old RealMedia podcasts or talk radio recordings into a format playable on modern smartphones without installing legacy RealPlayer software
- Preparing audio from historical RealMedia news clips or interviews for use in documentary productions or research archives
- Digitizing personal .rm audio files saved from early peer-to-peer networks so they can be imported into modern music libraries like iTunes or Apple Music
- Extracting the audio commentary track from a RealMedia video file to create a standalone audio guide or narration file
Frequently Asked Questions
Some .rm files do contain AAC audio tracks, while others use RealAudio or MP3. Regardless of the internal codec, FFmpeg must fully decode and re-encode the audio because the raw RealMedia container format is not compatible with the output .aac file format. Even if the source audio is already AAC, a stream copy is not possible here — the audio must be transcoded. This means conversion time is slightly longer than a simple remux, but the output is a clean, universally compatible AAC file.
Replace the -b:a 128k value with a higher bitrate such as 192k, 256k, or 320k. For example: ffmpeg -i input.rm -vn -c:a aac -b:a 192k output.aac. Higher bitrates produce better audio fidelity and larger file sizes, but keep in mind that if your source .rm file was encoded at a low bitrate (e.g., 32k or 64k, common for early internet streaming), increasing the output bitrate won't recover detail that was already discarded during the original encode.
Yes. On Linux or macOS, you can use a shell loop: for f in *.rm; do ffmpeg -i "$f" -vn -c:a aac -b:a 128k "${f%.rm}.aac"; done. On Windows Command Prompt, use: for %f in (*.rm) do ffmpeg -i "%f" -vn -c:a aac -b:a 128k "%~nf.aac". This processes each .rm file in the current directory and saves a matching .aac file. The browser-based tool on this page handles one file at a time, so the FFmpeg command is the better option for bulk conversions.
RealMedia is a proprietary format tied to RealNetworks' ecosystem, and support was dropped from most modern media players years ago. Even VLC, which has broad format support, can struggle with certain RealMedia streams. The output .aac file is a raw AAC bitstream that plays natively on iOS, Android, macOS, Windows (via Windows Media Player or any modern player), and is compatible with iTunes, Apple Music, and most DAWs. It is one of the most universally supported audio formats available.
RealMedia files can contain metadata in RealNetworks' proprietary tagging format, and FFmpeg will attempt to map any readable metadata to the output AAC file during conversion. However, because the RealMedia metadata format is non-standard and legacy, some tags may not transfer reliably. It is recommended to verify and re-tag the output .aac file using a tool like MusicBrainz Picard or MP3Tag after conversion.
Yes, if you have a version of FFmpeg compiled with libfdk_aac support, replacing -c:a aac with -c:a libfdk_aac in the command will use the Fraunhofer FDK AAC encoder, which is widely considered to produce slightly better quality than FFmpeg's native AAC encoder at the same bitrate. The command would be: ffmpeg -i input.rm -vn -c:a libfdk_aac -b:a 128k output.aac. Note that most pre-built FFmpeg binaries do not include libfdk_aac due to licensing, so you may need to compile FFmpeg yourself or use a third-party build.
Technical Notes
RealMedia (.rm) is one of the more challenging legacy formats for FFmpeg to handle due to its proprietary container structure and the variety of codecs RealNetworks used across different versions. FFmpeg's RealMedia demuxer handles most common .rm files but may struggle with certain RealAudio v3 or v4 streams encoded with RealNetworks' proprietary codecs (cook, ralf, sipr), which have limited or incomplete decoder support. Files that contain AAC or MP3 audio tracks inside the .rm wrapper are generally decoded reliably. The output is a raw AAC Elementary Stream (.aac file), not an AAC file wrapped in an MPEG-4 container (.m4a). If you need iTunes library compatibility or want embedded metadata support, consider outputting to .m4a instead by changing the output filename — the same FFmpeg command applies. The default 128k bitrate is appropriate for voice and moderate-quality music; for archival or high-fidelity music extraction, 192k or 256k is recommended. Because RealMedia was primarily a streaming format, source files often have low original bitrates (28k–64k), meaning the perceived quality ceiling is set by the source, not this conversion.