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.
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.
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.
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.
Common CPL variants in a streaming package
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
Audio
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.
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
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
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.