Convert MXF to Y4M — Free Online Tool

Convert MXF broadcast files to Y4M (YUV4MPEG2) uncompressed video for lossless intermediate processing. This tool decodes the MXF container — which may carry H.264, MPEG-2, or MJPEG video — into raw YUV pixel data, giving you a pristine, uncompressed stream ready for piping into encoders, compositors, or video analysis tools.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

MXF files encapsulate professional video codecs like H.264 (libx264), MPEG-2, or MJPEG alongside PCM audio and rich broadcast metadata including timecodes and reel information. During this conversion, FFmpeg fully decodes the compressed video stream from the MXF container — discarding any compression artifacts at the pixel level — and writes every frame as raw YUV planar data into the Y4M file. Y4M adds only a minimal header per frame to describe colorspace and frame dimensions; there is no video re-encoding step that introduces new loss. Audio is dropped entirely, because Y4M has no audio track support. The result is a losslessly represented video file at the decoded quality of the original MXF source, with file sizes dramatically larger than the compressed original.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the underlying engine that both this browser-based tool (via FFmpeg.wasm) and your local desktop installation use to perform the conversion.
-i input.mxf Specifies the MXF source file as input. FFmpeg reads the MXF container, demuxes the video essence (H.264, MPEG-2, or MJPEG), and fully decodes the compressed frames into raw YUV pixel buffers for output.
-c:v rawvideo Instructs FFmpeg to write the decoded video frames as raw, uncompressed pixel data — this is what produces the Y4M output. No re-encoding or compression algorithm is applied; the pixels decoded from the MXF video stream are written verbatim into the output file.
output.y4m Sets the output filename with the .y4m extension, which FFmpeg uses to automatically select the yuv4mpegpipe muxer. This muxer prepends a YUV4MPEG2 stream header and per-frame markers, making the raw pixel data readable by any tool that supports the Y4M format.

Common Use Cases

  • Feed a decoded MXF master into a software encoder like x265 or AV1 by piping the Y4M output directly, bypassing intermediate file writes for maximum fidelity
  • Run frame-accurate video quality analysis (VMAF, PSNR, SSIM) on broadcast MXF footage using tools like libvmaf that accept Y4M as a reference or distorted input
  • Import MXF broadcast recordings into compositing tools such as Natron or processing pipelines that accept Y4M but cannot natively parse MXF containers
  • Extract uncompressed YUV frames from an MXF clip for custom computer vision or machine learning preprocessing scripts that consume raw pixel buffers
  • Validate the decoded output of an MXF encode by converting to Y4M and doing a byte-level comparison of YUV frames against a known-good reference
  • Stage an MXF file for lossless re-wrapping into another container by first expanding it to Y4M to ensure no generational loss from codec round-trips

Frequently Asked Questions

The Y4M output is a lossless representation of the decoded MXF video — no new compression is applied. However, if the source MXF used a lossy codec such as H.264 or MPEG-2, the compression artifacts from that original encode are already baked into the pixel data. Y4M preserves exactly those decoded pixels without adding further loss, but it cannot recover detail that was discarded when the MXF was first compressed.
MXF stores video in compressed form — H.264 at a given CRF or MPEG-2 at a broadcast bitrate. Y4M stores every frame as raw, uncompressed YUV planar data with no inter-frame prediction or entropy coding. A single frame of 1080p video in 4:2:0 YUV is about 3 MB of raw data, so a one-minute clip at 25 fps will produce roughly 4–5 GB of Y4M output regardless of how small the original MXF was.
Y4M has no provision for audio tracks, timecode, chapters, or broadcast metadata — only raw video frames and a minimal per-stream header. FFmpeg automatically drops all audio tracks and all MXF-specific metadata (reel name, umid, timecode) during this conversion. If you need to preserve audio or metadata, extract them separately using FFmpeg before performing the Y4M conversion.
Yes — Y4M was specifically designed for piping between tools. On your desktop, you can replace the output filename with a pipe to stdout (using '-' as the output and '-f yuv4mpegpipe') and chain it directly into x264, x265, or aomenc. This avoids writing a multi-gigabyte intermediate file to disk entirely, which is one of the primary reasons to use the Y4M format in professional pipelines.
On Linux or macOS you can loop over files in a shell: 'for f in *.mxf; do ffmpeg -i "$f" -c:v rawvideo "${f%.mxf}.y4m"; done'. On Windows PowerShell use 'Get-ChildItem *.mxf | ForEach-Object { ffmpeg -i $_.FullName -c:v rawvideo ($_.BaseName + ".y4m") }'. Be aware that batch conversion of MXF files to Y4M will consume very large amounts of disk space due to the uncompressed output size.
FFmpeg will write the decoded colorspace into the Y4M frame header, but the chroma subsampling is determined by the decoded output of the MXF codec. Broadcast MXF files typically use 4:2:2 or 4:2:0 YUV. If the source was 4:2:2 (common in MPEG-2 broadcast masters), the Y4M will reflect 4:2:2 sampling and file sizes will be proportionally larger. You can explicitly control this with a '-pix_fmt' flag if your downstream tool requires a specific format such as yuv420p.

Technical Notes

MXF is a complex professional container that can carry multiple essence types simultaneously — this tool targets the primary video track. The three video codecs commonly found in MXF files behave differently when decoded to Y4M: MPEG-2 (used in XDCAM, IMX, and D-10 masters) is typically 4:2:2 and will produce large Y4M files reflecting that full chroma resolution; H.264-in-MXF (used in XAVC and some AVC-Intra variants) decodes to 4:2:0 or 4:2:2 depending on the profile; MJPEG decodes to 4:2:0 or 4:1:1. The '-c:v rawvideo' flag tells FFmpeg to write decoded pixel data without re-encoding — this is not a remux, it is a full decode. Because Y4M carries no audio, no subtitle streams, and no container-level metadata, any MXF-specific properties such as UMID, timecode tracks, descriptive metadata, and auxiliary audio tracks are silently discarded. For workflows where audio must be preserved, run a parallel 'ffmpeg -i input.mxf -vn -c:a copy audio_out.mxf' or export to a WAV file before conversion. The resulting Y4M files are compatible with tools that read the YUV4MPEG2 format, including mencoder, mjpegtools, VapourSynth (via the y4m source filter), and most command-line encoders.

Related Tools