Convert TS to MXF — Free Online Tool
Convert MPEG-2 Transport Stream (.ts) files to MXF (Material Exchange Format) for professional broadcast and post-production workflows. This tool re-encodes video using H.264 (libx264) and transcodes audio to uncompressed PCM 16-bit — the lossless audio standard expected by broadcast ingest systems and NLEs like Avid Media Composer.
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
TS files carry multiplexed video and audio streams designed for transmission — often H.264 or H.265 video alongside AAC or AC3 audio, wrapped in a transport layer with error correction packets. Converting to MXF strips that transmission wrapper and re-encodes the video stream using libx264 with a CRF of 23, while the audio is fully transcoded from compressed formats like AAC or AC3 into PCM 16-bit (pcm_s16le) — uncompressed linear audio. MXF also embeds richer operational metadata (OP1a pattern by default in FFmpeg), making the resulting file compatible with broadcast ingest pipelines, archive systems, and professional editing tools that expect MXF's structured metadata model rather than TS's broadcast-transport framing.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In the browser version, this runs via FFmpeg.wasm compiled to WebAssembly, executing entirely on your local machine without uploading your file to any server. |
-i input.ts
|
Specifies the input MPEG-2 Transport Stream file. FFmpeg will demux the TS container, reading its program tables (PAT/PMT) to identify and decode the contained video and audio elementary streams. |
-c:v libx264
|
Re-encodes the video stream using the H.264 encoder (libx264). Since TS and MXF use incompatible container structures, stream copying is not possible — the video must be fully decoded from its source codec and re-encoded as H.264 for the MXF wrapper. |
-c:a pcm_s16le
|
Transcodes the audio — whatever compressed format it was in the TS file (AAC, AC3, MP3, etc.) — into uncompressed 16-bit little-endian PCM. This is the standard audio format for broadcast MXF files and is required by most professional ingest systems and NLEs. |
-crf 23
|
Sets the Constant Rate Factor for H.264 video encoding at 23, FFmpeg's default. This controls the quality-to-file-size tradeoff — lower values (e.g., 18) produce higher quality and larger files, which may be preferable for broadcast archive MXF deliverables. |
-b:a 192k
|
Specifies a target audio bitrate of 192k. Note that for PCM audio (pcm_s16le), this parameter has no practical effect since PCM is uncompressed and its bitrate is determined solely by sample rate and bit depth — it is included in the command for consistency with the tool's interface but does not alter the output audio. |
output.mxf
|
Defines the output filename and instructs FFmpeg to wrap the encoded H.264 video and PCM audio into an MXF container (OP1a operational pattern), producing a file suitable for professional broadcast ingest, post-production, and archival workflows. |
Common Use Cases
- Ingesting recorded DVB or satellite broadcast streams (.ts files from TV capture cards) into an Avid or Premiere Pro post-production workflow that requires MXF deliverables
- Preparing HLS or live-stream recordings captured as .ts segments for delivery to a broadcast archive system that mandates MXF with uncompressed PCM audio
- Converting transport stream recordings from surveillance or IPTV systems into MXF for long-term storage in a broadcast asset management system
- Delivering edited content originally captured as MPEG-2 TS from a broadcast encoder to a television station or playout server that only accepts MXF ingest
- Transcoding .ts files from a digital video recorder (DVR) into MXF format for import into DaVinci Resolve or Final Cut Pro with broadcast-compliant PCM audio tracks
Frequently Asked Questions
MXF in professional broadcast contexts almost universally requires uncompressed audio, and FFmpeg's MXF muxer defaults to PCM rather than compressed codecs like AAC or AC3. This conversion transcodes your TS audio — whether AAC, AC3, or MP3 — into PCM 16-bit (pcm_s16le), which is lossless in the sense that it's uncompressed, but the original compressed audio is first decoded before being re-encoded as PCM. The resulting audio will be perceptually identical to the source but will significantly increase the audio portion of the file size. This is the expected and preferred behavior for broadcast MXF deliverables.
No. While TS supports embedded subtitles (DVB subtitles, Teletext, or SCTE streams), MXF as handled by FFmpeg does not support subtitle streams in its muxer. Subtitle data from your .ts file will be dropped during conversion. If you need to preserve subtitles, you should extract them separately from the TS source before converting — for example, using FFmpeg to dump them as an SRT or .sup file in a separate step.
The video is re-encoded — not simply remuxed — because MXF and TS use different container structures that require a full transcode. The default CRF of 23 with libx264 produces good general-purpose quality, but any re-encoding from a previously compressed source introduces at least some generational loss. If your source TS was already H.264, you can lower the CRF value (e.g., to 18) in the FFmpeg command to preserve more detail. For the highest possible fidelity in a broadcast context, consider using CRF 0 for lossless H.264, though this will produce very large files.
Modify the -crf value in the command to control H.264 quality. The scale runs from 0 (lossless) to 51 (worst quality), with 23 as the default. For broadcast archive use where quality is critical, values between 15 and 18 are common choices. For example: ffmpeg -i input.ts -c:v libx264 -c:a pcm_s16le -crf 18 -b:a 192k output.mxf. Note that lower CRF values increase file size substantially, and the -b:a flag does not affect PCM audio bitrate since PCM is uncompressed and the bitrate is determined by sample rate and bit depth.
Yes. MXF supports mpeg2video as an alternative video codec, which is historically the dominant codec for broadcast MXF (IMX, D-10 formats). To use it, change the command to: ffmpeg -i input.ts -c:v mpeg2video -c:a pcm_s16le -q:v 2 output.mxf. Note that mpeg2video uses -q:v for quality (not -crf), and the resulting file will likely be larger than H.264. This can be important for compatibility with older playout servers or broadcast equipment that may not support H.264-in-MXF.
Yes. On Linux or macOS you can wrap the command in a shell loop: for f in *.ts; do ffmpeg -i "$f" -c:v libx264 -c:a pcm_s16le -crf 23 -b:a 192k "${f%.ts}.mxf"; done. On Windows Command Prompt, use: for %f in (*.ts) do ffmpeg -i "%f" -c:v libx264 -c:a pcm_s16le -crf 23 -b:a 192k "%~nf.mxf". This is particularly useful for batch-ingesting a folder of DVR or broadcast capture files into an MXF-based archive. The browser-based tool processes files individually, so the FFmpeg command is the recommended approach for large batch jobs.
Technical Notes
TS-to-MXF is a full transcode — no stream copying is possible because the container architectures are fundamentally different. TS uses a fixed 188-byte packet structure with program-specific tables (PAT/PMT) designed for error-resilient transmission, while MXF uses an operational pattern (OP1a for single-item files in FFmpeg's implementation) with KLV-encoded metadata and essence containers. FFmpeg's MXF muxer does not support all MXF operational patterns or AS-11 compliance, so output files may need further validation for regulated broadcast delivery. The pcm_s16le codec produces 16-bit little-endian PCM audio at whatever sample rate the source carries (typically 48kHz for broadcast TS), which is standard for SD broadcast; if you require 24-bit audio (pcm_s24le) for HD broadcast deliverables, modify the -c:a flag accordingly. Multiple audio tracks from a TS source are preserved in the MXF output since both formats support multiple audio streams. Chapters are not supported by either container in FFmpeg's implementation and will not be present in the output. TS files from DVB broadcasts may contain multiple programs; FFmpeg will select the first detected program by default — use -map to explicitly select streams if your source contains multiple programs or services.