Adaptive Bitrate (ABR) — je technologie streamování, která dynamicky mění kvalitu videa v závislosti na šířce pásma kanálu uživatele. Na rozdíl od progresivního stahování ABR rozděluje video na malé segmenty po 2–10 sekundách a za chodu mezi nimi přepíná. Podle Bitmovin Video Developer Report (2025) používá 86% streamovacích služeb ABR k zajištění plynulého přehrávání na mobilních zařízeních.
Hlavní body
Adaptive Bitrate (ABR) — je metoda streamování mediálního obsahu, při které je videosoubor zakódován do několika variant s různým bitrate a rozlišením a přehrávač automaticky vybírá vhodnou variantu v reálném čase. Uživatel získává nejlepší možnou kvalitu bez bufferování při aktuální rychlosti internetu.
Na rozdíl od tradičního progresivního stahování (progressive download) ABR nevyžaduje načtení celého souboru — přehrávač požaduje krátké segmenty potřebné kvality a může mezi segmenty přepnout na jiný bitrate. To činí technologii nepostradatelnou pro mobilní aplikace, kde se rychlost sítě neustále mění.
Technologie adaptivního streamování byla poprvé komerčně realizována společností Move Networks v roce 2006 pro vysílání kanálu ABC. V roce 2009 Apple představil HTTP Live Streaming (HLS), který se stal prvním široce rozšířeným standardem ABR založeným na HTTP a dodnes dominuje v ekosystému iOS.
V roce 2012 MPEG vydal standard MPEG-DASH (Dynamic Adaptive Streaming over HTTP) jako univerzální formát ABR nezávislý na konkrétním dodavateli. DASH je podporován všemi hlavními platformami a je jediným standardem ABR přijatým ISO.
Proces ABR streamování začíná ve fázi přípravy obsahu: původní video je kódováno do několika variant s různým bitrate — například 144p, 360p, 720p, 1080p a 4K. Každá varianta je rozdělena na segmenty stejné délky, obvykle 2, 4, 6 nebo 10 sekund.
Na serveru je vytvořen manifestový soubor, který popisuje dostupné varianty (representations), jejich bitrate, rozlišení, kodek a odkazy na segmenty. Přehrávač stáhne manifest, analyzuje jej a zahájí přehrávání s nejnižším bitrate pro rychlý start.
<!-- MPEG-DASH MPD manifest -->
<MPD profiles="urn:mpeg:dash:profile:isoff-live:2011">
<Period>
<AdaptationSet mimeType="video/mp4">
<Representation id="720p" bandwidth="2800000"
width="1280" height="720">
<SegmentTemplate duration="4"
media="seg_$Number$.m4s"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
Během přehrávání ABR algoritmus na straně klienta neustále monitoruje stav sítě a bufferu. Pokud šířka pásma klesá, přehrávač požaduje následující segmenty s nižším bitrate, aby se vyhnul bufferování. Když se síť zlepší, bitrate se zvýší.
Přepínání mezi bitrate probíhá na hranicích segmentů, což činí změnu kvality téměř nepostřehnutelnou pro uživatele. Moderní přehrávače dokáží synchronizovat klíčové snímky mezi různými variantami, aby přepínání probíhalo bez vizuálních artefaktů.
Tři hlavní ABR protokoly dominují na trhu streamování videa: HLS od Apple, MPEG-DASH jako otevřený standard a Smooth Streaming od Microsoftu. Každý protokol definuje formát manifestu, způsob segmentace a šifrovací mechanismus.
| Protokol | Vývojář | Manifest | Segmenty | Šifrování |
|---|---|---|---|---|
| HLS | Apple | .m3u8 (M3U playlist) | .ts nebo .fmp4 | AES-128, SAMPLE-AES |
| MPEG-DASH | ISO/MPEG | .mpd (XML) | .m4s nebo .webm | CENC (Common Encryption) |
| Smooth Streaming | Microsoft | .ismc (XML, IIS) | .ismv / .isma | PlayReady (AES-128 CT) |
HLS — nejrozšířenější ABR protokol, vestavěný v iOS, tvOS a Safari na macOS. Formát manifestu je založen na rozšířených M3U playlistech, kde hlavní playlist (master playlist) obsahuje odkazy na varianty (variant streams) s různým bitrate a rozlišením.
Každá varianta odkazuje na svůj vlastní mediální playlist se seznamem segmentů. HLS podporuje živé přenosy pomocí mechanismu posuvného okna (sliding window), kde staré segmenty jsou odstraňovány a nové přidávány, jak přicházejí.
MPEG-DASH — jediný ABR standard přijatý ISO/IEC 23009-1 v roce 2012. Na rozdíl od HLS používá DASH XML manifest (MPD — Media Presentation Description) a není vázán na konkrétní formát kontejneru — podporuje fMP4, WebM a další.
DASH poskytuje flexibilní segmentaci: segmenty mohou mít v rámci stejného streamu různou délku, což optimalizuje poměr mezi latencí a režií HTTP požadavků. Pro živé přenosy DASH podporuje šablony segmentů (SegmentTemplate).
Podle testů Bitmovin (2025) vykazují HLS a DASH srovnatelný výkon z hlediska doby spuštění a četnosti přepínání bitrate. HLS poskytuje nižší latenci na iOS díky hardwarové podpoře, DASH je preferován na Androidu kvůli flexibilnějšímu nastavení ABR algoritmů.
Srdce ABR — algoritmus výběru bitrate, který určuje, která varianta bude požadována jako další. Existují tři hlavní rodiny algoritmů: založené na propustnosti (throughput-based), založené na bufferu (buffer-based) a hybridní (hybrid). Každý přístup má své silné stránky a omezení.
Throughput-based algoritmy odhadují šířku pásma sítě na základě rychlosti stahování předchozích segmentů. Algoritmus vybírá maximální bitrate, který nepřesahuje 80–90% naměřené šířky pásma, s rezervou pro fluktuace.
Nevýhodou tohoto přístupu je citlivost na krátkodobé výkyvy rychlosti. Pokud síť prudce klesne během stahování segmentu, odhad šířky pásma je podhodnocen a kvalita je zbytečně snížena.
Buffer-based algoritmy rozhodují na základě zaplnění bufferu přehrávače. Pokud je buffer zaplněn z více než 70%, algoritmus zvyšuje bitrate; pokud buffer klesne pod 20% — prudce sníží kvalitu, aby zabránil bufferování.
Hlavní výhodou je absence falešných snížení při krátkodobých poklesech sítě, protože buffer vyhlazuje fluktuace. Nevýhodou je pomalá reakce na stabilní změny šířky pásma.
Moderní přehrávače, jako ExoPlayer a AVPlayer, používají hybridní algoritmy kombinující odhad šířky pásma a stav bufferu. ExoPlayer standardně používá ABR algoritmus DefaultTrackSelector, který zohledňuje oba parametry.
V letech 2024–2025 jsou aktivně zaváděny ML-based algoritmy předpovídající budoucí změny sítě na základě historických dat. Netflix, YouTube a Twitch používají vlastní modely strojového učení k optimalizaci výběru bitrate, což snižuje počet přepnutí o 30–40%.
Mobilní aplikace kladou zvláštní požadavky na ABR kvůli nestabilitě mobilních sítí (4G/LTE, 5G) a omezenému výpočetnímu výkonu zařízení. Přehrávač se musí rychle přizpůsobit změnám sítě a zároveň minimalizovat spotřebu energie a datový provoz.
Podle OpenSignal (2025) se průměrná rychlost 4G v městských podmínkách pohybuje od 5 do 50 Mbit/s a v pohybu může klesnout na 1 Mbit/s. ABR algoritmy musí přepínat mezi bitrate během 1–2 segmentů, aby se vyhnuly bufferování při vjezdu do tunelu nebo výtahu.
val trackSelector = DefaultTrackSelector(context).apply {
setParameters(buildUponParameters {
setMaxVideoSizeSd()
setAllowVideoMixedMimeTypeAdaptiveness(true)
setPreferredVideoRoleFlags(
roleFlags(C.ROLE_FLAG_DESCRIBES_VIDEO_AND_AUDIO)
)
})
}
val adaptiveTrackSelectionFactory =
AdaptiveTrackSelection.Factory()
val player = ExoPlayer.Builder(context)
.setTrackSelector(trackSelector)
.setMediaSourceFactory(
DashMediaSource.Factory(dataSourceFactory)
)
.build()
Pro mobilní aplikace je kritické rychlé počáteční načtení (time-to-first-frame méně než 2 sekundy). Doporučuje se začít přehrávání s nejnižším dostupným bitrate a poté zvyšovat kvalitu, jak se buffer plní — strategie start-low-and-rise.
Spotřeba energie je také důležitá: hardwarová akcelerace dekódování by měla být použita pro všechny bitrate. Softwarové dekódování vysokých bitrate (1080p a výše) na starších zařízeních může vést k přehřívání a throttlingu.
Klíčové metriky kvality ABR: počet přepnutí bitrate (switches), čas do prvního snímku (TTFF), poměr přepnutí k celkové době sledování. Index kvality QoE (Quality of Experience) se vypočítá jako vážený součet bitrate, penalizace za přepnutí a penalizace za bufferování.
Pro monitorování ABR se doporučuje sbírat analytiku z přehrávače: aktuální bitrate, velikost bufferu, šířka pásma, počet a typy přepnutí. Data pomáhají poskytovatelům obsahu optimalizovat sadu dostupných bitrate a naladit segmentaci pro konkrétní publikum.
Často kladené otázky
Adaptive Bitrate (ABR) — technologie streamování, která dynamicky mění kvalitu videa podle podmínek sítě. Přehrávač rozděluje video na segmenty a pro každý vybírá optimální bitrate, čímž zajišťuje plynulé přehrávání bez bufferování na mobilních zařízeních.
HLS — protokol Apple, používající M3U playlisty a transportní toky (.ts). MPEG-DASH — otevřený standard ISO s XML manifestem (.mpd) a flexibilními formáty segmentů. HLS je lepší na iOS, DASH na Androidu a webu.
ABR zlepšuje vnímanou kvalitu odstraněním bufferování: video může dočasně snížit rozlišení při zhoršení sítě, ale nezastaví se. Uživatel preferuje plynulé video v 720p před přerušovaným 4K s neustálým bufferováním.
ExoPlayer používá hybridní algoritmus DefaultTrackSelector, který zohledňuje šířku pásma sítě a zaplnění bufferu. K dispozici jsou také strategie Throughput-based a Buffer-based s možností přizpůsobení přes AdaptiveTrackSelection.Factory.
Délka segmentů určuje frekvenci adaptace: krátké segmenty (2 sekundy) rychleji reagují na změny sítě, ale vytvářejí více HTTP požadavků. Segmenty 4–6 sekund jsou optimální pro mobilní zařízení z hlediska poměru rychlosti adaptace k režii.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také