SMASH: A Supervised Machine learning approach to Adaptive Streaming over HTTP
While the growth of online video on demand consumption continues unabated, the adaptation logic within the video players is typically focused towards maximising the video quality for the next portion of the video (segment) for a specific context. Unfortunately, the existing adaptive bitrate (ABR) algorithms are typically designed to optimise video quality within a very narrow subset of variance that occurs in the underlying network conditions. This can lead to video streaming providers implementing a different ABR algorithm within each distinct piece of hardware they support, to reflect the changing demand of their users (e.g. TVs, set-top boxes and phones). Thus the goal of a one-size-fits-all approach to ABR design is the holy grail of adaptive streaming.
In this paper we present SMASH: a Supervised Machine learning approach to Adaptive Streaming over HTTP, which takes a tentative step towards this goal. We utilise the streaming output from the adaptive logic of nine ABR algorithms across a variety of streaming scenarios (generating nearly one million records) and design a machine learning model which uses the best features of this output (such as throughout, bitrate, buffer-level) to predict the optimal choice for the next video segment. Our evaluation results shows that not only does SMASH guarantee a high QoE but is also consistent across a variety of streaming contexts.
The data used in training SMASH is generated by evaluating DASH video streaming over three different wireless channels (3G, 4G and WiFi). We used two open-source trace datasets for the 3G and 4G scenarios. We collected the sample Wifi network traces using an Android mobile network monitoring application called G-NetTrack Pro. The original 3G traces are composed over 6 scenarios (Static, Pedestrian, Bus, Car, Tram, Train), while the 4G dataset was generated over 5 scenarios (Static, Pedestrian, Bus, Car, Train). We generated the 5 WiFi tracces in a Static scenario. We used 60 randomised network traces (five traces per each of the wireless scenarios) and these are available here.
To evaluate the performance of SMASH, the same test-bed from the data collection stage is used (see Figure 1 in the paper). To compare against SMASH, we utilised BBA2  a buffer-based player, ARBITER+  a hybrid player and Pensieve  an ML-based player. We use the same network trace datasets for 3G, 4G and WiFi for this evaluation. For each, we uses 5 traces for 3G, 5 traces for 4G and 3 traces for Wifi, and ran each trace scenario 3 times. The traces used in the evaluation are not the same as the traces used in the dataset generation stage. The evaluation traces can be downloaded here.
The Exoplayer log output for the four streaming algorithms can be downloaded here. The following is an example of the naming structure in these output log files "report.2010-09-30_1113CEST_R1-V0-A1-UP0-SD4.txt". This can be broken into:
- report.2010-09-30_1113CEST - the name of the trace file (wireless scenario) that the algorithm was tested over (3G in this instance).
- R1 - the run number: with R1 being run 1, R2 being run 2, etc.
- V0-A1 - the algorithm: A1 is Arbiter+, A3 is BBA2, A8 is SMASH, and A9 is Pensieve.
- UP0-SD4 - the segment duration size: 4-second in this instance.