IMF Packages for Streamer Delivery
Netflix still wants an IMF package, not an MP4. Walk the CPL, PKL, markers, and supplemental versioning, and what a small studio can build without an IMF house.
An MP4 is a viewing file. Netflix's master is a package. The Netflix IMF glossary defines an IMF Package (IMP) as a collection of media files plus the assembly instructions that turn those files into a composition. You cannot "export H.264 and hope." The streamer will not transcode your social cut into an archival master.
That is not true of every platform that people call a streamer. Prime Video's Video Central spec, updated 31 May 2026, still publishes mezzanine requirements (ProRes 422 HQ in a MOV among them), and it wants programme-only files with bars, slates, and textless stripped. Read the partner doc you were given. This page is the IMF one, because that is the format Netflix, and several other studios in the Library of Congress IMF note (Warner, Disney master packages, BBC iPlayer UHD via the DPP ProRes application), actually ask for when they say "send the master."
What an IMF package actually is
IMF is SMPTE ST 2067. It is a descendant of the Digital Cinema Package idea (component files, XML inventories, hashes) pointed at versioning rather than at a projector. The Library of Congress write-up is plain: IMF is for business-to-business distribution of a primary, not for the file a subscriber plays.
A typical IMP contains:
- One or more MXF track files: picture (JPEG 2000 under Application #2E, ST 2067-21, which is the application Netflix's Photon docs name), audio (one soundfield group per track file), timed text (TTML / IMSC).
- A Composition Playlist (CPL): the timeline. Which tracks play, when, in what sync.
- A Packing List (PKL): the inventory. Every file in the package, with size and hash.
- An Asset Map: UUID to filename. IMF refers to components by UUID internally; humans refer to filenames. The Asset Map is the bridge.
- Optionally an Output Profile List (OPL), and a Volume Index if the delivery spans volumes.
Netflix's glossary adds two package kinds:
- Complete IMF Package. The PKL lists every asset the CPL needs. The first package you deliver for a title has to be complete.
- Supplemental IMF Package. The CPL references assets that are not in this PKL. Those assets already arrived in an earlier complete package. Supplementals are how you send a picture insert, a new sound track, a localized picture, or a textless without resending the whole show.
That split is the reason IMF exists. A new German texted is not a new 4K encode of the entire feature. It is a new picture track for the title sequences plus a CPL that points at the original picture for everything else.
CPL, PKL, and markers
CPL (ST 2067-3). One CPL is one version: original-language texted, original-language textless, a dubbed audio variant, a branded head-credit variant. Netflix names those as Picture Versions in the same glossary. The CPL is XML, human-readable, and it is the object QC is actually signing. If two CPLs in the same delivery describe different cuts, you have two compositions, not a confused one.
PKL. The packing list is the "did all the bytes arrive" document. A failed hash on ingest is a failed delivery, even if the picture looks fine in your NLE. Do not hand-edit a PKL to make a missing file look present.
Asset Map. If you rename a track file on disk and do not update the Asset Map, the package is broken. Treat the folder as a unit. Zip or Aspera the whole IMP, not "the MXF plus some XML."
Markers. ST 2067-3 defines markers on the CPL (sections 6.13 and 6.14 in the 2016 text Sony Pictures' IMF spec cites). They are locators, not decorations: first and last frame of the composition, credits, and whatever else the partner table requires. D-Cinema CPLs use a related vocabulary (FFEC, LFEC, FFMC, LFMC). Do not copy a DCP marker set onto an IMF CPL and assume Netflix wanted it. Put the markers the partner spec lists. If the spec is silent, ask. A missing required marker is an automated QC fail; an invented one is noise.
Netflix's own Resolve tutorial for branded titles is specific about layout even when it is not a marker: one second of black and silence, the Netflix presentation card, one second of black, then programme, and a second of black after last frame. That is a composition rule, not an MP4 export preset.
Versioning in practice.
- Deliver a Complete IMP of the original-language texted. Wait for QC.
- Deliver the textless as a Picture Version. Netflix wants it after the texted has passed, timeline-identical, picture only, no audio in that delivery.
- Fixes come back as a Supplemental IMP: new track files for the changed reels or shots, new CPL, new PKL that lists only the new files plus the CPL and Asset Map.
- A language version (localized titles) is another supplemental picture track, again after the original texted passed.
If you reprint the entire feature as a new Complete IMP every time a super changes, you have used IMF as an expensive MXF wrapper and thrown away the format.
What a small studio can actually build
You do not need a 40-seat IMF department. You do need tools that speak ST 2067, and you need to stop thinking Versely will print the package.
Versely will not. The editor is an EDL-style timeline for generating and assembling programme. A free 480p preview pass with a short per-user cooldown is for layout (how previews and the final export bill). The charged export is an H.264 viewing file, not Application #2E JPEG 2000 in MXF. Handing those clips to a human editor is the correct upstream: one frame rate, a named set of takes, a shot log. 24 fps clips on a 25 fps timeline has to be resolved before IMF, because a CPL will not save a mixed-rate conform.
A workable small-studio path:
- Finish picture and sound in the NLE or grade tool you already trust. Keep titles on a track. Print a texted and a textless of identical duration. Resolutions and color (Rec. 709 versus the HDR path the partner named) are decided here.
- Author the IMP in a tool that already implements Application #2E. Blackmagic's DaVinci Resolve Studio is the path Netflix has published tutorials for, including supplemental picture inserts. Other authoring tools exist; the requirement is the application profile, not the logo on the splash screen.
- Validate with Photon, Netflix's open-source IMF parser. Photon's own README lists Application #2E (ST 2067-21) and Application #5 ACES. Netflix Backlot runs Photon on the XML at ingest, then further MXF inspection. A Photon fail on your machine is cheaper than a Backlot fail.
- Deliver the folder as a Complete or Supplemental IMP, with the CPL/PKL/Asset Map that Photon just accepted.
What you should not do:
- Wrap an MP4 in a folder with three XML files you wrote by hand.
- Send Prime Video an IMP because this article is about IMF. Their published mezzanine spec is a different ingest.
- Strip provenance on the way in. Metadata preservation is a contract issue; IMF hashes will tell you if a file changed, not whether a C2PA manifest survived a transcode. Sign, strip, survive is the pipeline reality.
Timed text in the IMP is IMSC/TTML, not a burned social caption. Author FN, full subs, and SDH as track files the CPL can reference. If the only captions you have are pixels, you do not have an IMF text track.
FAQ
Can I deliver an IMF as a single .mp4 or .mov for convenience?
No. An IMP is a set of files. A single movie file is a different object. Some partners accept a ZIP of the IMP for transport; the ZIP is an envelope, not the format. Unzipped, Photon still has to see a PKL, an Asset Map, a CPL, and the track files the PKL hashes.
Do I need JPEG 2000 if the partner allows ProRes IMF?
Only if their application says so. ST 2067-21 Application #2E is JPEG 2000 and is what Netflix Photon support is documented around. SMPTE RDD 59-1 is the DPP ProRes application the BBC path uses. Mixing them is how you fail the first automated check. Ask which application ID the request is under before you encode.
What is the smallest title worth wrapping as IMF?
Whatever the partner named as an IMF delivery. A branded :30 that Netflix is ingesting as an original still goes through the same Complete-then-Supplemental logic as a series episode. A social ad that will never leave a media-buyer folder should not be wrapped as IMF "for quality." Quality lives in the grade and the mix, not in the wrapper.
If Photon passes, will Netflix QC pass?
Not necessarily. Photon is schema, application, and package integrity. Netflix then runs its own Backlot validations, inspection, and automated QC (including, on some titles, ITU-R BT.1702 flash testing). Photon is the gate you can run locally. It is not a substitute for the partner's content QC.