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: 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
06 0E 2B 34The 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
0D 01 02 01 01 02 04 00The header partition pack
Byte 14 gives the partition kind (
02header,03body,04footer) and byte 15 its state:04means 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
0D 01 02 01 01 01 09 00The operational pattern
Inside the partition pack, a label names the file's operational pattern.
01 01means single item, single package: OP1a, the most common kind. An OP-Atom file has10in that position instead. - 4
03 01 02 10 01 00 00 00Fill
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
Primer packLocal 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
02 53 … 2F 00, 36 00, 37 00Header 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
06 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 with00 00 01 B3, a normal MPEG-2 sequence header. Its length83 00 29 74is BER-coded:83says 3 length bytes follow, giving 10,612. - 8
0D 01 02 01 01 10 01 00The 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
0D 01 02 01 01 11 01 00The 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
0x80is 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:
| Pattern | What's in a file | Typical use |
|---|---|---|
| OP1a | One 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-Atom | A 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. |
| OP1b | Several 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/MXFfolder, 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:
| Format | What it is | MXF's role |
|---|---|---|
| AS-11 | AMWA specifications for delivering finished programmes to broadcasters, starting with the UK's DPP | A 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 others | Video and audio as separate MXF track files, assembled by an XML playlist (the CPL) |
| DCP | Digital Cinema Package, what cinemas play | JPEG 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.mxflists 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.
# 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.mp4For 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
| Symptom | Usual cause | Fix |
|---|---|---|
| Video plays with no sound | An 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 picture | You 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 editor | An 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 scrub | Long-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 value | Broadcast 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 combed | Interlaced 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
- SMPTE ST 377-1:2019, MXF File Format Specification
- Library of Congress: Material Exchange Format (MXF)
- Library of Congress: MXF Operational Pattern Atom (OP-Atom)
- Library of Congress: Interoperable Master Format (IMF)
- Adobe: Premiere Pro supported file formats
- ARRI: ARRIRAW FAQ (MXF/ARRIRAW)
Last reviewed 27 October 2026.