Xenon Post
Xenon Post — Tools & Reference

IMF & Streaming Delivery

Interoperable Master Format has become the required delivery format for original content at every major streaming platform. Understanding its structure — and what the platforms actually require — is now essential knowledge for any post supervisor or facility working on long-form drama, documentary, or feature film.

01 — What is IMF?

IMF — Interoperable Master Format — is an open standard (SMPTE ST 2067) for packaging high-value long-form content. Where a traditional flat-file delivery provides one file representing one version of a programme, an IMF package contains the master essence files alongside multiple Composition Playlists — XML documents that each describe a different version of the content. One package can serve every territory, language version, edit variant, and delivery format from a single set of picture files.

IMF was developed to solve a version management problem that flat-file workflows cannot address efficiently. A streaming platform distributing a 10-episode series to 50 territories — each needing a dubbed audio track, a different subtitle file, and in some cases a different picture edit for regulatory compliance — would require an unmanageable number of individual files under a flat-file model. IMF packages that content once, with version management built into the format.

Flat file (ProRes / MXF)
One file, one version
A single ProRes or MXF file represents exactly one version of the content. Creating ten versions requires ten separate files, each containing a full copy of the picture essence. Version management is external to the files themselves.
IMF package
One package, many versions
A single IMF package contains the picture and all audio tracks once. Multiple Composition Playlists within the same package define different versions — each referencing the shared essence by UUID rather than duplicating it.

Netflix began requiring IMF for all original productions above a budget threshold from around 2018 and has since extended the requirement broadly. Amazon, Apple TV+, Disney+, and most major streamers now require IMF for long-form original commissions. For productions working with these platforms, understanding IMF has moved from niche technical knowledge to fundamental post-production literacy.

IMF shares conceptual DNA with DCP — the Digital Cinema Package format used for cinema distribution. Both use MXF containers, JPEG 2000 video, PCM audio, and a Composition Playlist model. The key difference is scope: DCP is a distribution format for cinema exhibition; IMF is a mastering format for streaming and broadcast post-production. A DCP is typically created from an IMF package, not the other way around.

02 — Inside an IMF package

An IMF package is a folder containing a defined set of files. Every file in the package has a globally unique UUID identifier, and all files are cross-referenced by UUID rather than by filename — which means filenames are arbitrary and the package structure remains valid even if files are renamed or reorganised on a storage system.

IMF PACKAGEASSETMAP.xmlMaps UUIDs → filenamesEntry point for all readersPKL_[uuid].xmlPacking ListSHA-256 hash of every fileCPL_[uuid].xmlComposition PlaylistTimeline for one versionvideo_[uuid].mxfJPEG 2000 picture essenceaudio_EN_[uuid].mxfPCM audio — Englishaudio_FR_[uuid].mxfPCM audio — Frenchsubtitle_[uuid].xmlIMSC 1.1 timed textMXF ESSENCE FILESverifies integrity of all files
Fig. 1 — IMF package structure. The ASSETMAP indexes every file by UUID. The PKL hashes all files for integrity verification. One or more CPLs define editorial timelines referencing the shared MXF essence files.

ASSETMAP

The ASSETMAP.xml is the entry point to the package. It maps every asset’s UUID to its physical filename and location on disk. Any application reading the package starts here to discover what files exist and where they live. The ASSETMAP also records the total storage size of each file.

Packing List (PKL)

The PKL_[uuid].xml is the package’s integrity manifest. It records a cryptographic hash (SHA-256) of every file in the package. When an IMF-capable system receives the package, it recomputes the hashes and compares them to the PKL. Any corruption introduced during transfer — a bit flip, a partial file, a truncated copy — shows up immediately as a hash mismatch. The PKL also records each file’s size and MIME type. It is the primary QC gate against data corruption.

Composition Playlist (CPL)

The CPL_[uuid].xml is the editorial timeline for one version of the content. It defines which video essence to use, which audio tracks to include, which subtitles to overlay, and in what order — expressed as a sequence of reels. A reel is a segment of the programme; most deliverables are structured as a single reel, though multi-reel structures are used for theatrical features split at the projector changeover points.

A single IMF package can contain multiple CPLs — one for each version of the content. Each CPL references the shared video MXF by UUID; only audio and subtitle references differ between versions. This is what enables version management without duplicating the picture essence.

MXF essence files

The actual content — picture, audio, and in some configurations subtitles — is stored in MXF (Material Exchange Format) containers. Each essence type is stored in a separate MXF file: one file for video, one per audio configuration, and so on. MXF is a professional broadcast container designed for high-value content; it supports rich metadata, timecode, and the JPEG 2000 and PCM codecs used in IMF.

FileFormatRole
ASSETMAP.xmlXMLPackage index — maps UUIDs to filenames; entry point for all IMF readers
VOLINDEX.xmlXMLVolume index — identifies the storage volume; required but minimal content
PKL_[uuid].xmlXMLPacking List — SHA-256 hashes and file sizes for integrity verification
CPL_[uuid].xmlXMLComposition Playlist — editorial timeline for one version, references MXF essence by UUID
video_[uuid].mxfMXF / J2KPicture essence — JPEG 2000, 16-bit, 4K or 2K
audio_[uuid].mxfMXF / PCMAudio essence — 24-bit PCM; one file per audio configuration
sub_[uuid].xmlIMSC 1.1Timed text subtitles — TTML/XML; referenced from CPL

03 — CPLs and version management

The power of IMF as a mastering format comes from the Composition Playlist’s ability to define arbitrary versions of a programme by referencing shared essence. The video essence — which is by far the largest component of any package — is stored once. Every version that uses the same picture simply points to the same video MXF by UUID.

ESSENCE FILESCOMPOSITION PLAYLISTSOUTPUT VERSIONSvideo_main.mxfJPEG 2000 · 4K HDRaudio_EN_5.1.mxfPCM · English 5.1audio_EN_LtRt.mxfPCM · English stereoaudio_FR_5.1.mxfPCM · French 5.1CPL — Englishvideo_main.mxfaudio_EN_5.1.mxfaudio_EN_LtRt.mxfCPL — Frenchvideo_main.mxfaudio_FR_5.1.mxf(shares video — not re-sent)English version4K HDR · EN 5.1 + stereoFrench version4K HDR · FR 5.1video_main.mxf is shared between both CPLs — the 4K HDR picture is delivered only once
Fig. 2 — Multiple Composition Playlists referencing shared MXF essence. Both the English and French versions use the same video file; only the audio MXF differs. The 4K HDR picture is delivered once regardless of how many language versions are required.

Common CPL variants in a streaming package

CPL variantWhat it referencesPurpose
Programme (main)Video + primary audio (all tracks) + subtitlesThe primary deliverable — full programme with titles and credits
TextlessVideo (textless elements) + M&E audioTextless title sequences and credit backgrounds for localisation
Dubbed languageVideo + dubbed audio MXFSame picture as main version; different audio MXF for each territory
HDR / SDRDifferent video MXF (HDR or SDR grade)Separate HDR and SDR picture files, each with its own CPL
Airline / censoredEdited video MXF + notesAlternate picture edit for platforms with content restrictions

Supplemental packages

A Supplemental IMF Package (SIMP) adds new content to an existing base package without re-delivering the original essence. It contains a new PKL, a new CPL, and any new MXF files — but references the base package’s video MXF by UUID. The receiving system assembles the complete version from both the original and supplemental packages.

This is the mechanism streaming platforms use for localisation pipelines. The picture is delivered once in the base package. As each territory’s dubbed audio and subtitle work is completed, a supplemental package containing only those new files is sent. Netflix then combines them at their end to produce the complete localized version — without the facility re-sending the entire 2 TB picture.

Supplemental packages mean dubbed audio does not block picture delivery. Once the base package is accepted by the platform, dubbed audio supplements can follow on their own schedule as each territory completes. This is a significant workflow improvement over flat-file delivery, where all elements had to be ready simultaneously.

04 — Codecs and technical specifications

Video: JPEG 2000

The video codec used in streaming IMF packages is JPEG 2000 (J2K) — a wavelet-based codec developed for high-quality image archiving and mastering. Despite the similar name, JPEG 2000 is entirely unrelated to standard JPEG; it uses a completely different algorithm and is designed for professional production rather than web delivery.

J2K is used because it can operate at 16-bit depth, which is required to carry the full tonal range of HDR content. At streaming IMF bitrates (typically 200–800 Mbps for 4K HDR), J2K is visually lossless — any compression artefacts are below the threshold of perception on a properly calibrated monitor. Files are extremely large: a 2-hour 4K HDR feature commonly produces a package of 2–4 TB. J2K is not a distribution codec and cannot be played back by QuickTime Player or standard media players without specialised tools.

Audio: PCM

All audio in an IMF package is stored as uncompressed PCM (Pulse-Code Modulation) at 24-bit depth and 48 kHz sample rate. Each audio configuration (stereo, 5.1, 7.1, Dolby Atmos ADM) is stored in a separate MXF file. The platform transcodes to their delivery format — AAC, Dolby AC-3, or Dolby TrueHD — at their end from the PCM master.

Subtitles: IMSC 1.1

IMSC (Internet Media Subtitles and Captions) 1.1 is the subtitle format used in IMF packages. It is a profile of TTML (Timed Text Markup Language) — XML files that carry subtitle text, timing, and positioning metadata. IMSC supports both subtitle and closed caption workflows and can be referenced from the CPL as a sidecar to the video essence. Netflix, Amazon, and Apple TV+ all require IMSC subtitles in their IMF deliverables.

