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-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: количество переключений битрейта (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 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также