Convert M4A to J2B — Free Online Tool
Convert M4A audio files (typically AAC-encoded, from iTunes or Apple devices) to J2B, the ASYLUM Music Format-based audio container used by Jazz Jackrabbit 2. The conversion re-encodes the AAC audio stream using the LAME MP3 encoder, producing a J2B file compatible with JJ2 game audio workflows.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your M4A 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
M4A files store audio in the MPEG-4 container, almost always encoded with AAC (Advanced Audio Coding). J2B is a proprietary format used by Jazz Jackrabbit 2, built on the ASYLUM Music Format with a simple binary header, and it uses MP3 as its underlying audio encoding. Because AAC and MP3 are entirely different codecs, this conversion cannot simply remux the stream — the AAC audio must be fully decoded and then re-encoded from scratch using the LAME MP3 encoder (libmp3lame). This is a lossy-to-lossy transcode, meaning each generation of re-encoding introduces some additional quality degradation. The resulting file carries the .j2b extension and MP3-encoded audio at the specified bitrate, wrapped in a header that JJ2 and compatible tools can interpret.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles the decoding of the input M4A (AAC audio) and re-encoding into the MP3 audio stream wrapped in a J2B container. |
-i input.m4a
|
Specifies the input M4A file. FFmpeg will read the MPEG-4 container and extract the AAC-encoded audio stream for decoding prior to re-encoding. |
-c:a libmp3lame
|
Selects the LAME MP3 encoder for the audio stream. This is required because J2B stores MP3-encoded audio internally — AAC from the M4A source cannot be passed through and must be fully re-encoded. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second for the J2B output. This is the default balance point for game audio; lower values reduce file size at the cost of fidelity, higher values improve quality but increase the size of the J2B asset. |
output.j2b
|
Defines the output filename with the .j2b extension. FFmpeg uses this extension to determine the target container format, wrapping the LAME-encoded MP3 audio in the ASYLUM Music Format header structure expected by Jazz Jackrabbit 2. |
Common Use Cases
- Modding Jazz Jackrabbit 2 to replace in-game music tracks with custom compositions you originally exported from a DAW or iTunes as M4A files
- Converting a podcast or music track saved in M4A format into a J2B asset for use in a JJ2 custom level or episode pack
- Archiving or studying J2B audio assets by round-tripping between formats during JJ2 level editor workflows where source audio is stored as M4A
- Preparing royalty-free or original music (downloaded from Apple Music or recorded on an iPhone as M4A) for inclusion in a JJ2 community mod release
- Testing audio quality at different bitrates in J2B format by converting the same M4A source multiple times with varying -b:a settings to find the right balance for in-game use
Frequently Asked Questions
Yes. M4A files typically contain AAC-encoded audio, which is already a lossy format. Converting to J2B re-encodes that audio using the LAME MP3 encoder, which is also lossy. Transcoding from one lossy codec to another always introduces additional quality degradation, sometimes called 'generation loss.' To minimize this, use the highest available source M4A bitrate and set -b:a to 192k or higher in the FFmpeg command.
No. J2B is a minimal game audio format based on the ASYLUM Music Format and does not support embedded metadata tags, iTunes fields (like artist, album, or artwork), or chapter markers. All metadata from the source M4A will be discarded during conversion. If preserving metadata matters, keep a copy of the original M4A file.
For in-game use in JJ2, 128k is a reasonable default that balances file size and audio fidelity. If the source M4A is encoded at a high bitrate (192k or above), you may choose 192k for slightly better quality in the J2B output. Going above 192k is rarely perceptible in a game audio context and will increase file size without meaningful audible benefit.
Replace the value after -b:a in the command. For example, to encode at 192k instead of the default 128k, use: ffmpeg -i input.m4a -c:a libmp3lame -b:a 192k output.j2b. Available options are 64k, 128k, 192k, 256k, and 320k. Keep in mind that J2B is intended for game audio, so very high bitrates may be unnecessary given the playback context.
The command as shown processes one file at a time. To batch convert on Linux or macOS, you can use a shell loop: for f in *.m4a; do ffmpeg -i "$f" -c:a libmp3lame -b:a 128k "${f%.m4a}.j2b"; done. On Windows Command Prompt, use: for %f in (*.m4a) do ffmpeg -i "%f" -c:a libmp3lame -b:a 128k "%~nf.j2b". The browser-based tool on this page processes files individually.
J2B files are based on the ASYLUM Music Format, which wraps MP3-encoded audio in a simple header. MP3 (encoded via libmp3lame, the standard open-source LAME encoder) is the only audio codec compatible with the J2B format used by Jazz Jackrabbit 2. Other encoders like libopus or AAC cannot produce valid J2B output because the format's internal structure specifically expects MP3 bitstream data.
Technical Notes
J2B is a niche, game-specific format with very limited tooling support outside of the Jazz Jackrabbit 2 ecosystem. It wraps an MP3 audio stream in the ASYLUM Music Format header structure, meaning FFmpeg can produce the .j2b file extension with MP3 audio content, but compatibility ultimately depends on how strictly the target JJ2 version or level editor parses the header. The M4A source format supports features like gapless playback, iTunes metadata, and chapter markers — none of which survive the conversion to J2B, which has no equivalent structures. Because this is an AAC-to-MP3 transcode (lossy to lossy), starting from the highest quality M4A available is important. M4A files encoded at 128k AAC will show more noticeable degradation in the J2B output than those encoded at 256k or higher, since the LAME encoder is re-encoding already-compressed audio. There are no video streams in M4A audio files, so no video-related flags are needed. The -vn flag (suppress video) is listed in the M4A format's special flags as a precaution for some M4A files that may carry a placeholder video track from iTunes, but it is not included in the resolved command here since J2B has no video support and FFmpeg will naturally omit any video stream when the output format has no video codec defined.