Convert J2B to M4B — Free Online Tool
Convert J2B game audio files from Jazz Jackrabbit 2 into M4B audiobook format, re-encoding the ASYLUM Music Format content to AAC audio inside an MPEG-4 container. This makes the quirky chiptune-style module music accessible in audiobook players, podcast apps, and any AAC-compatible device.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your J2B 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
J2B files are a proprietary format specific to Jazz Jackrabbit 2, consisting of ASYLUM Music Format (AMF) module data wrapped in a custom header. FFmpeg decodes this module music by interpreting the instrument samples and pattern sequencing data, synthesizing it into a standard PCM audio stream. That synthesized audio is then re-encoded from scratch using the AAC codec (via FFmpeg's native AAC encoder) and packaged into an MPEG-4 container with the .m4b extension. Unlike a simple remux, this is a full transcode — the module's tracker-based data has no direct mapping to a compressed audio codec, so the audio must be rendered and then compressed. The -movflags +faststart flag also repositions the MPEG-4 metadata atom at the start of the file, which enables streaming and progressive playback.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles the full pipeline of reading the J2B module file, synthesizing the tracker audio, re-encoding it to AAC, and writing the M4B output. |
-i input.j2b
|
Specifies the input J2B file. FFmpeg detects the ASYLUM Music Format wrapped in the J2B header and routes it through the appropriate module decoder to synthesize the audio. |
-c:a aac
|
Sets the audio codec to FFmpeg's native AAC encoder, which compresses the synthesized PCM audio from the J2B module into the AAC format required by the M4B container. |
-b:a 128k
|
Targets an audio bitrate of 128 kilobits per second for the AAC output. This is a reasonable default for synthesized game module music and balances file size against audio fidelity. |
-movflags +faststart
|
Moves the MPEG-4 container's metadata (moov atom) to the beginning of the output file. This is essential for M4B files to support progressive streaming and correct playback in audiobook and podcast apps. |
output.m4b
|
Defines the output filename and signals to FFmpeg that the file should be written as an MPEG-4 container. The .m4b extension specifically marks the file for audiobook and podcast behavior in Apple software and compatible players. |
Common Use Cases
- Preserving Jazz Jackrabbit 2 soundtrack music in a modern, widely-supported format that plays on smartphones, tablets, and media players without special tracker software.
- Creating an audiobook-style compilation of J2B game tracks where M4B's chapter support allows each song to be a named, skippable chapter in a single archive file.
- Loading Jazz Jackrabbit 2 music onto an iPhone or iPad through Apple Books or Podcasts, which require AAC audio in an M4B or M4A container.
- Archiving retro game module music in a higher-fidelity synthesized form so the exact playback rendering is captured before software compatibility for J2B decoding becomes harder to find.
- Building a podcast episode or retrospective documentary about Jazz Jackrabbit 2 where the original J2B music tracks need to be in a podcast-compatible AAC format.
- Sharing game music with non-technical listeners who cannot open J2B files, by providing a universally playable M4B file that works in standard audio apps.
Frequently Asked Questions
Yes, there will be two stages of quality change. First, the J2B module data is synthesized by FFmpeg's decoder — this rendering may differ subtly from how Jazz Jackrabbit 2's original engine played it back, since module music playback depends on the decoder's interpretation of tempo, panning, and instrument samples. Second, the synthesized audio is compressed with AAC at 128k, which is a lossy process that removes some audio detail. At 128k AAC, the difference from uncompressed audio is generally inaudible for this type of music, but you can raise the bitrate to 192k or 256k in the command if you want a closer approximation.
No. J2B files are simple game audio files with no embedded chapter markers, album tags, or artist metadata — the format is essentially just sequencer pattern data with a proprietary header. The M4B output will not have any chapters populated automatically. If you want to use M4B's chapter feature, you would need to add chapter metadata manually after conversion using a tool like mp4chaps or an audiobook editor.
M4B and M4A are technically almost identical MPEG-4 audio containers — the difference is the file extension and its associated application behavior. M4B signals to Apple software and podcast players that the file supports bookmarking and chapter navigation, whereas M4A is treated as regular music. Both use AAC audio. If you'd prefer the file to behave as standard music rather than an audiobook, you can simply rename the output file from .m4b to .m4a without any other changes.
Change the value after -b:a in the command. The default is 128k, which is adequate for the synthesized module music in J2B files. To increase quality, use -b:a 192k or -b:a 256k; to reduce file size at the cost of fidelity, use -b:a 96k or -b:a 64k. For example: ffmpeg -i input.j2b -c:a aac -b:a 192k -movflags +faststart output.m4b. Note that the AAC codec in FFmpeg uses constant bitrate targeting by default with the -b:a flag.
Yes, using a shell loop. On Linux or macOS, run: for f in *.j2b; do ffmpeg -i "$f" -c:a aac -b:a 128k -movflags +faststart "${f%.j2b}.m4b"; done. On Windows Command Prompt, use: for %f in (*.j2b) do ffmpeg -i "%f" -c:a aac -b:a 128k -movflags +faststart "%~nf.m4b". This will process each J2B file in the current directory and produce a corresponding M4B file with the same base name.
J2B files store music as tracker module data — a set of instrument samples and sequencing patterns — rather than a pre-rendered audio stream. There is no equivalent of this format inside an MPEG-4 container, and M4B only supports stream-based codecs like AAC, MP3, or FLAC. FFmpeg must fully synthesize (render) the module into a PCM waveform first and then compress that waveform into AAC. This is fundamentally different from, say, converting an MP3 to M4B, where the audio stream can sometimes be copied directly without re-encoding.
Technical Notes
J2B is an extremely niche format tied exclusively to Jazz Jackrabbit 2, and FFmpeg's support for it depends on the ASYLUM Music Format decoder being compiled in — most standard FFmpeg builds include this. The synthesized output quality is influenced by the sample rate FFmpeg uses when rendering the module; by default it will typically render at 44100 Hz, which is sufficient for this type of chiptune-era music. The M4B container requires the -movflags +faststart flag to move the moov atom to the beginning of the file; without this, M4B files may fail to play or seek correctly in podcast apps and audiobook players. The default AAC encoder in FFmpeg (the native aac encoder) is used here rather than libfdk_aac, which is not always available in prebuilt FFmpeg binaries due to licensing. If you have libfdk_aac available, substituting -c:a libfdk_aac generally produces slightly better quality at the same bitrate. Since J2B files carry no standard audio metadata (no ID3 or Vorbis tags), the M4B output will have empty tag fields — you should add title, artist, and album tags manually if needed for library organization.