AStream is a Python based emulated video player to evalutae the perfomance of the DASH bitrate adaptaion algorithms.
- Basic Adaptation
- Segment Aware Rate Adaptation (SARA): Our algorithm
- Buffer-Based Rate Adaptation (Netflix): This is based on the algorithm presented in the paper. Te-Yuan Huang, Ramesh Johari, Nick McKeown, Matthew Trunnell, and Mark Watson. 2014. A buffer-based approach to rate adaptation: evidence from a large video streaming service. In Proceedings of the 2014 ACM conference on SIGCOMM (SIGCOMM '14). ACM, New York, NY, USA, 187-198. DOI=10.1145/2619239.2626296 http://doi.acm.org/10.1145/2619239.2626296
Buffer Logs:
- Epoch time
- Current Playback Time
- Current Buffer Size (in segments)
- Current Playback State
Playback Logs:
- Epoch time
- Playback time
- Segment Number
- Segment Size
- Playback Bitrate
- Segment Size
- Segment Duration
- Weighted harmonic mean average download rate
The AStream DASH video client is compatible with both Python 2 and Python 3. For Python 2, you must also install the six
library.
python dist/client/dash_client.py -m <URL TO MPD> -p <PlaybackType>
dash_client.py [-h] [-m MPD] [-l] [-p PLAYBACK] [-n SEGMENT_LIMIT] [-d]
Process Client parameters
optional arguments:
-h, --help show this help message and exit
-m MPD, --MPD MPD Url to the MPD File
-l, --LIST List all the representations and quit
-p PLAYBACK, --PLAYBACK PLAYBACK
Playback type ('basic', 'sara', 'netflix', or 'all')
-n SEGMENT_LIMIT, --SEGMENT_LIMIT SEGMENT_LIMIT
The Segment number limit
-d, --DOWNLOAD Keep the video files after playback