Adaptive Bitrate (ABR) — це технологія потокової передачі, яка динамічно змінює якість відео залежно від пропускної здатності каналу користувача. На відміну від прогресивного завантаження, ABR розбиває відео на невеликі сегменти по 2–10 секунд і перемикається між ними на льоту. За даними дослідження Bitmovin Video Developer Report (2025), 86% стрімінгових сервісів використовують ABR для забезпечення плавного відтворення на мобільних пристроях.
Головне
Adaptive Bitrate (ABR) — це метод потокової передачі медіаконтенту, при якому відеофайл кодується на кілька варіантів із різним бітрейтом та роздільною здатністю, а плеєр автоматично вибирає відповідний варіант у реальному часі. Користувач отримує максимально можливу якість без буферизації при поточній швидкості інтернету.
На відміну від традиційного прогресивного завантаження, 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 секунд.
На сервері створюється маніфест-файл, який описує доступні варіанти, їх бітрейт, роздільну здатність, кодек та посилання на сегменти. Плеєр завантажує маніфест, аналізує його та починає відтворення з найнижчого бітрейту для швидкого старту.
<!-- 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-плейлистах, де головний плейлист містить посилання на варіанти з різними бітрейтами та роздільними здатностями.
Кожен варіант посилається на свій медіа-плейлист зі списком сегментів. HLS підтримує живі трансляції через механізм слайдингового вікна, де старі сегменти видаляються, а нові додаються в міру надходження.
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-based алгоритми, що передбачають майбутні зміни мережі на основі історичних даних. Netflix, YouTube та Twitch використовують власні моделі машинного навчання для оптимізації вибору бітрейту, що знижує кількість перемикань на 30–40%.
Мобільні додатки пред'являють особливі вимоги до ABR через нестабільність стільникових мереж (4G/LTE, 5G) та обмежену обчислювальну потужність пристроїв. Плеєр повинен швидко адаптуватися до змін мережі, мінімізуючи при цьому енергоспоживання та використання трафіку.
За даними OpenSignal (2025), середня швидкість 4G у міських умовах варіюється від 5 до 50 Мбіт/с, а в русі — може падати до 1 Мбіт/с. 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: кількість перемикань бітрейту, час до першого кадру (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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також