The classical OTT workflow encodes once and packages once per delivery format: an MP4 mezzanine becomes a set of CMAF segments, plus HLS playlists, plus DASH manifests, plus separate DRM-encrypted variants. All these artifacts are pre-generated and stored before any viewer arrives. Just-in-time packaging (JIT) inverts this: store only one canonical asset (typically CMAF segments encrypted with one CENC key), and generate HLS playlists, DASH manifests, multi-DRM variants and even ad-insertion stitches at request time.
The benefit is storage: instead of 4× duplication for HLS + DASH × clear + DRM, you store 1×. For a large OTT catalog with hundreds of thousands of titles this can be the difference between 5 PB and 20 PB of object storage. The cost is CPU at the packaging layer — every manifest fetch runs a packaging operation, every segment fetch may apply DRM encryption on the fly. JIT packagers (Unified Streaming, AWS MediaPackage, Akamai's JIT module, EZDRM) are built specifically for this fast-path operation.
JIT is most valuable for catalogs where storage cost dominates CPU cost, and for live-to-VOD workflows where the asset is created in real time but should be available in every format the moment it lands. JIT also enables per-user manifest variants — different bitrate ladders per device, dynamic SSAI stitching per session, personalised renditions — that pre-packaged workflows can't do.

