FastScan is a rate adaptation algorithm for ABR video streaming.
Note that you need to run bandwidth shaping to shape the bandwidth according to your traces in a separate script.
We would like to acknowledge Xiaoqi Yin who provided us with the base code that includes dash.js, their proposed rate adaptation scheme described in their paper "A Control-Theoretic Approach for Dynamic Adaptive Video Streaming over HTTP", and other rate adaptation schemes.
We modified the AbrController.js to include our rate adaptation scheme (FastScan).
The implementation can be found in dash_player/app/js/streaming/algo/bfAlgo.js.
For details, refer to our paper "FastScan: Robust Low-Complexity Rate Adaptation Algorithm for Video Streaming over HTTP", which can be cited as follows:
@article{elgabli2019fastscan,
title={Fastscan: Robust low-complexity rate adaptation algorithm for video streaming over http},
author={Elgabli, Anis and Aggarwal, Vaneet},
journal={IEEE Transactions on Circuits and Systems for Video Technology},
year={2019},
publisher={IEEE}
}
A similar algorithm for SVC video streaming was used in
@article{elgabli2018lbp,
title={LBP: Robust rate adaptation algorithm for SVC video streaming},
author={Elgabli, Anis and Aggarwal, Vaneet and Hao, Shuai and Qian, Feng and Sen, Subhabrata},
journal={IEEE/ACM Transactions on Networking},
volume={26},
number={4},
pages={1633--1645},
year={2018},
publisher={IEEE}
}
- install nodejs
$ sudo apt install nodejs
- install npm
$ sudo apt install npm
- install local-web-server
$ npm install -g local-web-server
- Run a local web server in the main folder
$ ws
- Open http://127.0.0.1:8000 in your web browser