ABRBench is a benchmark dataset for Adaptive Bitrate (ABR) research. It reorganizes multiple public network trace collections into two evaluation suites, ABRBench-3G and ABRBench-4G+, with train/test splits and out-of-distribution (OOD) trace sets.
ABRBench is used by SABR to evaluate ABR policy stability, generalization, and robustness across wide-range and unseen network conditions. The related paper is available from IEEE Xplore: SABR: A Stable Adaptive Bitrate Framework Using Behavior Cloning Pretraining and Reinforcement Learning Fine-Tuning.
-
envivio_3g
- Video chunk sizes sourced from hongzimao/pensieve, identical to the video in
hongzimao/video_server. - Used in ABRBench-3G.
- Video chunk sizes sourced from hongzimao/pensieve, identical to the video in
-
big_buck_bunny
- A customized 40 Mbps cut of Big Buck Bunny.
- Used in ABRBench-4G+.
ABRBench reorganizes and resplits multiple public trace datasets (note: these are curated versions, not the original official releases).
The train data is aggregated from the provided test sets.
| Group | Trace Set | Count | Bandwidth Range (Mbps) | Source |
|---|---|---|---|---|
| Train | same with test | 1828 | 0.00 – 45.38 | - |
| Test | FCC-16 | 69 | 0.00 – 8.95 | comyco-lin |
| FCC-18 | 100 | 0.00 – 41.76 | merina | |
| Oboe | 100 | 0.16 – 9.01 | comyco-lin | |
| Puffer-21 | 100 | 0.00 – 25.14 | merina | |
| Puffer-22 | 100 | 0.00 – 9.29 | merina | |
| OOD | HSR | 34 | 0.00 – 44.68 | pitree-dataset |
| Group | Trace Set | Count | Bandwidth Range (Mbps) | Source |
|---|---|---|---|---|
| Train | same with test | 262 | 0.00 – 1890.00 | - |
| Test | Norway 3G | 41 | 0.11 – 7.27 | pensieve_retrain |
| Lumos 4G | 53 | 0.00 – 270.00 | pensieve_retrain | |
| Lumos 5G | 37 | 0.00 – 1920.00 | pensieve_retrain | |
| Solis Wi-Fi | 24 | 0.00 – 124.00 | pensieve_retrain | |
| OOD | Ghent | 40 | 0.00 – 110.97 | pitree-dataset |
| Lab | 61 | 0.16 – 175.91 | pitree-dataset |
The ABRBench dataset is organized into video files (video/) and network trace files (trace/).
The general trace split principle is:
- Train/Test Sets: each trace set contains
train/andtest/subdirectories. - OOD Sets: directly provide trace files, without train/test split.
ABRBench/
├── video/ # Video files
│ ├── big_buck_bunny/ # 4G+ video chunks
│ └── envivio_3g/ # 3G video chunks
│
└── trace/ # Network traces
├── ABRBench-3G/ # 3G traces
│ ├── FCC-16/ # Each trace set contains train / test
│ │ ├── train/
│ │ └── test/
│ ├── FCC-18/
│ │ ├── train/
│ │ └── test/
│ ├── Oboe/
│ │ ├── train/
│ │ └── test/
│ ├── Puffer-21/
│ │ ├── train/
│ │ └── test/
│ ├── Puffer-22/
│ │ ├── train/
│ │ └── test/
│ └── HSR/ # OOD set (raw traces only, no split)
│
└── ABRBench-4G+/ # 4G+/5G traces
├── Lumos4G/
│ ├── train/
│ └── test/
├── Lumos5G/
│ ├── train/
│ └── test/
├── Solis Wi-Fi/
│ ├── train/
│ └── test/
├── Ghent/ # OOD set (raw traces only, no split)
└── Lab/ # OOD set (raw traces only, no split)
If ABRBench or SABR is useful for your research, please cite:
@inproceedings{luo2025sabr,
title={Sabr: A stable adaptive bitrate framework using behavior cloning pretraining and reinforcement learning fine-tuning},
author={Luo, Pengcheng and Zhao, Yunyang and Zhang, Bowen and Yang, Genke and Soong, Boon-Hee and Yuen, Chau},
booktitle={2026 IEEE Wireless Communications and Networking Conference (WCNC)},
pages={1--6},
year={2026},
organization={IEEE}
}