Adaptive Bitrate in Mobile Apps — What It Is, Algorithms and Protocols

Author: IT Sectr Published: 2026-05-24 Reading time: 8 min

Adaptive Bitrate (ABR) is a streaming technology that dynamically changes video quality based on the user’s channel bandwidth. Unlike progressive download, ABR splits video into small segments of 2–10 seconds and switches between them on the fly. According to the Bitmovin Video Developer Report (2025), 86% of streaming services use ABR to ensure smooth playback on mobile devices.

Key Takeaways

  • ABR — adaptive bitrate streaming technology that changes video quality based on network conditions.
  • Segmentation — video is divided into 2–10 second fragments, each available at multiple bitrates.
  • HLS and MPEG-DASH — the main protocols for ABR streaming in mobile applications.
  • Algorithms for bitrate selection include throughput-based, buffer-based, and hybrid approaches.
  • ABR improves UX by minimizing buffering and enabling fast playback start.

What Is Adaptive Bitrate?

Adaptive Bitrate (ABR) is a method of streaming media content where a video file is encoded into multiple variants with different bitrates and resolutions, and the player automatically selects the appropriate variant in real time. The user gets the highest possible quality without buffering given their current internet speed.

Unlike traditional progressive download, ABR does not require loading the entire file — the player requests short segments at the desired quality and can switch to another bitrate between segments. This makes the technology indispensable for mobile applications, where network speed constantly changes.

History of ABR

Adaptive streaming technology was first commercially implemented by Move Networks in 2006 for broadcasting ABC television. In 2009, Apple introduced HTTP Live Streaming (HLS), which became the first widely adopted ABR standard based on HTTP and still dominates the iOS ecosystem.

In 2012, MPEG released the MPEG-DASH (Dynamic Adaptive Streaming over HTTP) standard as a universal ABR format not tied to any specific vendor. DASH is supported by all major platforms and is the only ABR standard adopted by ISO.

How Does ABR Work?

The ABR streaming process begins at the content preparation stage: the source video is encoded into several variants with different bitrates — for example, 144p, 360p, 720p, 1080p, and 4K. Each variant is split into segments of equal duration, typically 2, 4, 6, or 10 seconds.

A manifest file is created on the server, describing the available representations, their bitrate, resolution, codec, and segment URLs. The player downloads the manifest, analyzes it, and starts playback at the lowest bitrate for a fast start.

