HLS / DASH delivery: the exact ladder, packaging and manifest you get

This page is the specification rather than the pitch. Everything below is what a channel on the adaptive HLS / DASH line actually produces: the container, the ladder, the manifest structure, the audio and subtitle tracks, the DRM, the origin authentication and the failover behaviour. These are the things an integrator checks before signing, in the order they get asked.

PER CHANNEL / MONTH EUR 200
GLASS-TO-GLASS 4 - 8 s
LADDER RUNGS 4
POINTS OF PRESENCE 195
/01

From source to manifest

Every channel is captured once, at the core site nearest its source: a satellite downlink, a broadcaster contribution feed, or a playout we run. The transport stream is normalised there: frame rate, audio loudness and clock are made regular before anything is encoded, because an irregular source is what breaks a ladder, not a shortage of bitrate.

One transcode produces the whole ladder. All four rungs share a GOP structure and an IDR cadence aligned to the segment boundary, which is what lets a player change rung between segments without a visible cut or an audio gap. Audio is encoded once per language and referenced by every rung, so a video switch never re-buffers the sound.

Packaging is a single CMAF pass: the same fragmented MP4 segments are described by an HLS multivariant playlist and by an MPEG-DASH manifest. There is no second encode and no second copy on disk for DASH, which is why both manifests come with every channel at no extra charge.

From the packager, the segments are published to the origin at the core site and served from the delivery edge nearest the viewer. Packaging, encryption and recording all happen at the core; the edges only cache. That is the boundary to keep in mind when reading the failover section: an edge is replaceable at any moment, an origin is a pair.

/02

The adaptive ladder

RungResolutionFPSVideo bitrateCodec profile
11920 × 1080254000 kbpsH.264 High @ L4.0
21280 × 720251800 kbpsH.264 High @ L3.1
3960 × 540251100 kbpsH.264 Main @ L3.1
4640 × 36025600 kbpsH.264 Main @ L3.0

The ladder above is the default for a full-rate HD channel, special requirements are possible. Rungs are capped constant bitrate rather than open VBR, so a busy scene cannot spike a mobile viewer off the top rung, and an operator or a property can size a link from the table instead of from an average.

It is not fixed by decree. A channel destined for cabins or thin uplinks can be trimmed to the bottom two rungs, and where every target device is known to decode it, an HEVC top rung can be added beside the H.264 one. Ask per channel and we state the ladder in the delivery note.

Audio adds 128 kbps per language on top of whichever video rung is playing, and subtitles a few kbps more. One viewer on the top rung with a single audio track is therefore about 4.1 Mbps, not 4.

/03

Packaging and delivery specification

ContainerCMAF (fMP4), one segment set behind both manifests; MPEG-TS segments on request
ManifestsHLS (EXT-X-VERSION 7 or higher) and MPEG-DASH (dynamic MPD), from one packager
Video codecH.264 High and Main, 8-bit 4:2:0; an HEVC top rung per channel on request
Audio codecAAC-LC stereo at 128 kbps per language; source E-AC-3 carried where the rights holder and the target devices allow it
Segments4 s by default, 2 s on request; IDR aligned across every rung
Live window3 minutes of segments in each media playlist, EXT-X-PROGRAM-DATE-TIME on every segment
Latency4 - 8 s glass-to-glass on standard HLS with 4 s segments
Low latencyLL-HLS with EXT-X-PART and blocking playlist reload, enabled per channel; the part duration and the resulting target latency are agreed against the channel's own source rather than quoted generically
Catch-upCloud DVR add-on: a rolling 7-day window addressable as a VOD playlist, 30 days on request
DRMWidevine and PlayReady (CENC) and FairPlay (CBCS) from our own licence server, EUR 19 per channel per month
Origin authToken, signed URL or mTLS, with a CORS allow-list per customer
OriginsTwo core sites per channel out of 6, 99.99% origin availability
Delivery195 points of presence in 121 countries, or your own CDN pulling our origin
EgressEUR 0.09 per GB on our CDN, nothing metered on yours
/04

The URL space

Endpoints are issued per customer against a hostname of ours, or against your own where you front the origin with your CDN. The channel slug is the one in the catalogue, so a manifest URL can be built from an order without asking us for a list.

Everything below the multivariant playlist is discoverable from it: you never have to construct a rung, audio or subtitle URL yourself. The paths are documented because integrators need them for cache rules, WAF rules and log parsing, not because a player does.

  • /live/{channel}/master.m3u8 Multivariant playlist: every video rung, every audio rendition, every subtitle group.
  • /live/{channel}/{rung}/index.m3u8 Media playlist per rung: fMP4 initialisation segment, then the sliding live window.
  • /live/{channel}/audio/{lang}.m3u8 Audio rendition per language, referenced from the multivariant playlist by EXT-X-MEDIA.
  • /live/{channel}/text/{lang}.m3u8 Segmented WebVTT per subtitle language, on the same segment boundaries as the video.
  • /live/{channel}/manifest.mpd MPEG-DASH manifest over the same segments, for players that prefer it.
  • /dvr/{channel}/{from}/{to}.m3u8 Catch-up and start-over window as a VOD playlist, with the cloud DVR add-on.
  • /licence/{widevine|playready|fairplay} Licence endpoints, one per DRM system, called with the token your platform issues.
/05

Audio, subtitles and metadata

A channel keeps what the broadcaster sends. Every audio track present at capture is encoded and published as its own rendition with a language tag, a role and a default flag, rather than being remuxed down to one language to save bitrate. Where the source carries audio description or an original-language track, that arrives as a selectable rendition too.

Subtitles are converted rather than dropped. DVB subtitles and teletext pages become segmented WebVTT for HLS and IMSC1 for DASH, and CEA-608/708 captions carried inside the video are passed through in-band as well, because some certified devices render only those. Which of the three a given channel has depends on what the broadcaster transmits, and we state it per channel.

Programme metadata comes from the same guide the EPG feed serves: 14 days forward and 7 days back, in up to 9 languages, as XMLTV or as JSON over REST. Segment timing is tied to it by EXT-X-PROGRAM-DATE-TIME, which is what makes a start-over request land on a programme boundary rather than on a segment boundary.

  • One audio rendition per language, AAC-LC stereo at 128 kbps, language-tagged
  • DVB subtitle and teletext conversion to WebVTT for HLS and IMSC1 for DASH
  • CEA-608/708 passed through in-band for the devices that need it
  • EXT-X-PROGRAM-DATE-TIME on every segment, accurate to wall-clock time
  • EPG in up to 9 languages, XMLTV or JSON, from EUR 9 per channel
  • SCTE-35 markers preserved on request, for the channels whose source carries them
/06

DRM, tokens and CORS

DRM is applied in the packager rather than bolted on afterwards. The same CMAF segments are encrypted for CENC (Widevine, PlayReady) and for CBCS (FairPlay). Keys rotate on the period you choose, and the licences are issued by our own licence server; there is no third-party DRM contract in the middle.

Entitlement stays yours. Your player presents the token your platform already issues to its subscribers, or we call your authorisation endpoint before issuing a licence. Playback policy: output protection, HDCP level, territory, concurrent streams, is set per channel and enforced at licence issue, not only in the manifest.

Access to the manifest itself is a separate matter from DRM, and it applies to clear channels too. We support a short-lived token on the playlist with a longer-lived signed prefix for the segments, plain signed URLs, or mTLS between your CDN and our origin. The TTLs, the secret rotation and the CORS allow-list are set per customer: unlike the ladder there is no default we publish, because a sensible value depends on whether your player renews mid-session.

  • Widevine (L1/L3), PlayReady (SL2000/SL3000) and FairPlay Streaming
  • CENC and CBCS from a single CMAF packaging pass
  • Key rotation per channel and per period
  • Licence issued against your token, or via a callback to your entitlement API
  • AES-128 HLS encryption where a rights holder asks for encryption rather than DRM
  • Access-Control-Allow-Origin restricted to the app origins you name
  • Geo policy enforced at the edge and at licence issue, per channel
