Extract Audio from RM to J2B — Free Online Tool

Extract audio from RealMedia (.rm) files and convert it to J2B format using the LAME MP3 encoder. This tool strips the video stream entirely and re-encodes the audio as an MP3-based J2B file — the audio container used by Jazz Jackrabbit 2 — making it useful for game audio modding and retro multimedia archival.

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 carry AAC or MP3 audio alongside MJPEG video, encoded in RealNetworks' proprietary streaming container. During this conversion, the video stream is completely discarded (using the -vn flag) and the audio stream is decoded from its original codec (AAC or MP3) and re-encoded using the LAME encoder at the target bitrate. The resulting audio data is written into a J2B file, which is essentially an ASYLUM Music Format module wrapped in a simple Jazz Jackrabbit 2-specific header. Because both the input audio and output audio are lossy formats, this is a lossy-to-lossy transcode — meaning a small amount of additional quality degradation is introduced compared to encoding from a lossless source.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which runs entirely in your browser via WebAssembly (FFmpeg.wasm) — no server upload is involved. You can also run this same command locally on your desktop for files over 1GB.
-i input.rm Specifies the input RealMedia file. FFmpeg reads the proprietary RM container, demuxing the MJPEG video and AAC or MP3 audio streams for downstream processing.
-vn Disables all video output, discarding the MJPEG video stream present in the RM container entirely. This ensures the J2B output contains only audio data and speeds up processing.
-c:a libmp3lame Encodes the audio using the LAME MP3 encoder, which is required by the J2B format. The source audio (typically AAC from the RM file) is decoded and re-encoded as MP3 — a lossy-to-lossy transcode.
-b:a 128k Sets the output MP3 audio bitrate to 128 kilobits per second. This is the default balance between file size and audio quality for J2B output; increase to 256k or 320k to reduce generation loss from the AAC-to-MP3 re-encode.
output.j2b Defines the output filename and triggers FFmpeg to use the J2B muxer, which wraps the LAME-encoded MP3 stream in the Jazz Jackrabbit 2 ASYLUM Music Format container structure.

Common Use Cases

  • Replacing or modding in-game music in Jazz Jackrabbit 2 using audio ripped from legacy RealMedia promotional or cutscene content from the late 1990s
  • Archiving audio from old RealMedia streaming content into a game-compatible format for preservation projects focused on late-90s internet media
  • Extracting the audio commentary or narration from an old RealMedia tutorial or demo video and packaging it as a J2B file for use in a custom JJ2 level
  • Converting RealMedia audio tracks from vintage web content into J2B for use with JJ2 fan-made campaigns or community map packs
  • Testing how legacy streaming audio codecs degrade through a generation loss when re-encoded to LAME MP3 at various bitrates, using JJ2 as a reference playback environment
  • Stripping promotional RealMedia clips associated with Jazz Jackrabbit 2 into native J2B audio files to round out a complete retro game asset collection

Frequently Asked Questions

Yes. RealMedia audio is already lossy — typically encoded as AAC or MP3 — and J2B uses LAME-encoded MP3, which is also lossy. Re-encoding from one lossy format to another always introduces generation loss, even at high bitrates. To minimize quality degradation, use the highest available output bitrate (320k) in the tool settings, though the audio will never be fully identical to the original source.
J2B is technically an ASYLUM Music Format module with a JJ2-specific header, and the game's audio engine expects module-style data rather than a straight MP3 stream. While FFmpeg writes the file with the .j2b extension and MP3 audio encoded by LAME, the resulting file may not be natively playable by the original JJ2 executable without additional modding tools or a custom loader that interprets the MP3 stream. This conversion is best treated as an intermediate step in a broader modding workflow.
The video stream — typically MJPEG-encoded in an RM container — is completely discarded. The -vn flag instructs FFmpeg to ignore all video streams and produce an audio-only output. No video frames are processed or encoded, which significantly speeds up the conversion and results in a much smaller output file.
Replace the value after -b:a in the command. For example, to use 256k instead of the default 128k, the relevant portion becomes -b:a 256k. Available options for J2B output are 64k, 128k, 192k, 256k, and 320k. Higher bitrates reduce the additional quality loss from the lossy-to-lossy transcode but produce larger files.
The original RM file's audio bitrate sets a ceiling on recoverable quality. If the source audio was encoded at 96k AAC, re-encoding at 256k MP3 will not recover detail that was discarded during the original AAC encoding — it will just produce a larger file with no perceptual improvement. For best results, match the output bitrate roughly to the source audio bitrate, or go slightly lower to avoid inflating file size without quality benefit.
The single-file command shown is a direct template you can adapt for batch processing. On Linux or macOS, you can run: for f in *.rm; do ffmpeg -i "$f" -vn -c:a libmp3lame -b:a 128k "${f%.rm}.j2b"; done. On Windows Command Prompt, use a for loop: for %f in (*.rm) do ffmpeg -i "%f" -vn -c:a libmp3lame -b:a 128k "%~nf.j2b". This is especially useful when working with a large archive of legacy RealMedia files.

Technical Notes

RealMedia's RM container was designed exclusively for RealNetworks' streaming ecosystem and is not natively writable by FFmpeg — only readable. The audio codec inside an RM file encountered in the wild is often AAC or MP3 (libmp3lame), but older files may carry RealAudio-specific codecs (COOK, ATRAC, SIPR) that FFmpeg supports decoding with varying reliability. If FFmpeg reports an unsupported codec during decoding, the conversion will fail. The J2B format is an extremely niche container: it wraps an ASYLUM Music Format module (itself a derivative of the Amiga MOD format) with a 4-byte 'MUSE' header and a small metadata block specific to Jazz Jackrabbit 2. FFmpeg's J2B muxer writes the container header and encodes the audio as MP3 via libmp3lame, but the resulting file may not conform to what JJ2's native engine expects from a module-style J2B, since true J2B files contain tracker-style pattern data rather than a PCM or MP3 stream. Metadata from the RealMedia container (title, author, copyright fields common in RM streaming files) is not preserved in the J2B output, as the format has no equivalent metadata fields. No subtitle, chapter, or multiple audio track support exists in either format.

Related Tools