Skip to the content.

⚙️ What is ABR?

Definition:

ABR (Adaptive Bitrate Streaming) is a technique where the video player dynamically adjusts the bitrate of the video stream based on the viewer’s current network bandwidth and device performance.

Goal:

Analogy:


🔄 How ABR Works

  1. Video Encoding / Transcoding

    • Original video is encoded into multiple bitrates and resolutions (e.g., 1080p@5Mbps, 720p@3Mbps, 480p@1Mbps).
  2. Segmentation

    • Each video version is split into small chunks/segments (2–10 seconds).
  3. Manifest / Playlist File

    • Lists all available bitrates and segments.
    • Example: .m3u8 for HLS, .mpd for DASH.
  4. Client Player

    • Starts with an initial bitrate (usually low).
    • Monitors network bandwidth, CPU/GPU, and buffer status.
    • Dynamically requests higher or lower bitrate segments.

Result:


⚡ Key Features of ABR

Feature Description
Dynamic Bitrate Switching Player adapts bitrate segment by segment
Buffer Monitoring Player checks buffer to avoid stalls
Bandwidth Estimation Player measures download speed continuously
Device-aware Can adjust based on screen resolution or CPU capability
Network Adaptation Handles fluctuations in Wi-Fi, mobile, or LAN networks

🧩 Real-world Example


🔧 ABR Algorithms

  1. Throughput-based

    • Measure recent download speed → pick highest bitrate that fits.
  2. Buffer-based

    • Monitor buffer fullness → if buffer is low, reduce bitrate; if high, increase bitrate.
  3. Hybrid / Machine Learning

    • Combines throughput, buffer, and historical network patterns → more intelligent adaptation.

🧭 ABR in Protocols

Protocol ABR Support
HLS Yes, uses multiple variants in .m3u8 manifest
MPEG-DASH Yes, uses multiple bitrate segments in .mpd manifest
Smooth Streaming Yes, supports bitrate switching
HDS Legacy, yes but rarely used

💡 Key Takeaways


Analogy: