Extract Audio from MXF to J2B — Free Online Tool
Extract audio from MXF broadcast files and convert it to J2B format using the LAME MP3 encoder. This tool strips the professional PCM or AAC audio tracks from MXF containers — commonly used in broadcast and post-production workflows — and encodes them as MP3-based J2B files, the audio format native to Jazz Jackrabbit 2.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MXF 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
MXF files typically carry uncompressed or lightly compressed professional audio, most often PCM (pcm_s16le or pcm_s24le) alongside video streams encoded in H.264, MJPEG, or MPEG-2. This conversion discards the video entirely using the -vn flag, then re-encodes the audio stream through the LAME MP3 encoder (libmp3lame) at 128k bitrate. The resulting data is written with a .j2b extension, which is a thin header wrapper around an ASYLUM Music Format payload — itself an MP3-compatible structure. Because MXF audio is often 24-bit PCM and J2B targets a lossy MP3 delivery format, there is a deliberate quality reduction; the conversion prioritizes compatibility with the J2B container over preserving the full dynamic range of the source.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. This is the core multimedia processing engine that handles demuxing the MXF container, decoding the PCM audio, and re-encoding it through the LAME MP3 encoder into the J2B output. |
-i input.mxf
|
Specifies the input MXF file. FFmpeg will parse the MXF container structure, identifying the available video and audio streams — which in a typical broadcast MXF might include H.264 or MPEG-2 video and PCM audio tracks. |
-vn
|
Disables video output entirely. Since J2B is a pure audio format, any video stream present in the MXF file — whether H.264, MJPEG, or MPEG-2 — is discarded and not processed or written to the output. |
-c:a libmp3lame
|
Selects the LAME MP3 encoder to re-encode the audio. The PCM audio decoded from the MXF source (typically pcm_s16le or pcm_s24le) is passed through LAME to produce the MP3 bitstream that J2B wraps internally. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second. This is the default for J2B output and represents a moderate quality level — adequate for game audio use but a significant step down from the lossless PCM typically found in broadcast MXF sources. |
output.j2b
|
Defines the output filename and triggers FFmpeg to use the J2B muxer based on the file extension. FFmpeg writes the LAME-encoded MP3 data into the ASYLUM Music Format structure with the J2B header, producing a file readable by Jazz Jackrabbit 2 and compatible tooling. |
Common Use Cases
- Extracting background music or sound effects recorded into MXF broadcast tapes to use as custom game audio assets in Jazz Jackrabbit 2 level mods
- Converting field-recorded audio captured on professional broadcast cameras (output as MXF) into J2B tracks for retro game audio experimentation or demoscene projects
- Pulling the audio stem from an MXF edit master to produce a J2B music file for use in Jazz Jackrabbit 2 community-made maps or fan-made game remixes
- Archiving or cataloguing J2B-compatible audio derived from professional MXF source material for game modding communities that maintain Jazz Jackrabbit 2 content libraries
- Testing how broadcast-quality PCM audio from MXF degrades through MP3 compression at various bitrates within the J2B container structure, for audio engineering study purposes
Frequently Asked Questions
Yes, unavoidably. MXF files in broadcast workflows often carry 24-bit PCM audio (pcm_s24le), which is lossless and high dynamic range. J2B uses MP3 via the LAME encoder, which is a lossy format. The default 128k bitrate limits fidelity compared to the source. If your MXF contains 16-bit or 24-bit PCM, expect a measurable reduction in resolution and dynamic range — though at 128k the output will still be usable for most game audio contexts.
J2B files are natively read by Jazz Jackrabbit 2 as music tracks for levels. However, the game was originally designed around tracker-style module music wrapped in J2B headers. A straight MP3-based J2B produced by FFmpeg from an MXF source should be loadable by modern community-patched JJ2 engines like JJ2+, though behavior with the original unpatched executable may depend on header validation strictness.
MXF is a metadata-rich container that often carries SMPTE timecode, reel names, and production descriptors. None of this survives the conversion to J2B. The J2B format is a minimal game audio wrapper with no provision for broadcast metadata. FFmpeg extracts only the decoded audio signal, re-encodes it as MP3, and writes it into the J2B structure — all MXF-specific metadata is silently dropped.
By default, FFmpeg picks the first audio stream found in the MXF container. Professional MXF files frequently carry multiple discrete audio tracks — such as separate stereo pairs or dialog/music/effects stems. Since J2B supports only a single audio track, only the first stream is encoded. To target a different track, add -map 0:a:N to the command (where N is the zero-based track index) between the input and output arguments.
The default command uses -b:a 128k for the MP3 bitrate. To improve quality, substitute a higher value such as 192k, 256k, or 320k. The modified command would be: ffmpeg -i input.mxf -vn -c:a libmp3lame -b:a 320k output.j2b. At 320k, the LAME encoder produces the highest-quality MP3 output, which minimizes the perceptible gap between the original MXF PCM source and the lossy J2B output.
The single-file command shown on this page processes one file at a time. For batch processing on desktop, you can use a shell loop. On Linux or macOS: for f in *.mxf; do ffmpeg -i "$f" -vn -c:a libmp3lame -b:a 128k "${f%.mxf}.j2b"; done. On Windows Command Prompt: for %f in (*.mxf) do ffmpeg -i "%f" -vn -c:a libmp3lame -b:a 128k "%~nf.j2b". This is especially useful for MXF archive libraries where you need to extract audio from many broadcast files in one pass.
Technical Notes
MXF (Material Exchange Format) is a structured container governed by SMPTE standards, designed for interchange between broadcast and post-production systems. Its audio payload is typically uncompressed PCM — either pcm_s16le (16-bit little-endian, CD quality) or pcm_s24le (24-bit, broadcast standard) — making it a lossless source for this conversion. J2B, by contrast, is an extremely lightweight game-audio container developed for Jazz Jackrabbit 2, consisting of a short binary header followed by ASYLUM Music Format data, which itself wraps an MP3 bitstream. FFmpeg writes the MP3 output from libmp3lame directly into this structure when the .j2b extension is specified. Because the source is PCM and the target is lossy MP3, this is a one-way destructive conversion: the bit depth reduction and perceptual encoding of LAME are irreversible. Stereo MXF audio will be preserved as stereo in the MP3 stream; mono sources remain mono. Channel configurations beyond stereo (e.g., 5.1 audio tracks sometimes found in broadcast MXF) will be downmixed by FFmpeg's default behavior unless explicitly remapped. There is no chapter, subtitle, or timecode support in J2B, and the MXF's rich metadata schema — including clip names, tape IDs, and production comments — is entirely absent from the output.