This is the official code repository for the paper: BONES: Near-Optimal Neural-Enhanced Video Streaming . Authors: Lingdong Wang, Simran Singh, Jacob Chakareski, Mohammad Hajiesmaili, Ramesh K. Sitaraman.
numpy
Move to the control/folder, and then run our BONES algorithm with:
python bones.py --monitor --verbose
We provide the video metadata and the enhancement performance as JSON files here.
Refer to this document if you want to reproduce our data collection procedure.
To reproduce the results in our paper, move to the experiment/ folder and then run:
python run_all.py
asyncio, PyTorch, VPF, OpenGL
This system requires a GPU with CUDA support. It has only been tested on Linux.
Download the sample DASH video segments from here. Unzip the file and overwrite the player/data/video_mp4box/ folder with it.
If you want to reproduce the generation of video segments, move to player/data/video_mp4box/ and run:
bash segment_1080p_mp4box.sh
Move to the player/ folder, and then run our prototype system with:
python play.py -i data/video_mp4box/bbb.mpd -t data/3Glogs/report.2010-09-13_1003CEST.json
The player runs in the headless mode by default. To enable the graphical renderer, run:
python play.py -i data/video_mp4box/bbb.mpd -t data/3Glogs/report.2010-09-13_1003CEST.json --mod_renderer opengl
Please note that this implementation is a research prototype favoring flexibility over efficiency, so the graphical mode may suffer from low frame rate or rendering artifacts. To achieve better performance, we recommend using the headless mode, running the graphical mode with powerful GPU, or decreasing the display_width/display_height in the configuration file.
Our implementation of the simulation environment is based on Sabre.
Our implementation of the prototype system is based on iStream.
If you find our work helpful, please consider citing: