File types · Explainer

The MXF file (.mxf)

An MXF file is a Material Exchange Format file: the SMPTE-standard container that professional cameras, editing systems and broadcasters use to store and exchange video, audio, timecode and metadata. This guide explains what's inside one, the operational patterns that make one MXF differ from another, why ordinary players struggle with it, and how to open and convert it.

At a glance

Full name
Material Exchange Format
Extensions
.mxf
MIME type
application/mxf (registered, RFC 4539)
Kind
Binary container for professional video, audio, timecode and metadata, written as KLV (key, length, value) items
Standard
SMPTE ST 377-1 (first published as SMPTE 377M in 2004; latest edition 2019), with separate standards for the generic container (ST 379), OP1a (ST 378) and OP-Atom (ST 390)
First released
2004 as a SMPTE standard, after work begun in 1999 by the Pro-MPEG Forum
Common codecs
MPEG-2, H.264 (XAVC, XF-AVC, AVC-Intra), DNxHD, JPEG 2000, DV, ARRIRAW; uncompressed PCM audio
Opens with
DaVinci Resolve, Premiere Pro, Avid Media Composer, Final Cut Pro, VLC, FFmpeg. Not web browsers
Magic number
None officially. Files start with a header partition pack key, 06 0E 2B 34 02 05 01 01 0D 01 02 …, sometimes after a run-in of up to 64 KiB

The basics

What is an MXF file?

MXF is the file format of professional video. Broadcast and cinema cameras record to it, editing systems store media in it, and TV networks and streaming services take programmes delivered in it. It was developed from 1999 by the Pro-MPEG Forum, with backing from SMPTE and the EBU, to replace tapes with files that every vendor's equipment could exchange. SMPTE published it as a standard in 2004.

Like MOV and MP4, MXF is a container: the picture and sound inside are compressed with a separate codec such as MPEG-2, H.264, DNxHD or JPEG 2000. What sets MXF apart is how much it carries besides the media: timecode, detailed descriptions of each track, unique material identifiers (UMIDs) that link a clip to its source, and optional descriptive metadata such as titles, shot locations and people.

MXF shares its data model with AAF, the Advanced Authoring Format used to exchange edit projects. MXF uses a subset of AAF's objects, stored in a simpler form that can be streamed, and an edit project exchanged as AAF can point to media in MXF files.

In short

An MXF is a working file for production and delivery, not for watching. To share one, convert it to MP4.

Anatomy

What's inside an MXF file

An MXF file is one long run of KLV items: a 16-byte key saying what the item is, a length, then the value. They're grouped into partitions, each starting with a partition pack. Below is every main item of a 1-second OP1a file we made for this page with FFmpeg (MPEG-2 video, one mono PCM track), as read from the file. It isn't offered for download; padding and repeated items are left out. Offsets and lengths are in bytes, and … stands for the shared start of a key.

tiny.mxf (KLV listing, with key bytes in hex)
tiny.mxf: 1 s, 320×240 MPEG-2 + mono 48 kHz PCM, OP1a, 351,801 bytes

offset    key (16 bytes)                         length   item
0         06 0E 2B 34 02 05 01 01                136      header partition pack
          0D 01 02 01 01 02 04 00                         02 = header, 04 = closed, complete
          (value) 00 01 00 03 …                           MXF version 1.3, partition offsets,
                                                          OP label …0D 01 02 01 01 01 09 00
156       06 0E 2B 34 01 01 01 02                336      KLV fill: padding
          03 01 02 10 01 00 00 00
512       … 0D 01 02 01 01 05 01 00              1,808    primer pack: local tags → labels
2,560     06 0E 2B 34 02 53 01 01                186      Preface
          0D 01 01 01 01 01 2F 00
2,764     … 01 01 30 00                          198      Identification: "FFmpeg",
                                                          "OP1a Muxer"
2,980     … 01 01 18 00                          92       Content Storage
3,089     … 01 01 36 00                          140      Material Package: the output
3,247     … 3B 00 · 0F 00 · 14 00 / 11 00 …               tracks, sequences, timecode,
                                                          source clips
4,171     … 01 01 37 00                          160      Source (file) Package: the essence
4,349     … 01 01 44 00                          96       Multiple Descriptor
5,067     … 01 01 51 00                          267      MPEG-2 video descriptor
5,673     … 01 01 47 00                          107      AES3 audio descriptor
5,800     … 01 01 23 00                          72       Essence Container Data
6,144     … 0D 01 02 01 01 03 04 00              136      body partition pack (03 = body)
6,656     06 0E 2B 34 02 05 … 04 01 01 00        57       system item: content package 1
7,168     06 0E 2B 34 01 02 01 01                10,612   picture element: frame 1
          0D 01 03 01 15 01 05 00                         length 83 00 29 74 (BER)
          (value) 00 00 01 B3 …                           an MPEG-2 sequence header
17,920    … 0D 01 03 01 16 01 03 00              3,840    sound element: 1,920 samples
…                                                         25 content packages in all
350,208   … 0D 01 02 01 01 04 04 00              136      footer partition pack (04 = footer)
350,720   … 02 53 … 0D 01 02 01 01 10 01 00      502      index table segment: 25 frames
351,744   … 0D 01 02 01 01 11 01 00              40       random index pack: where each
                                                          partition starts
  1. 106 0E 2B 34

    The SMPTE prefix

    Every key in an MXF file starts with these 4 bytes: they mark a SMPTE Universal Label. The rest of the key is a registered code that says exactly what follows, so readers can skip any item whose key they don't know, using its length.

  2. 20D 01 02 01 01 02 04 00

    The header partition pack

    Byte 14 gives the partition kind (02 header, 03 body, 04 footer) and byte 15 its state: 04 means closed and complete, so the metadata in it is final. A recorder that's still writing leaves it open and fixes it later, which is why a file from a camera that lost power can still be recovered.

  3. 30D 01 02 01 01 01 09 00

    The operational pattern

    Inside the partition pack, a label names the file's operational pattern. 01 01 means single item, single package: OP1a, the most common kind. An OP-Atom file has 10 in that position instead.

  4. 403 01 02 10 01 00 00 00

    Fill

    KLV fill items are padding that readers skip. Writers use them to align items to boundaries (this file aligns to 512 bytes) and to leave room for metadata that grows.

  5. 5Primer pack

    Local tags

    Header metadata is stored as compact local sets, using 2-byte tags instead of full 16-byte labels for each property. The primer pack is the table that maps each local tag back to its full label.

  6. 602 53 … 2F 00, 36 00, 37 00

    Header metadata

    The Preface, Identification (who wrote the file) and the packages. The Material Package is the timeline you'd play; the Source (file) Package describes the stored essence. Tracks, sequences and source clips connect the two, and descriptors give codec details: 320×240 at 25 fps, 48 kHz audio.

  7. 706 0E 2B 34 01 02 01 01 0D 01 03 01 15 …

    Essence elements

    The media itself. In this frame-wrapped file each video frame and its audio form a content package: a system item, a picture element (15) and a sound element (16). The picture's value starts with 00 00 01 B3, a normal MPEG-2 sequence header. Its length 83 00 29 74 is BER-coded: 83 says 3 length bytes follow, giving 10,612.

  8. 80D 01 02 01 01 10 01 00

    The index table

    Gives the byte offset of every frame, so a player or editor can jump to any frame without reading those before it. Here it's in the footer; long recordings may spread index segments through the file.

  9. 90D 01 02 01 01 11 01 00

    The random index pack

    The last item in the file: a list of where every partition starts. A reader can go to the end, read it and reach any partition directly.

Under the hood

KLV: how MXF stores everything

Everything in an MXF file, from metadata to video frames, is a KLV triplet, the coding defined in SMPTE ST 336:

  • Key: 16 bytes, a SMPTE Universal Label starting 06 0E 2B 34. Labels come from public registers kept by SMPTE, so a key means the same thing in every file.
  • Length: BER-coded. A single byte below 0x80 is the length itself; otherwise the low bits say how many bytes of length follow. Writers often use a fixed 4-byte form (83 xx xx xx) even for small values, so the length can be filled in later without moving anything.
  • Value: the data: a partition pack, a metadata set, a frame of video.

Because each item says what it is and how long it is, a reader can skip anything it doesn't need, and vendors can add their own items ("dark" metadata, in MXF terms) without breaking other software. The cost is overhead: every frame of video carries at least 17 bytes of key and length, and metadata sets are verbose.

Structure

Partitions, packages, wrapping and the index

  • Partitions. A file has a header partition, optional body partitions and usually a footer. Each starts with a partition pack and can repeat the header metadata. Repeating it lets a file be read while it's still being written or sent, and helps recover a file that was cut short.
  • Packages. The Material Package is the output timeline: what plays, in what order. A File (or Source) Package describes the essence as stored. An OP1a file has one of each; more complex patterns use several.
  • Frame wrapping or clip wrapping. In a frame-wrapped file, each frame's picture and sound are separate KLV items stored side by side, frame after frame, like a tape. In a clip-wrapped file, the whole clip's essence is one huge KLV item, usually one track per file. Cameras mostly frame-wrap; OP-Atom files are typically clip-wrapped.
  • Index tables. Map frame numbers to byte offsets. Codecs with frames of fixed size need just one entry; long-GOP codecs such as MPEG-2 and H.264 need one per frame.
  • The random index pack. A list of partition offsets at the very end of the file, used to find everything quickly.

These choices are why two valid MXF files can behave very differently in the same software: one may open instantly and scrub smoothly, the other may need to be scanned first, or may not open at all.

Variants

Operational patterns: OP1a, OP-Atom and the rest

An operational pattern describes how complicated a file's structure is: how many items play in sequence (1 = a single item, 2 = a playlist, 3 = edited items) and how packages relate (a = one package, b = several played together, c = alternatives). Most of the nine combinations are rare. Two matter in practice:

PatternWhat's in a fileTypical use
OP1aOne item: video and all its audio tracks interleaved in one file.Camera recordings (Sony XDCAM and XAVC, Canon XF-AVC), broadcast delivery (AS-11), IMF track files. The most widely supported.
OP-AtomA single essence track per file: one file for the video, one for each audio track, linked by metadata.Avid Media Composer's media storage, Panasonic P2 cameras, Digital Cinema Packages.
OP1bSeveral packages played together, such as separate video and audio files referenced from one file.Some Panasonic P2 formats.

The pattern is recorded in the partition packs and the Preface, and ffprobe file.mxf shows it as operational_pattern_ul: OP1a labels contain 0d010201.0101 (FFmpeg's own files show …0d010201.01010900), and OP-Atom labels contain 0d010201.10.

Where it's used

Cameras, editing systems and delivery formats

  • Sony: XDCAM HD and XDCAM EX recordings (MPEG-2) and XAVC (H.264) use MXF OP1a; Sony's older IMX recorders wrote MPEG-2 in MXF too.
  • Panasonic: P2 cameras record DV, DVCPRO and AVC-Intra in MXF, as OP-Atom or OP1b.
  • Canon: professional camcorders and Cinema EOS cameras record XF-AVC, which is H.264 in MXF.
  • ARRI: the ALEXA Mini LF and ALEXA 35 record ARRIRAW wrapped in MXF; the mapping is documented as SMPTE RDD 54.
  • Avid: Media Composer stores its media as OP-Atom MXF, one file per track, in an Avid MediaFiles/MXF folder, usually with DNxHD or DNxHR video.

MXF is also the basis of several delivery and distribution formats, each a set of rules on top of it:

FormatWhat it isMXF's role
AS-11AMWA specifications for delivering finished programmes to broadcasters, starting with the UK's DPPA constrained OP1a file with required programme metadata
IMF (SMPTE ST 2067)Interoperable Master Format: one package for many versions of a film or series, required by Netflix among othersVideo and audio as separate MXF track files, assembled by an XML playlist (the CPL)
DCPDigital Cinema Package, what cinemas playJPEG 2000 picture and PCM sound in MXF track files, often encrypted

Playback

Why ordinary players struggle with MXF

  • No support at all. Browsers don't play MXF; the file downloads. The players built into Windows and macOS don't open most MXF files without extra software either.
  • Professional codecs. Even when the container is understood, the codec may not be: JPEG 2000, DNxHD, AVC-Intra or ARRIRAW need professional software or FFmpeg.
  • Half a clip. In OP-Atom, picture and sound are separate files. Open the video file alone and there's no sound; open an audio file and there's no picture. Editors combine them using the metadata.
  • Many mono tracks. Broadcast files often carry 4, 8 or 16 separate mono audio tracks. A simple player may play only the first, so you hear one channel or none.
  • Interlaced video. Broadcast HD is often interlaced (1080i). Players that don't deinterlace show combing on moving edges.
  • Size. Production codecs run at tens or hundreds of megabits per second, so a few minutes can be several gigabytes.

Keep the folder structure

Camera cards store MXF files inside a folder structure with XML and index files beside them. Copy the whole card, not just the .mxf files: editing software uses the extra files to rebuild clips that span several files and to find the matching audio.

How to

How to open, edit and convert an MXF file

  • Edit: DaVinci Resolve, Premiere Pro and Avid Media Composer import camera MXF directly; Final Cut Pro opens it on Macs with Apple's Pro Video Formats installed. Resolve and Premiere can also export MXF.
  • Just watch: VLC opens most OP1a files on Windows, macOS and Linux. mpv and IINA work too, since they use FFmpeg.
  • Inspect: ffprobe file.mxf lists the streams, the operational pattern and the timecode; MediaInfo shows the same, including the essence container and wrapping.
  • Convert for sharing: FFmpeg or HandBrake to H.264 MP4, as below.
terminal
# check what's inside: codecs, tracks, operational pattern
ffprobe input.mxf

# MXF to MP4: H.264 + AAC from the first audio track
ffmpeg -i input.mxf -map 0:v:0 -map 0:a:0 -c:v libx264 -crf 20 \
  -pix_fmt yuv420p -c:a aac -movflags +faststart output.mp4

# two mono tracks (left, right) combined into stereo
ffmpeg -i input.mxf -filter_complex "[0:a:0][0:a:1]amerge=inputs=2[a]" \
  -map 0:v:0 -map "[a]" -c:v libx264 -crf 20 -pix_fmt yuv420p \
  -c:a aac output.mp4

For interlaced sources, add a deinterlacer such as -vf yadif before the output name. -pix_fmt yuv420p matters because professional files are usually 4:2:2, which many players can't show in H.264.

Troubleshooting

Common MXF problems and fixes

SymptomUsual causeFix
Video plays with no soundAn OP-Atom file: the audio is in separate MXF files. Or the player only plays the first of several audio tracks.Import the whole folder into an editor, or map the audio tracks explicitly with FFmpeg.
Sound only, no pictureYou opened an OP-Atom audio file, or the player can't decode the video codec.Find the matching video file (same clip, V01 in Avid's naming), or use VLC or an editor.
Won't import into an editorAn unsupported codec or operational pattern, or a file copied without the rest of the card.Copy the full card structure; update the editor; check the codec with MediaInfo.
Slow to open or scrubLong-GOP video without a full index, or the index only in the footer of a file still being copied.Wait for the copy to finish, or rewrap: ffmpeg -i in.mxf -map 0 -c copy out.mxf.
Timecode starts at 10:00:00:00 or another odd valueBroadcast convention: the timecode track is part of the file.Nothing is wrong; editors use it to match clips with other material.
Plays in VLC but looks combedInterlaced video.Turn on deinterlacing (Video → Deinterlace in VLC), or deinterlace when converting.

Sample files

There are no sample MXF files on this page. To make an OP1a test file, run ffmpeg -f lavfi -i testsrc2=size=1920x1080:rate=25 -f lavfi -i sine=frequency=440:sample_rate=48000 -t 5 -c:v mpeg2video -b:v 50M -pix_fmt yuv422p -c:a pcm_s24le test.mxf; for OP-Atom, write a single stream with -f mxf_opatom.

Put it online

Have an MXF file? Give it a link.

Drop an MXF on 99helpers and it gets its own address to send to an editor or client instead of a transfer service. Browsers can't play MXF, so the file downloads when the link is opened; add an MP4 copy if people just need to watch it.

Questions

MXF files, frequently asked

What is an MXF file?

A Material Exchange Format file: the SMPTE-standard container for professional video and audio, with timecode and metadata. Broadcast cameras, editing systems and TV delivery formats use it.

How do I open an MXF file?

To watch it, use VLC. To edit it, use DaVinci Resolve, Premiere Pro, Avid Media Composer or Final Cut Pro. Browsers and most built-in players can't open MXF.

How do I convert MXF to MP4?

Run ffmpeg -i input.mxf -c:v libx264 -crf 20 -pix_fmt yuv420p -c:a aac output.mp4, or use HandBrake or an editor's export. Add -vf yadif for interlaced footage.

Why does my MXF file have no sound?

It's probably OP-Atom, where audio is stored in separate MXF files next to the video. Import the whole folder into an editor. Otherwise the player may be playing only one of several mono audio tracks.

What's the difference between OP1a and OP-Atom?

OP1a keeps video and all its audio interleaved in one file. OP-Atom puts each track in its own file: one for the video and one per audio track. OP1a is used by cameras and for delivery; OP-Atom by Avid and Panasonic P2.

Is MXF better than MOV?

They do similar jobs. MXF is an open SMPTE standard used across broadcast vendors and for delivery formats such as AS-11 and IMF; MOV is Apple's format, common for ProRes. Which one you use usually depends on the camera, editor or delivery spec.

Why are MXF files so large?

They usually hold production codecs at high bit rates, often several uncompressed audio tracks, and they're meant for editing, not distribution. A converted MP4 is typically a small fraction of the size.

Related formats

Other file types explained

Keep going

Related

Sources

Last reviewed 27 October 2026.