Glasgow Theses Service
Cahir, Conor (2014) Approaches to adaptive bitrate video streaming.
MSc(R) thesis.
Copyright and moral rights for this thesis are retained by the author
A copy can be downloaded for personal non-commercial research or
study, without prior permission or charge
This thesis cannot be reproduced or quoted extensively from without first
obtaining permission in writing from the Author
The content must not be changed in any way or sold commercially in any
format or medium without the formal permission of the Author
When referring to this work, full bibliographic details including the
author, title, awarding institution and date of the thesis must be given.
APPROACHES TO ADAPTIVE BITRATE
VIDEO STREAMING
CONOR CAHIR
SUBMITTED IN FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF
Master of Science by Research
SCHOOL OF COMPUTING SCIENCE
COLLEGE OF SCIENCE AND ENGINEERING
UNIVERSITY OF GLASGOW
MARCH 2014
c
CONOR CAHIR
Abstract
In this work, I use ns-3 simulations to compare and evaluate different approaches to web
based adaptive bitrate (ABR) video streaming. In particular, I look at the difference between
client pull and server push based approaches, the effects of media formatting parameters such
as chunk duration and number of encoding rates, and the implementation of bandwidth esti-
mation and request scheduling strategies. I find that client pull applications with a 2 second
chunk duration are very inefficient with bandwidth compared to applications using a server
push based approach. The reasons for this stem from the effect of frequent idle periods at
chunk boundaries, which are absent with server push, on the behaviour of TCP. Increasing
the chunk duration to 10 seconds makes a significant difference to client pull applications
and allows them to perform at a level much more comparable with server push applications.
I also find that ABR applications in general are vulnerable to suffering from encoding rate in-
stability, a result that echoes findings from a number of recent studies. This problem seems to
stem from the difficulty of selecting a suitable encoding rate based on transfer rates observed
at the application layer. Effective remedies for encoding rate instability include ensuring
that the system is not over provided for in terms of the number of available encoding rates,
and using an averaging function, such as the harmonic mean, over a series of recent transfer
rates in order to filter out short term fluctuations in the estimate of available bandwidth. I
also show that a simple request scheduling strategy can be used to avoid over buffering and
the associated problems, but that periodic request scheduling can introduce further problems
related to fairness when multiple ABR flows compete. Finally, I show that a hybrid of client
pull and server push, which I call pull selective, can offer a useful compromise between the
two, by matching the performance characteristics of server push whilst maintaining the low
server overheads and scalability attributes of client pull.
Acknowledgements
First and foremost I would like to thank my supervisor, Dr Colin Perkins, for his patience
and expert guidance throughout this project. Secondly, I would like to thank Morag and
Michael Cahir, for being good parents and for supporting me through university. I would
then like to thank all of the teaching, administrative, and technical staff from the University
of Glasgow’s School of Computing Science and College of Science and Engineering, for all
of their excellent work. Finally, this project has been made possible in part by a gift from
The Cisco University Research Program Fund, a corporate advised fund of Silicon Valley
Community Foundation. Thank you to Cisco, and in particular Ali C. Begen, for giving me
this opportunity.
This work is dedicated to my girlfriend Neetu, who has been waiting patiently.
Table of Contents
1 Introduction 1
1.1 Thesis Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Document Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Background 5
2.1 Web Based Video Streaming . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Adaptive Bitrate Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Application Components . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Media Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Commercial Systems using ABR . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Survey Methodology 15
3.1 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Network and Traffic Models . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.1 Calculating Fairness . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5.2 Calculating Stability . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.3 Encoding Rate Distributions . . . . . . . . . . . . . . . . . . . . . 26
3.5.4 Playback Buffer Occupancy Distributions . . . . . . . . . . . . . . 26
3.6 Outline of Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Baseline Simulations 31
4.1 Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Encoding Rate Distributions . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5 Playback Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5 Media Formatting Parameters 45
5.1 Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4 Encoding Rate Distributions . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.5 Playback Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6 Bandwidth Estimation 63
6.1 Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.2 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.3 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.4 Encoding Rate Distributions . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.5 Playback Buffer Occupancy Distributions . . . . . . . . . . . . . . . . . . 67
6.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7 Request Scheduling Strategies 79
7.1 Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.2 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.3 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.4 Encoding Rate Distributions . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.5 Playback Buffer Occupancy Distributions . . . . . . . . . . . . . . . . . . 83
7.6 Competing ABR Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7.7 Discussion and Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8 Conclusion 103
8.1 Summary of Findings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.2 Recommendations to Developers . . . . . . . . . . . . . . . . . . . . . . . 106
8.3 Scope for Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Bibliography 112
List of Figures
3.1 Application implementation space . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Network setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Behaviour of Jain’s index for a distribution with two values . . . . . . . . . 25
4.1 Baseline - Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Baseline - Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3 Baseline - Encoding Rate Distributions . . . . . . . . . . . . . . . . . . . . 42
4.4 Baseline - Playback Buffer Occupancy Distributions . . . . . . . . . . . . 43
5.1 Media Parameters - Fairness (2 flows) . . . . . . . . . . . . . . . . . . . . 53
5.2 Media Parameters - Fairness (3 flows) . . . . . . . . . . . . . . . . . . . . 54
5.3 Media Parameters - Fairness (4 flows) . . . . . . . . . . . . . . . . . . . . 55
5.4 Media Parameters - Stability (2 flows) . . . . . . . . . . . . . . . . . . . . 56
5.5 Media Parameters - Stability (3 flows) . . . . . . . . . . . . . . . . . . . . 57
5.6 Media Parameters - Stability (4 flows) . . . . . . . . . . . . . . . . . . . . 58
5.7 Media Parameters - Encoding Rate Distributions (2 flows) . . . . . . . . . 59
5.8 Media Parameters - Encoding Rate Distributions (3 flows) . . . . . . . . . 60
5.9 Media Parameters - Encoding Rate Distributions (4 flows) . . . . . . . . . 61
5.10 Media Parameters - Playback Buffer Occupancy Distributions (2 flows) . . 62
6.1 Bandwidth Estimation - Fairness (2 Flows) . . . . . . . . . . . . . . . . . 69
6.2 Bandwidth Estimation - Fairness (3 Flows) . . . . . . . . . . . . . . . . . 70
6.3 Bandwidth Estimation - Fairness (4 Flows) . . . . . . . . . . . . . . . . . 71
6.4 Bandwidth Estimation - Stability (2 Flows) . . . . . . . . . . . . . . . . . 72
6.5 Bandwidth Estimation - Stability (3 Flows) . . . . . . . . . . . . . . . . . 73
6.6 Bandwidth Estimation - Stability (4 Flows) . . . . . . . . . . . . . . . . . 74
6.7 Bandwidth Estimation - Encoding Rate Distributions (2 Flows) . . . . . . . 75
6.8 Bandwidth Estimation - Encoding Rate Distributions (3 Flows) . . . . . . . 76
6.9 Bandwidth Estimation - Encoding Rate Distributions (4 Flows) . . . . . . . 77
6.10 Bandwidth Estimation - Playback Buffer Occupancy Distributions (2 Flows) 78
7.1 Request Scheduling - Fairness (ABR vs ABR) . . . . . . . . . . . . . . . . 89
7.2 Request Scheduling - Fairness (ABR vs TCP) . . . . . . . . . . . . . . . . 90
7.3 Request Scheduling - Stability (ABR vs ABR) . . . . . . . . . . . . . . . . 91
7.4 Request Scheduling - Stability (ABR vs TCP) . . . . . . . . . . . . . . . . 92
7.5 Request Scheduling - Encoding Rate Distributions (ABR vs ABR) . . . . . 93
7.6 Request Scheduling - Encoding Rate Distributions (ABR vs TCP) . . . . . 94
7.7 Request Scheduling - Playback Buffer Occupancy Distributions (ABR vs ABR) 95
7.8 Request Scheduling - Playback Buffer Occupancy Distributions (ABR vs TCP) 96
7.9 Request Scheduling - Fairness (ABR vs ABR, parameters matching [1]) . . 97
7.10 Request Scheduling - Fairness (ABR vs ABR, parameters matching [1] with
4 mbps bottleneck) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.11 Encoding rates and playback buffer occupancy over time (original parame-
ters, pull multiple, 2 ABR flows, 0 - 700s). . . . . . . . . . . . . . . . . . . 99
7.12 Encoding rates and playback buffer occupancy over time (parameters match-
ing [1], pull multiple, 3 ABR flows, 0 - 700s). . . . . . . . . . . . . . . . . 100
7.13 Encoding rates and playback buffer occupancy over time (original parame-
ters, pull multiple, 2 ABR flows, 120 - 160s). . . . . . . . . . . . . . . . . 101
7.14 Encoding rates and playback buffer occupancy over time (parameters match-
ing [1], pull multiple, 3 ABR flows, 120 - 160s). . . . . . . . . . . . . . . . 102