Colour

Colour metadata is embedded in the MXF file and declared in the CPL. For SDR deliverables, the working colour space is Rec.709 with BT.1886 transfer function. For HDR deliverables, the mastering colour space is P3-D65 (Display P3) with a PQ transfer function, delivered in a Rec.2020 container. Dolby Vision IMF deliverables additionally carry the Dolby Vision metadata layer, which references the HDR10 base layer.

File size is the biggest practical surprise for producers encountering IMF for the first time. A 45-minute episode in 4K HDR can produce an IMF package of 400–800 GB. This requires NAS or SAN storage, not consumer hard drives, and a high-bandwidth delivery pipeline — typically an accelerated upload service or physical drive courier.

05 — Netflix delivery specifications

Netflix publishes its delivery requirements in the Netflix Originals Content Delivery Specifications — commonly called the “white pages” — available to partners through the Netflix Partner Help Centre. The current specification uses IMF Application Profile #2E (the Netflix OPL profile). The full document is authoritative and should always be confirmed against the current version; the specifications summarised here reflect established requirements but are subject to revision.

Picture

ParameterRequirement
Video codecJPEG 2000 (ISO/IEC 15444-1), lossy
Bit depth16-bit (required for HDR; accepted for SDR)
Chroma subsampling4:2:2 minimum; 4:4:4 preferred for HDR
Resolution4K (3840 × 2160) or 2K (1920 × 1080)
Frame rateNative production frame rate (23.976, 24, 25, 29.97, 50, 59.94)
ScanProgressive only
Colour — SDRRec.709, BT.1886 transfer function
Colour — HDRP3-D65 mastering, Rec.2020 container, PQ EOTF (HDR10)
Dolby VisionIMF Dolby Vision Layer — HDR10 base layer + Dolby Vision metadata layer
IMF Application ProfileApp #2E (Netflix OPL)

Audio

ParameterRequirement
Audio codecPCM, 24-bit, 48 kHz
Integrated loudness−27 LKFS (±2 LU tolerance)
True peak−2 dBTP maximum
LRA (loudness range)No absolute limit; dynamic content is expected
Required stereo trackLtRt (Lt/Rt) or Lo/Ro downmix
5.1 surroundRequired where the original mix is 5.1 or greater
Dolby AtmosADM BWF delivery; required for Atmos original mixes
M&E stemRequired; full M&E and textless M&E where applicable
Channel assignmentPer ITU-R BS.775 and Netflix channel labelling spec

Netflix’s −27 LKFS loudness target is intentionally quieter than most other platforms and broadcast standards. Australian free-to-air delivery requires −24 LUFS; most music streaming platforms normalise to −14 LUFS. A mix mastered to −24 LUFS for Australian broadcast will need to be adjusted for Netflix delivery — this is not simply a level trim, as loudness normalisation affects the relationship between programme dynamics and the loudness target. Budget a separate loudness conform session for any project delivering to both broadcast and Netflix.

Subtitles and timed text

Netflix requires IMSC 1.1 (TTML) subtitle files for all content with dialogue. Subtitles must be delivered as XML sidecar files referenced in the CPL — not burned into picture. Netflix provides a subtitle specification covering timing accuracy, character encoding (UTF-8), positioning constraints, and line length. Timed text files must pass Netflix’s own validation tooling before the package is accepted.

Package structure and delivery

Netflix requires a single root folder containing all package files. The ASSETMAP must be at the root level. Nested subfolders are permitted for organisational clarity but are not required. Netflix’s transfer system — Aspera-based file transfer to Netflix-designated storage — is the required delivery mechanism; no physical media delivery is accepted for primary deliverables.

06 — Amazon, Apple TV+, and Disney+

While Netflix was the first major platform to mandate IMF at scale, all other major streaming services have followed. Each publishes their own delivery specification; the broad technical requirements are consistent, but details differ — particularly around audio loudness targets, subtitle formats, and which IMF application profiles are accepted.

PlatformIMF requiredLoudness targetPrimary videoNotes
NetflixYes — all Originals−27 LKFS / −2 dBTPJ2K 16-bitApp #2E; Aspera transfer; full white pages published
AmazonYes — Amazon Originals−24 LKFS / −2 dBTPJ2K 16-bitIMF App #2E; Aspera transfer; specs via Amazon partner portal
Apple TV+Yes — Apple Originals−27 LKFS / −2 dBTPJ2K or ProRes 4444 XQApple accepts ProRes in their IMF variant; Signiant transfer
Disney+Yes — Disney+ Originals−24 LKFS / −2 dBTPJ2K 16-bitAspera transfer; specs via Disney delivery partner
Paramount+Case by case−24 LKFS / −2 dBTPJ2K or ProResIMF required for Originals; flat file accepted for acquisitions

