Convert TS to J2B — Free Online Tool
Convert TS broadcast streams to J2B game audio format, extracting and encoding the audio track to MP3 using the LAME encoder. This niche conversion strips all video, subtitle, and multi-track data from the transport stream, producing a J2B file compatible with Jazz Jackrabbit 2's ASYLUM Music Format wrapper.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your TS 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
MPEG-2 Transport Streams (TS) are multiplex containers designed for broadcast and streaming, often carrying H.264 or H.265 video alongside AAC, AC3, or MP3 audio tracks — plus subtitle streams and sometimes multiple audio tracks. During this conversion, FFmpeg discards all video streams, subtitle streams, and any secondary audio tracks entirely. The first audio track is re-encoded using the LAME MP3 encoder at 128k bitrate, and the resulting MP3 data is wrapped in the minimal J2B header structure (a simple binary wrapper used by Jazz Jackrabbit 2 to identify ASYLUM Music Format files). No video processing occurs at any stage — this is a pure audio extraction and re-encoding operation.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which is running here as a WebAssembly binary (FFmpeg.wasm) entirely inside your browser — no server receives your TS file. |
-i input.ts
|
Specifies the input MPEG-2 Transport Stream file. FFmpeg parses the TS container, identifying all program streams including video, audio, and subtitle tracks contained within the broadcast multiplex. |
-c:a libmp3lame
|
Selects the LAME MP3 encoder for the audio output stream. This is required because J2B only supports MP3 audio — any other codec present in the TS (such as AAC or AC3) must be fully decoded and re-encoded to MP3 by LAME. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second, which is the default for this conversion. This controls the quality and file size of the encoded MP3 audio that will be wrapped inside the J2B container header. |
output.j2b
|
Defines the output filename and instructs FFmpeg to use the J2B muxer, which writes the encoded MP3 audio stream preceded by the ASYLUM Music Format magic header that identifies the file as J2B to compatible parsers. |
Common Use Cases
- Extracting music or sound segments from recorded broadcast TV streams to create custom J2B audio assets for Jazz Jackrabbit 2 modding projects
- Converting a TS recording of a television theme or jingle into a J2B file for use as a replacement track in Jazz Jackrabbit 2 level editors
- Archiving or experimenting with the J2B format by sourcing audio content from high-quality broadcast TS recordings rather than lower-quality web audio
- Game modders pulling audio from captured streaming content (sports broadcasts, animated shows) to use as ambient or background music in custom JJ2 levels
- Testing J2B playback pipelines or custom ASYLUM format parsers using audio derived from known, well-structured TS source files
Frequently Asked Questions
No. J2B is a single-track audio format and cannot carry multiple audio streams. FFmpeg will select the first audio track from the TS file by default and re-encode only that track. If your transport stream contains multiple audio tracks (e.g., different languages or commentary feeds, which are common in broadcast TS files), only the primary track will appear in the output. If you need a specific secondary track, you would need to modify the FFmpeg command to explicitly map that stream using the -map flag.
Yes, this is a lossy conversion. The audio in your TS file — whether it is AAC, AC3, FLAC, or another codec — is fully decoded and then re-encoded as MP3 at 128k bitrate using the LAME encoder. This generation loss is inherent since J2B only supports MP3 audio. If your source TS audio is already MP3 (libmp3lame), you are still re-encoding rather than stream-copying, because the J2B container wrapper requires FFmpeg to transcode through the format pipeline. For the best possible output quality, use a high-bitrate TS source and consider raising the -b:a value.
Both are silently dropped. J2B has no mechanism to store subtitle streams, chapter markers, or any metadata beyond what fits in its minimal binary header. The ASYLUM Music Format wrapper that J2B uses was designed exclusively for game audio playback, not general media archiving. All broadcast-specific metadata carried by the TS container — including DVB subtitles, teletext, program information, and timing tables — is discarded during conversion.
Replace the 128k value in the -b:a 128k flag with a higher bitrate. For example, using -b:a 320k will produce the highest quality MP3 output the LAME encoder supports, at the cost of a larger file. Valid options include 64k, 128k, 192k, 256k, and 320k. Since J2B is used in a retro game context and the ASYLUM format parser in Jazz Jackrabbit 2 has its own playback constraints, extremely high bitrates may not yield audible improvement during in-game playback, though the file itself will be valid.
The command shown converts a single file, but you can adapt it for batch processing on your desktop using a shell loop. On Linux or macOS, you could run: for f in *.ts; do ffmpeg -i "$f" -c:a libmp3lame -b:a 128k "${f%.ts}.j2b"; done. On Windows Command Prompt: for %f in (*.ts) do ffmpeg -i "%f" -c:a libmp3lame -b:a 128k "%~nf.j2b". The browser-based tool processes one file at a time, so the desktop FFmpeg command is especially useful for bulk J2B creation workflows.
The J2B format is a thin wrapper around ASYLUM Music Format, which Jazz Jackrabbit 2 uses for its module-based music system. Standard ASYLUM files contain tracker music data (similar to MOD or S3M files), not MP3 streams. FFmpeg's J2B muxer outputs an MP3 audio stream with a J2B header, which may not be interpreted correctly by the game's native audio engine, which expects tracker module data rather than a compressed audio stream. This conversion is most useful for tooling, archiving, or custom loaders that parse J2B files as MP3 wrappers rather than for direct in-game playback.
Technical Notes
The J2B format is an extremely niche container: it is the ASYLUM Music Format with a 4-byte magic header prepended, originating from the Jazz Jackrabbit 2 game engine. FFmpeg supports muxing J2B by wrapping MP3 audio (via libmp3lame) inside this header structure, but the format has no provisions for video, multiple audio streams, subtitles, chapters, or rich metadata — all of which TS can carry in abundance. When converting from TS, FFmpeg must fully decode whatever audio codec is present in the transport stream (commonly AAC from broadcast sources, or AC3 from cable recordings) and re-encode it as MP3, meaning this is never a lossless or stream-copy operation regardless of source quality. The -b:a parameter controls the output MP3 bitrate directly; there is no CRF-style quality mode for MP3 in this pipeline. TS files from broadcast sources can contain multiple program streams (MPTS), and FFmpeg will default to the first detected program's primary audio track — if your TS is a multi-program stream, you may need -map to target the correct stream. File sizes will vary significantly depending on the duration and chosen bitrate, but will always be dramatically smaller than the source TS since all video data is eliminated.