MPEG-DASH
DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1) — 2011, MPEG. Открытый стандарт для стриминга, идейный конкурент HLS. Похож концептуально: манифест + сегменты. Не работает в Safari нативно — только через MSE.
MPD (Media Presentation Description)
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="dynamic"
minBufferTime="PT2S" mediaPresentationDuration="PT30M">
<Period>
<AdaptationSet mimeType="video/mp4">
<Representation id="1080p" bandwidth="5000000" width="1920" height="1080">
<SegmentTemplate media="1080p/seg-$Number$.m4s"
initialization="1080p/init.mp4"
startNumber="1" duration="4000" timescale="1000"/>
</Representation>
</AdaptationSet>
<AdaptationSet mimeType="audio/mp4" lang="en">
<Representation bandwidth="128000"/>
</AdaptationSet>
</Period>
</MPD>
Отличия от HLS
| HLS | DASH | |
|---|---|---|
| Манифест | m3u8 (text) | MPD (XML) |
| Контейнер | TS или fMP4 | только fMP4/CMAF |
| Кодеки | любые | codec-agnostic |
| Safari | нативно | только через MSE |
| DRM | FairPlay | PlayReady, Widevine, ClearKey |
| Стандарт | Apple (IETF) | ISO/MPEG |
CMAF
Common Media Application Format — единый контейнер (fMP4), одобрен и HLS (v7+) и DASH. Позволяет держать один набор сегментов и два манифеста (m3u8 + mpd) → CDN cost -50%.
Low-latency DASH
Chunked transfer + короткие сегменты + hints (SegmentTemplate с $Time$). Достигает 2-4 сек end-to-end.
Кто использует
- Netflix, YouTube, Amazon Prime — DASH (+HLS-фолбэк для Apple)
- Российские платформы (Ivi, Kinopoisk) — DASH
- Google Play Movies — DASH
Плееры
- dash.js — reference, JS
- Shaka Player (Google)
- Bitmovin Player