Convert RM to J2B — Free Online Tool
Convert RealMedia (.rm) files to J2B audio format, extracting and re-encoding the audio stream using the LAME MP3 encoder. This is a niche but precise conversion path for pulling audio out of legacy RealNetworks streaming files and packaging it into the ASYLUM Music Format container used by Jazz Jackrabbit 2.
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
During this conversion, FFmpeg reads the RealMedia container — which typically carries AAC or MP3 audio alongside MJPEG video — and discards the video stream entirely, since J2B is a pure audio format with no video support. The audio is decoded from its source codec (AAC by default in .rm files) and then re-encoded using the LAME MP3 encoder at your chosen bitrate. The resulting audio data is wrapped in the J2B container, which is essentially an ASYLUM Music Format file with a simple proprietary header as used by the Jazz Jackrabbit 2 game engine. Because both the input and output are lossy formats, this is a generation-loss conversion — the audio passes through two lossy compression stages.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. In the browser-based tool, this runs as FFmpeg.wasm compiled to WebAssembly — the same command works identically on your local desktop installation for files over 1GB. |
-i input.rm
|
Specifies the input RealMedia file. FFmpeg will parse the .rm container, identify the available streams (typically MJPEG video and AAC or RealAudio audio), and make them available for processing. |
-c:a libmp3lame
|
Selects the LAME MP3 encoder for the audio output stream. This re-encodes whatever audio codec was present in the .rm file (typically AAC) into MP3, which is the only audio codec supported by the J2B format. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second. This is the default balance between file size and audio quality for J2B output; given that the source .rm audio was likely already compressed at a similar or lower bitrate for streaming, going higher (e.g., 256k) offers diminishing returns unless the source is high-quality. |
output.j2b
|
Defines the output filename and tells FFmpeg to write the result as a J2B file. FFmpeg uses the .j2b extension to apply the correct container muxer, wrapping the LAME-encoded MP3 stream in the ASYLUM Music Format header structure expected by the Jazz Jackrabbit 2 engine. |
Common Use Cases
- Extracting audio tracks from archived RealMedia streaming recordings to create custom J2B music files for Jazz Jackrabbit 2 mods or fan-made levels
- Converting late-1990s RealAudio-carrying .rm files from old game trailers or promotional media into a format playable by JJ2 game engine tools
- Preparing audio sourced from legacy RealMedia broadcasts for use in Jazz Jackrabbit 2 custom level editors that require J2B-formatted background music
- Archiving or repurposing audio from .rm files — common in early internet game previews and demo reels — into game-compatible audio assets
- Batch-converting a library of RealMedia files containing music or sound effects into J2B format for a retro game community project or level pack
Frequently Asked Questions
Yes, this conversion involves two stages of lossy compression. The source .rm file already contains lossy audio (typically AAC encoded for streaming), and re-encoding that to MP3 via LAME introduces a second generation of quality degradation. The extent of quality loss depends on the original .rm file's audio bitrate and the target J2B bitrate you select. For best results, use the highest available bitrate (320k) when the source audio quality matters.
The video stream is completely discarded. J2B is a game audio format with no video capability whatsoever, so FFmpeg extracts only the audio track from the RealMedia container. If your .rm file contains MJPEG video (the standard for RealMedia), that data is simply not written to the output. Only the audio is decoded and re-encoded into the J2B file.
Technically yes, provided the J2B file is correctly formatted with the ASYLUM header and contains valid MP3 audio data. However, J2B was originally designed for tracker-style module music, and the JJ2 engine expects specific looping and timing metadata that FFmpeg will not automatically inject. Files created this way may play back but might not loop correctly in-game without additional editing with a dedicated JJ2 level tool.
Modify the value after the -b:a flag. For example, replace -b:a 128k with -b:a 320k for higher quality, or -b:a 64k for a smaller file size. Available options are 64k, 128k, 192k, 256k, and 320k. Since both source and output are lossy, using 320k is recommended if you want to minimize the impact of the second re-encoding pass.
Because J2B has no video codec support, FFmpeg automatically omits the video stream when targeting this audio-only output format — no explicit -vn flag is needed. FFmpeg infers from the output container's capabilities that video cannot be included and skips it without error. If you run this command and see a warning about the video stream being dropped, that is expected and harmless behavior.
Yes. On Linux or macOS, you can use a shell loop: for f in *.rm; do ffmpeg -i "$f" -c:a libmp3lame -b:a 128k "${f%.rm}.j2b"; done. On Windows Command Prompt, use: for %f in (*.rm) do ffmpeg -i "%f" -c:a libmp3lame -b:a 128k "%~nf.j2b". This is especially useful when processing a large archive of legacy RealMedia files, since the browser-based tool handles one file at a time.
Technical Notes
RealMedia (.rm) files were engineered for low-bandwidth streaming and typically carry audio encoded at relatively low bitrates — often 32k to 128k AAC or RealAudio. When FFmpeg reads these files, it decodes whatever audio codec is present (most commonly AAC in modern .rm files, or legacy RealAudio codecs which FFmpeg supports with varying fidelity) and passes raw PCM audio to the LAME encoder. J2B is not a general-purpose format: it is specifically the ASYLUM Music Format with a 4-byte or 8-byte header prepended, and was designed for tracker module playback in Jazz Jackrabbit 2. FFmpeg writes the MP3 stream into this container but does not replicate tracker-specific metadata like loop points, BPM markers, or channel assignments. Metadata from the .rm file (title, author, copyright fields common in RealMedia) is not preserved in the J2B output, as the format has no standardized metadata block. The output file size will be largely determined by the duration of the audio and the chosen -b:a bitrate, with a 3-minute clip at 128k producing roughly 2.8MB.