Always confirm specifications directly with the platform before starting a delivery. All major streamers update their delivery specs periodically — sometimes significantly — and the version of the specification signed off in the production contract may differ from what is currently published. Treat the information in this guide as a reference baseline, not a substitute for the current platform documentation.

07 — Creating IMF in DaVinci Resolve

DaVinci Resolve Studio (the paid licence — not the free version) has included native IMF export since version 18. For straightforward single-CPL deliverables, Resolve can produce a complete, valid IMF package without additional software.

Prerequisites

Before exporting, the following must be configured correctly:

Resolve Color Management (RCM) enabled. Without RCM, the colour metadata written into the MXF wrapper will be incorrect or absent. Set the timeline colour space to the appropriate mastering space (P3-D65 for HDR, Rec.709 for SDR), and confirm the output colour space matches the deliverable.

Loudness compliance confirmed. Resolve includes an integrated loudness meter. Verify that the integrated loudness of the programme meets the platform requirement before export — correcting loudness after J2K encoding and packaging wastes significant time.

Timeline frame rate and resolution locked. The IMF package must be exported at the native production frame rate. Resolve does not perform frame rate conversion during IMF export.

Export workflow

In Resolve: File → Export → IMF Package. The export dialog prompts for the application profile (select App #2E for Netflix; check the platform spec for others), the output path, the video codec settings (J2K tile size, bit rate), and the audio track configuration. Resolve generates the ASSETMAP, PKL, CPL, and MXF files automatically.

Subtitle IMSC files cannot currently be created within Resolve — they must be prepared separately (in EZTitles, Cavena, Ooona, or equivalent subtitle software) and added to the package root, with the CPL manually updated to reference them. This step is commonly handled by a specialist subtitle facility or by the platform’s localisation team.

Third-party IMF tools

ToolUseNotes
DaVinci Resolve StudioIMF creation + J2K encodingNative export; adequate for most streaming deliverables; free upgrade for Studio licence holders
Fraunhofer imscAProfessional IMF masteringHigh-end facility tool; supports complex multi-CPL packages and supplemental workflows
EasyDCP+IMF and DCP creationWidely used in facilities; supports both IMF and DCP workflows from the same interface
PhotonIMF validationNetflix open-source Java validator; checks PKL hashes, CPL structure, codec compliance; essential pre-delivery QC tool
Netflix ArcherPlatform-side QCNetflix's internal ingest system; runs additional technical and editorial QC beyond what Photon checks

08 — QC and common failures

IMF packages must be validated before delivery. The minimum validation step is running Photon — Netflix’s open-source Java validator — against the complete package. Photon checks PKL hash integrity, CPL structural validity, ASSETMAP completeness, and codec compliance against the declared application profile. A package that fails Photon will be rejected immediately on ingest.

Common technical failures

FailureCauseFix
PKL hash mismatchFile was modified, copied incompletely, or corrupted after the PKL was generatedRe-export the affected file and regenerate the PKL, or re-export the entire package
Wrong J2K application profileJPEG 2000 codec parameters (tile size, profile, bit depth) do not match the declared IMF application profileRe-export with the correct codec settings for the target application profile (e.g. App #2E for Netflix)
Incorrect colour metadataEOTF or colour primaries declared in the MXF wrapper do not match the actual content — e.g. PQ declared when the content is SDRConfirm RCM settings before export; correct colour metadata requires a full re-export
Loudness non-complianceIntegrated loudness falls outside the platform tolerance (most commonly too loud for Netflix −27 LKFS target)Apply loudness correction in the mix session and re-export; a level-only adjustment is insufficient if programme dynamics change
Audio channel assignment errorMXF audio track metadata incorrectly labels channels (e.g. Ls/Rs labelled as Ls/Rs in a 5.1 file but routed incorrectly)Verify channel routing in the audio MXF; re-export audio essence with correct channel assignment metadata
Supplemental CPL references not resolvableA supplemental CPL references assets in the base package by UUID, but the base package is not present on the receiving systemDeliver supplemental packages alongside the base package, or confirm the platform has already ingested the base
IMSC subtitle timing errorsSubtitle timing does not align with programme timecode, or TTML syntax errors prevent parsingValidate IMSC files with a dedicated subtitle validator before adding to the package

A failed IMF delivery to Netflix triggers a formal rejection notice with a reason code. Correction and redelivery takes time — often days if the failure requires a full re-export. Build IMF QC into the post schedule as a distinct step before the delivery deadline, not as a last-hour check. Running Photon on an in-progress package during export can catch structural errors early, before the full package is complete.

AU Broadcaster Delivery Specs →Audio Loudness & Delivery →Colour Science & Management →