Adaptive Bitrate в мобильных приложениях — что это, алгоритмы и протоколы

Автор: IT Sectr Опубликовано: 2026-05-24 Время чтения: 8 мин

Adaptive Bitrate (ABR) — это технология потоковой передачи, которая динамически изменяет качество видео в зависимости от пропускной способности канала пользователя. В отличие от прогрессивного скачивания, ABR разбивает видео на небольшие сегменты по 2–10 секунд и переключается между ними на лету. По данным исследования Bitmovin Video Developer Report (2025), 86% стриминговых сервисов используют ABR для обеспечения плавного воспроизведения на мобильных устройствах.

Главное

  • ABR — технология адаптивной битрейтной передачи, меняющая качество видео по условиям сети.
  • Сегментация — видео делится на фрагменты по 2–10 секунд, каждый доступен в нескольких битрейтах.
  • HLS и MPEG-DASH — основные протоколы для ABR-стриминга в мобильных приложениях.
  • Алгоритмы выбора битрейта включают throughput-based, buffer-based и гибридные подходы.
  • ABR улучшает UX за счёт минимизации буферизации и быстрого старта воспроизведения.

Что такое Adaptive Bitrate?

Adaptive Bitrate (ABR) — это метод потоковой передачи медиаконтента, при котором видеофайл кодируется на несколько вариантов с разным битрейтом и разрешением, а плеер автоматически выбирает подходящий вариант в реальном времени. Пользователь получает максимально возможное качество без буферизации при текущей скорости интернета.

В отличие от традиционного прогрессивного скачивания (progressive download), 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?

Процесс ABR-стриминга начинается на этапе подготовки контента: исходное видео кодируется в несколько вариантов с разным битрейтом — например, 144p, 360p, 720p, 1080p и 4K. Каждый вариант разбивается на сегменты одинаковой длительности, обычно 2, 4, 6 или 10 секунд.

На сервере создаётся манифест-файл, который описывает доступные варианты (representations), их битрейт, разрешение, кодек и ссылки на сегменты. Плеер скачивает манифест, анализирует его и начинает воспроизведение с самого низкого битрейта для быстрого старта.

Структура ABR-манифеста (MPEG-DASH MPD)

xml
<!-- 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, MPEG-DASH, Smooth Streaming

Три основных протокола ABR доминируют на рынке потокового видео: HLS от Apple, MPEG-DASH как открытый стандарт и Smooth Streaming от Microsoft. Каждый протокол определяет формат манифеста, способ сегментации и механизм шифрования.

ПротоколРазработчикМанифестСегментыШифрование
HLSApple.m3u8 (M3U playlist).ts или .fmp4AES-128, SAMPLE-AES
MPEG-DASHISO/MPEG.mpd (XML).m4s или .webmCENC (Common Encryption)
Smooth StreamingMicrosoft.ismc (XML, IIS).ismv / .ismaPlayReady (AES-128 CT)

HTTP Live Streaming (HLS)

HLS — самый распространённый протокол ABR, встроенный в iOS, tvOS и Safari на macOS. Формат манифеста основан на расширенных M3U-плейлистах, где главный плейлист (master playlist) содержит ссылки на варианты (variant streams) с разными битрейтами и разрешениями.

Каждый вариант ссылается на свой медиа-плейлист со списком сегментов. HLS поддерживает живые трансляции через механизм слайдингового окна (sliding window), где старые сегменты удаляются, а новые добавляются по мере поступления.

MPEG-DASH

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 алгоритмы

Throughput-based алгоритмы оценивают пропускную способность сети на основе скорости загрузки предыдущих сегментов. Алгоритм выбирает максимальный битрейт, который не превышает 80–90% от измеренной пропускной способности, оставляя запас для флуктуаций.

Недостаток этого подхода — чувствительность к кратковременным скачкам скорости. Если сеть резко упала во время загрузки сегмента, оценка пропускной способности занижается, и качество излишне снижается.

Buffer-based алгоритмы

Buffer-based алгоритмы принимают решения на основе заполненности буфера плеера. Если буфер заполнен более чем на 70%, алгоритм повышает битрейт; если буфер опустошается ниже 20% — резко снижает качество для предотвращения буферизации.

Основное преимущество — отсутствие ложных снижений при кратковременных падениях сети, так как буфер сглаживает флуктуации. Недостаток — медленная реакция на устойчивые изменения пропускной способности.

Гибридные алгоритмы и машинное обучение

Современные плееры, такие как ExoPlayer и AVPlayer, используют гибридные алгоритмы, комбинирующие оценку пропускной способности и состояние буфера. ExoPlayer использует алгоритм ABR по умолчанию DefaultTrackSelector, который учитывает оба параметра.

