Adaptive Bitrate (ABR) — е технология за стрийминг, която динамично променя качеството на видеото в зависимост от пропускателната способност на канала на потребителя. За разлика от прогресивното изтегляне, ABR разделя видеото на малки сегменти от 2–10 секунди и превключва между тях в движение. Според Bitmovin Video Developer Report (2025), 86% от стрийминг услугите използват ABR за осигуряване на гладко възпроизвеждане на мобилни устройства.
Основни точки
Adaptive Bitrate (ABR) — е метод за стрийминг на медийно съдържание, при който видеофайлът се кодира в множество варианти с различен битрейт и резолюция, а плейърът автоматично избира подходящия вариант в реално време. Потребителят получава максимално възможното качество без буфериране при текущата интернет скорост.
За разлика от традиционното прогресивно изтегляне (progressive download), ABR не изисква зареждане на целия файл — плейърът изисква къси сегменти с необходимото качество и може да превключи на друг битрейт между сегментите. Това прави технологията незаменима за мобилни приложения, където скоростта на мрежата постоянно се променя.
Технологията за адаптивен стрийминг е реализирана за първи път търговски от Move Networks през 2006 г. за излъчване на канал ABC. През 2009 г. Apple представи HTTP Live Streaming (HLS), който стана първият широко разпространен ABR стандарт, базиран на HTTP, и все още доминира в екосистемата на iOS.
През 2012 г. MPEG пусна стандарта MPEG-DASH (Dynamic Adaptive Streaming over HTTP) като универсален ABR формат, независим от конкретен доставчик. DASH се поддържа от всички големи платформи и е единственият ABR стандарт, приет от ISO.
Процесът на ABR стрийминг започва на етапа на подготовка на съдържанието: оригиналното видео се кодира в множество варианти с различен битрейт — например 144p, 360p, 720p, 1080p и 4K. Всеки вариант се разделя на сегменти с еднаква продължителност, обикновено 2, 4, 6 или 10 секунди.
На сървъра се създава манифест файл, който описва наличните варианти (representations), техния битрейт, резолюция, кодек и връзки към сегментите. Плейърът изтегля манифеста, анализира го и започва възпроизвеждане с най-ниския битрейт за бърз старт.
<!-- 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>
По време на възпроизвеждане ABR алгоритъмът от страна на клиента непрекъснато следи състоянието на мрежата и буфера. Ако пропускателната способност намалее, плейърът изисква следващите сегменти с по-нисък битрейт, за да избегне буфериране. Когато мрежата се подобри, битрейтът се увеличава.
Превключването между битрейтове става на границите на сегментите, което прави промяната на качеството почти незабележима за потребителя. Съвременните плейъри могат да синхронизират ключови кадри между различните варианти, така че превключването да става без визуални артефакти.
Три основни ABR протокола доминират на пазара за видео стрийминг: HLS от Apple, MPEG-DASH като отворен стандарт и Smooth Streaming от Microsoft. Всеки протокол определя формата на манифеста, метода на сегментация и механизма за криптиране.
| Протокол | Разработчик | Манифест | Сегменти | Криптиране |
|---|---|---|---|---|
| HLS | Apple | .m3u8 (M3U playlist) | .ts или .fmp4 | AES-128, SAMPLE-AES |
| MPEG-DASH | ISO/MPEG | .mpd (XML) | .m4s или .webm | CENC (Common Encryption) |
| Smooth Streaming | Microsoft | .ismc (XML, IIS) | .ismv / .isma | PlayReady (AES-128 CT) |
HLS — най-разпространеният ABR протокол, вграден в iOS, tvOS и Safari на macOS. Форматът на манифеста се основава на разширени M3U плейлисти, където главният плейлист (master playlist) съдържа връзки към варианти (variant streams) с различни битрейтове и резолюции.
Всеки вариант сочи към свой медиен плейлист със списък на сегментите. HLS поддържа живи предавания чрез механизма на плъзгащ се прозорец (sliding window), при който старите сегменти се премахват, а нови се добавят при пристигането им.
MPEG-DASH — единственият ABR стандарт, приет от ISO/IEC 23009-1 през 2012 г. За разлика от HLS, DASH използва XML манифест (MPD — Media Presentation Description) и не е обвързан с конкретен контейнерен формат — поддържа fMP4, WebM и други.
DASH осигурява гъвкава сегментация: сегментите могат да имат различна продължителност в рамките на един поток, което оптимизира съотношението между латентност и натоварване от HTTP заявки. За живи предавания DASH поддържа шаблони за сегменти (SegmentTemplate).
Според тестове на Bitmovin (2025), HLS и DASH показват сравнима производителност по отношение на времето за стартиране и честотата на превключване на битрейт. HLS осигурява по-ниска латентност на iOS благодарение на хардуерната поддръжка, DASH се предпочита на Android поради по-гъвкаво конфигуриране на ABR алгоритмите.
Сърцето на ABR — алгоритъмът за избор на битрейт, който определя кой вариант да бъде поискан следващ. Съществуват три основни семейства алгоритми: базирани на пропускателна способност (throughput-based), базирани на буфер (buffer-based) и хибридни (hybrid). Всеки подход има своите силни страни и ограничения.
Throughput-based алгоритмите оценяват пропускателната способност на мрежата въз основа на скоростта на изтегляне на предишни сегменти. Алгоритъмът избира максималния битрейт, който не надвишава 80–90% от измерената пропускателна способност, оставяйки резерв за флуктуации.
Недостатъкът на този подход е чувствителността към краткотрайни скокове на скоростта. Ако мрежата рязко спадне по време на изтегляне на сегмент, оценката на пропускателната способност се занижава и качеството ненужно се понижава.
Buffer-based алгоритмите вземат решения въз основа на запълването на буфера на плейъра. Ако буферът е запълнен над 70%, алгоритъмът увеличава битрейта; ако буферът падне под 20% — рязко намалява качеството, за да предотврати буфериране.
Основното предимство е липсата на фалшиви намаления при краткотрайни спадове на мрежата, тъй като буферът изглажда флуктуациите. Недостатък — бавна реакция при стабилни промени на пропускателната способност.
Съвременните плейъри, като ExoPlayer и AVPlayer, използват хибридни алгоритми, които комбинират оценка на пропускателната способност и състояние на буфера. ExoPlayer по подразбиране използва ABR алгоритъма DefaultTrackSelector, който отчита и двата параметъра.
През 2024–2025 г. активно се внедряват ML-базирани алгоритми, които предсказват бъдещи промени в мрежата въз основа на исторически данни. Netflix, YouTube и Twitch използват собствени модели на машинно обучение за оптимизация на избора на битрейт, което намалява броя на превключванията с 30–40%.
Мобилните приложения поставят специални изисквания към ABR поради нестабилността на клетъчните мрежи (4G/LTE, 5G) и ограничената изчислителна мощност на устройствата. Плейърът трябва бързо да се адаптира към промените в мрежата, като същевременно минимизира консумацията на енергия и трафик.
Според OpenSignal (2025), средната скорост на 4G в градски условия варира от 5 до 50 Mbit/s, а в движение може да падне до 1 Mbit/s. ABR алгоритмите трябва да превключват между битрейтовете в рамките на 1–2 сегмента, за да избегнат буфериране при влизане в тунел или асансьор.
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()
За мобилните приложения критично е бързото начално зареждане (time-to-first-frame по-малко от 2 секунди). Препоръчва се да започнете възпроизвеждането с най-ниския наличен битрейт, след което да повишавате качеството, докато буферът се запълва — стратегия start-low-and-rise.
Консумацията на енергия също е важна: хардуерното ускорение на декодиране трябва да се използва за всички битрейтове. Софтуерното декодиране на високи битрейтове (1080p и нагоре) на стари устройства може да доведе до прегряване и дроселиране.
Ключови показатели за качеството на ABR: брой превключвания на битрейт (switches), време до първия кадър (TTFF), съотношение на превключванията към общото време за гледане. Индексът за качество QoE (Quality of Experience) се изчислява като претеглена сума от битрейт, наказание за превключвания и наказание за буфериране.
За мониторинг на ABR се препоръчва събиране на аналитика от плейъра: текущ битрейт, размер на буфера, пропускателна способност, брой и типове превключвания. Данните помагат на доставчиците на съдържание да оптимизират набора от налични битрейтове и да настроят сегментацията за конкретната аудитория.
Често задавани въпроси
Adaptive Bitrate (ABR) — технология за стрийминг, която динамично променя качеството на видеото според мрежовите условия. Плейърът разделя видеото на сегменти и избира за всеки оптималния битрейт, осигурявайки гладко възпроизвеждане без буфериране на мобилни устройства.
HLS — протокол на Apple, използващ M3U плейлисти и транспортни потоци (.ts). MPEG-DASH — отворен ISO стандарт с XML манифест (.mpd) и гъвкави формати на сегменти. HLS е по-добър на iOS, DASH — на Android и уеб.
ABR подобрява възприеманото качество чрез елиминиране на буферирането: видеото може временно да намали резолюцията при влошаване на мрежата, но не спира. Потребителят предпочита гладко 720p видео пред прекъсващо 4K с постоянно буфериране.
ExoPlayer използва хибриден алгоритъм DefaultTrackSelector, който отчита пропускателната способност на мрежата и запълването на буфера. Също така са налични Throughput-based и Buffer-based стратегии с възможност за персонализация чрез AdaptiveTrackSelection.Factory.
Продължителността на сегментите определя честотата на адаптация: късите сегменти (2 секунди) реагират по-бързо на промени в мрежата, но генерират повече HTTP заявки. Сегменти от 4–6 секунди са оптимални за мобилни устройства по отношение на съотношението скорост на адаптация към натоварване.
Резюме
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също