Manifest manipulation

Content substitution vs content insertion, in DASH and HLS, with illustrated examples

As illustrated in our beginner's guide to ABR streaming, the manipulation of manifests is the key mechanism that underpins the broadpeak.io product line.

Depending on the type of application and the type of content, there are two types of manifest manipulation that can be applied: content substitution, or content insertion. Below is a detailed description of how and when broadpeak.io operates these two logics.

📘

About the examples

All examples in this page are made up and shortened for the purpose of illustration. They are not functional manifests, and will differ in a number of respects to manifests that will actually be used as Source or generated by broadpeak.io.

White space and comment lines are also freely added that would like not be found in real manifests.

Substitution logic

The substitution logic is used whenever the primary Source defined in a Service is a Live stream.

broadpeak.io only manipulates manifests when there is an active "event" in the manifest's DVR window.

For the sake of simplicity, we call an "event" anything that can cause a manifest to be manipulated, whether it is a slot scheduled for replacement, a SCTE-35 marker in the source, or an out-of-band ad-break API trigger.

Essentially, broadpeak.io will replace references to original media segments in the manifest(s), with alternate media segments, for the duration of the "event".

Insertion logic

The insertion logic is used whenever the primary Source defined in a Service is On-Demand content (aka VOD, aka non-linear content).

At the time of writing, the only application in which insertion applies is Dynamic Ad Insertion. Le logic of insertion is activated in the context where the Ad server returns a VAST payload that contains a compatible creative, or a VMAP payload which contains different placement opportunities with compatible creatives. Only then is the manifest manipulated. Based on the type of ad inserted (pre-roll, mid-roll or post-roll), the insertion of new content may happen right at the start of the stream, in the middle of it, or at the end of it.

Essentially, broadpeak.io will insert references to new media segments among references to original segments in the manifest(s), and change the total duration of the stream.


📘

Even if there is no substitution or insertion to be made, broadpeak.io may still make some alterations to the original manifests before returning them.

In both cases, there are specificities which apply based on the type of application and the streaming protocol used, which are listed in the following pages.

👉 HLS playlist manipulation looks at how manipulation of HLS multivariant and media playlists is performed.

👉 DASH manifest manipulation looks at how manipulation of DASH presentations is performed.