В 2024–2025 годах активно внедряются ML-based алгоритмы, предсказывающие будущие изменения сети на основе исторических данных. Netflix, YouTube и Twitch используют собственные модели машинного обучения для оптимизации выбора битрейта, что снижает количество переключений на 30–40%.

ABR в мобильных приложениях

Мобильные приложения предъявляют особые требования к ABR из-за нестабильности сотовых сетей (4G/LTE, 5G) и ограниченной вычислительной мощности устройств. Плеер должен быстро адаптироваться к изменениям сети, минимизируя при этом энергопотребление и использование трафика.

По данным OpenSignal (2025), средняя скорость 4G в городских условиях варьируется от 5 до 50 Мбит/с, а в движении — может падать до 1 Мбит/с. ABR-алгоритмы должны переключаться между битрейтами за 1–2 сегмента, чтобы избежать буферизации при входе в тоннель или лифт.

Конфигурация ABR в ExoPlayer (Android)

kotlin
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()

Оптимизация ABR для мобильных устройств

Для мобильных приложений критична быстрая начальная загрузка (time-to-first-frame менее 2 секунд). Рекомендуется начинать воспроизведение с самого низкого доступного битрейта, а затем повышать качество по мере заполнения буфера — стратегия start-low-and-rise.

Энергопотребление также важно: аппаратное ускорение декодирования должно быть задействовано для всех битрейтов. Программное декодирование высоких битрейтов (1080p и выше) на старых устройствах может приводить к перегреву и дросселированию.

ABR и анализ производительности

Ключевые метрики качества ABR: количество переключений битрейта (switches), время до первого кадра (TTFF), отношение переключений к общему времени просмотра. Индекс качества QoE (Quality of Experience) рассчитывается как взвешенная сумма битрейта, штрафа за переключения и штрафа за буферизацию.

Для мониторинга ABR рекомендуется собирать аналитику с плеера: текущий битрейт, размер буфера, пропускную способность, количество и типы переключений. Данные помогают контент-провайдерам оптимизировать набор доступных битрейтов и настроить сегментацию под конкретную аудиторию.

Часто задаваемые вопросы

Что такое Adaptive Bitrate в мобильных приложениях?

Adaptive Bitrate (ABR) — технология потоковой передачи, динамически меняющая качество видео по условиям сети. Плеер делит видео на сегменты и выбирает для каждого оптимальный битрейт, обеспечивая плавное воспроизведение без буферизации на мобильных устройствах.

Чем HLS отличается от MPEG-DASH?

HLS — протокол Apple, использующий M3U-плейлисты и транспортные потоки (.ts). MPEG-DASH — открытый стандарт ISO с XML-манифестом (.mpd) и гибкими форматами сегментов. HLS лучше на iOS, DASH — на Android и вебе.

Как ABR влияет на качество видео?

ABR улучшает воспринимаемое качество за счёт устранения буферизации: видео может кратковременно снизить разрешение при ухудшении сети, но не останавливается. Пользователь предпочитает плавное видео в 720p прерывистому 4K с постоянной буферизацией.

Какие алгоритмы ABR используются в ExoPlayer?

ExoPlayer использует гибридный алгоритм DefaultTrackSelector, учитывающий пропускную способность сети и заполненность буфера. Также доступны Throughput-based и Buffer-based стратегии с возможностью кастомизации через AdaptiveTrackSelection.Factory.

Как сегментация влияет на ABR?

Длительность сегментов определяет частоту адаптации: короткие сегменты (2 секунды) быстрее реагируют на изменения сети, но создают больше HTTP-запросов. Сегменты 4–6 секунд оптимальны для мобильных устройств по соотношению скорости адаптации и накладных расходов.

Итоги

  • Adaptive Bitrate — ключевая технология стриминга, динамически подбирающая качество видео по пропускной способности сети.
  • HLS и MPEG-DASH — основные протоколы ABR; HLS доминирует на iOS, DASH — на Android и веб-платформах.
  • Алгоритмы ABR делятся на throughput-based, buffer-based и гибридные; ML-алгоритмы нового поколения снижают количество переключений на 30–40%.
  • Сегментация на фрагменты 2–10 секунд позволяет плееру переключать битрейт между сегментами незаметно для пользователя.
  • Мобильная оптимизация требует быстрого старта (start-low-and-rise) и учёта энергопотребления при декодировании.
  • QoE-метрики включают количество переключений, время до первого кадра и частоту буферизации.
  • Гибридные алгоритмы комбинируют оценку пропускной способности и состояние буфера для оптимального выбора битрейта.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также