/07

Origins, failover and players

Every channel is packaged at two core sites, independently, from two captures. Both publish the same URL space, so a failover is not a re-provisioning: the second origin answers the same paths with the same segment names and the same keys, and a player reloading a playlist is simply served from somewhere else.

On our CDN, the switch happens under the anycast entry and edges home to whichever core is reachable, with origin shielding so a segment is fetched once per edge. If you run your own CDN, you configure both origin hostnames as a primary and a failover pool; the segment names match, so a cache filled from one origin stays valid against the other.

For players that support it we can also publish redundant variant streams inside the multivariant playlist, pointing at the second origin. It is the belt-and-braces option: it costs nothing but it doubles the variant list, so it is off unless you ask for it.

BrowsersNative HLS in Safari, hls.js 1.x elsewhere, Shaka Player for DASH
AppleAVPlayer on iOS, iPadOS and tvOS: native HLS with FairPlay.
AndroidExoPlayer / Media3 on phones, tablets, Android TV, Google TV and Fire TV, with Widevine
Smart TVSamsung Tizen and LG webOS through AVPlay, with PlayReady or Widevine depending on the model year
Set-top boxesAny box with an HLS or DASH client; our white-label apps cover Tizen, webOS, Android TV, Apple TV and Roku
Commercial playersNothing proprietary is required: THEOplayer, JW Player, Bitmovin and Video.js play these manifests with their stock configuration
/08

How to order it

Adaptive HLS / DASH is a delivery line rather than a project: EUR 200 per channel per month, no setup fee. MultiDRM at EUR 19, cloud DVR at EUR 29, restart at EUR 15 and the EPG feed at EUR 9 are all per channel per month too, so an upsell tier only costs you on the channels you actually sell it on.

Volume discounts start at ten channels and reach 20%; a 12-month term takes a further 10% off, 24 months 15%. Both are applied by the order itself, so the rate card and the invoice agree. Egress on our CDN is metered at EUR 0.09 per GB with no commitment and no minimum, and is not charged at all when you serve from your own.

Manifests are issued within 12 hours once the rights for your territory and platform are confirmed, DRM keys included. Before that, the free three-day trial issues an HLS / DASH manifest and an SRT endpoint for the same channel, at full bitrate with the real guide, without a card.

/09

Questions engineers ask first

What exactly do we point our player at?

One multivariant playlist URL per channel. Every rung, every audio language and every subtitle track is described inside it, so your app configuration is that URL plus, where DRM is enabled, the licence endpoint and your token. There is nothing else to build.

Do you offer low-latency HLS?

Yes, per channel, using EXT-X-PART and blocking playlist reload. We deliberately do not publish one target-latency figure for the whole platform because it depends on the channel's own source. Tell us which channels matter, we measure them and state the number we will hold alongside the 4 to 8 seconds standard HLS already gives you.

Can we use our own CDN?

Yes. You pull the same manifests over HTTPS from our origin with token, signed-URL or mTLS auth, and we shield the origin so your CDN fetches each segment once. Segment naming and Cache-Control are documented for your configuration, the packaging and the DRM are identical, and there is no egress line from us at all.

Which DRM systems, and whose licence server?

Widevine, PlayReady and FairPlay, from our own licence server, as the MultiDRM add-on at EUR 19 per channel per month. If you already run a licence server we can package against your keys instead and charge for the packaging only.

How do the subtitles the broadcaster sends actually arrive?

As segmented WebVTT for HLS and IMSC1 for DASH, converted from the DVB subtitle or teletext page in the source, with CEA-608/708 passed through in-band as well. What a given channel carries depends on what is transmitted, so we state it per channel rather than promising all three everywhere.

Can we take HLS / DASH and SRT for the same channel?

Yes, and many customers do: SRT into the headend, adaptive HLS / DASH for the apps. Both are billed per channel per month: EUR 150 for SRT and EUR 200 for adaptive HLS / DASH. The free trial ships both hand-offs for the same channel so both teams can test at once.