ABR Manifest Structure (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>

Dynamic Bitrate Switching

During playback, the ABR algorithm on the client side constantly monitors network conditions and buffer state. If bandwidth drops, the player requests subsequent segments at a lower bitrate to avoid buffering. When the network improves, the bitrate increases.

Switching between bitrates occurs at segment boundaries, making quality changes almost imperceptible to the user. Modern players can synchronize key frames across different variants so that switching happens without visual artifacts.

ABR Protocols: HLS, MPEG-DASH, Smooth Streaming

Three main ABR protocols dominate the streaming video market: HLS from Apple, MPEG-DASH as an open standard, and Smooth Streaming from Microsoft. Each protocol defines the manifest format, segmentation method, and encryption mechanism.

ProtocolDeveloperManifestSegmentsEncryption
HLSApple.m3u8 (M3U playlist).ts or .fmp4AES-128, SAMPLE-AES
MPEG-DASHISO/MPEG.mpd (XML).m4s or .webmCENC (Common Encryption)
Smooth StreamingMicrosoft.ismc (XML, IIS).ismv / .ismaPlayReady (AES-128 CT)

HTTP Live Streaming (HLS)

HLS is the most widespread ABR protocol, built into iOS, tvOS, and Safari on macOS. The manifest format is based on extended M3U playlists, where the master playlist contains links to variant streams with different bitrates and resolutions.

Each variant references its own media playlist with a list of segments. HLS supports live broadcasts through a sliding window mechanism, where old segments are removed and new ones are added as they arrive.

MPEG-DASH

MPEG-DASH is the only ABR standard adopted as ISO/IEC 23009-1 in 2012. Unlike HLS, DASH uses an XML manifest (MPD — Media Presentation Description) and is not tied to a specific container format — it supports fMP4, WebM, and others.

DASH provides flexible segmentation: segments can have different durations within the same stream, optimizing the trade-off between latency and HTTP request overhead. For live broadcasts, DASH supports SegmentTemplate patterns.

Protocol Performance Comparison

According to Bitmovin tests (2025), HLS and DASH show comparable performance in startup time and bitrate switching frequency. HLS provides lower latency on iOS due to hardware support, while DASH is preferred on Android due to more flexible ABR algorithm configuration.

Adaptive Bitrate Algorithms

The heart of ABR is the bitrate selection algorithm that determines which variant to request next. There are three main families of algorithms: throughput-based, buffer-based, and hybrid. Each approach has its strengths and limitations.

Throughput-based Algorithms

Throughput-based algorithms estimate network bandwidth based on the download speed of previous segments. The algorithm selects the maximum bitrate that does not exceed 80–90% of the measured throughput, leaving a margin for fluctuations.

The drawback of this approach is its sensitivity to short-term speed spikes. If the network drops sharply during segment download, the throughput estimate becomes too low, unnecessarily reducing quality.

Buffer-based Algorithms

Buffer-based algorithms make decisions based on the player’s buffer occupancy. If the buffer is more than 70% full, the algorithm increases bitrate; if the buffer drops below 20%, it sharply reduces quality to prevent buffering.

The main advantage is no false downgrades during short-term network drops, as the buffer smooths out fluctuations. The downside is slow reaction to sustained bandwidth changes.

Hybrid Algorithms and Machine Learning

Modern players such as ExoPlayer and AVPlayer use hybrid algorithms that combine throughput estimation and buffer state. ExoPlayer uses the default DefaultTrackSelector ABR algorithm, which considers both parameters.

In 2024–2025, ML-based algorithms are being actively deployed, predicting future network changes based on historical data. Netflix, YouTube, and Twitch use their own machine learning models to optimize bitrate selection, reducing the number of switches by 30–40%.

ABR in Mobile Applications

Mobile applications place special demands on ABR due to the instability of cellular networks (4G/LTE, 5G) and limited device computing power. The player must quickly adapt to network changes while minimizing power consumption and data usage.

According to OpenSignal (2025), the average 4G speed in urban areas ranges from 5 to 50 Mbps, and while in motion it can drop to 1 Mbps. ABR algorithms must switch between bitrates within 1–2 segments to avoid buffering when entering a tunnel or elevator.

ABR Configuration in 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 Optimization for Mobile Devices

For mobile applications, fast initial loading (time-to-first-frame under 2 seconds) is critical. It is recommended to start playback at the lowest available bitrate and then increase quality as the buffer fills — the start-low-and-rise strategy.

Power consumption is also important: hardware-accelerated decoding should be used for all bitrates. Software decoding of high bitrates (1080p and above) on older devices can lead to overheating and throttling.

ABR and Performance Analysis

Key ABR quality metrics: number of bitrate switches, time to first frame (TTFF), and switch ratio to total viewing time. The QoE (Quality of Experience) index is calculated as a weighted sum of bitrate, switch penalty, and buffering penalty.

For ABR monitoring, it is recommended to collect player analytics: current bitrate, buffer size, bandwidth, number and types of switches. This data helps content providers optimize the set of available bitrates and configure segmentation for their specific audience.

Frequently Asked Questions

What is Adaptive Bitrate in mobile applications?

Adaptive Bitrate (ABR) is a streaming technology that dynamically changes video quality based on network conditions. The player divides video into segments and selects the optimal bitrate for each, ensuring smooth playback without buffering on mobile devices.

How is HLS different from MPEG-DASH?

HLS is an Apple protocol using M3U playlists and transport streams (.ts). MPEG-DASH is an open ISO standard with an XML manifest (.mpd) and flexible segment formats. HLS works best on iOS, DASH on Android and the web.

How does ABR affect video quality?

ABR improves perceived quality by eliminating buffering: the video may temporarily reduce resolution when the network degrades, but it does not stop. Users prefer smooth 720p video over choppy 4K with constant buffering.

What ABR algorithms are used in ExoPlayer?

ExoPlayer uses a hybrid algorithm DefaultTrackSelector that considers network bandwidth and buffer occupancy. Throughput-based and Buffer-based strategies are also available with customization via AdaptiveTrackSelection.Factory.

How does segmentation affect ABR?

Segment duration determines adaptation frequency: short segments (2 seconds) react faster to network changes but create more HTTP requests. Segments of 4–6 seconds are optimal for mobile devices balancing adaptation speed and overhead.

Summary

  • Adaptive Bitrate — key streaming technology that dynamically adjusts video quality based on network bandwidth.
  • HLS and MPEG-DASH — the main ABR protocols; HLS dominates on iOS, DASH on Android and web platforms.
  • ABR algorithms are divided into throughput-based, buffer-based, and hybrid; next-generation ML algorithms reduce switches by 30–40%.
  • Segmentation into 2–10 second fragments allows the player to switch bitrate between segments imperceptibly for the user.
  • Mobile optimization requires fast startup (start-low-and-rise) and consideration of power consumption during decoding.
  • QoE metrics include number of switches, time to first frame, and buffering frequency.
  • Hybrid algorithms combine throughput estimation and buffer state for optimal bitrate selection.

We will develop a mobile application turnkey

IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.

Discuss the project

Read also