ABRBench is a benchmark dataset specifically designed for Adaptive Bitrate (ABR) research. It covers multiple trace sets and aims to evaluate models’ generalization ability under wide-range network conditions and unseen / out-of-distribution (OOD) scenarios.
The dataset has been reorganized and resplit, making it easier for researchers to systematically validate the stability and robustness of ABR algorithms in complex environments.
-
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)