Video streaming over the Internet has gained tremendous popularity over recent years and currently constitutes the majority of Internet traffic. The on-demand delivery of high quality video streaming has been enabled by a combination of consistent improvements in residential download speeds, HTTP-based Adaptive Streaming (HAS), extensive content caching, and the use of Content Distribution Networks (CDNs). However, as large-scale on-demand streaming is gaining popularity, several important questions and challenges remain unanswered, including determining how the infrastructure can best be leveraged to provide users with the best possible playback experience. In addition, it is important to develop new techniques and protocols that facilitate the next generation of streaming applications. Innovative services such as interactive branched streaming are gaining popularity and are expected to be the next big thing in on-demand entertainment.
The major contributions of this thesis are in the area of efficient content delivery of video streams using HAS. To address the two challenges above, the work utilizes a combination of different methods and tools, ranging from real-world measurements, characterization of system performance, proof-of-concept implementations, protocol optimization, and evaluation under realistic environments. First, through careful experiments, we evaluate the performance impact and interaction of HAS clients with proxy caches. Having studied the typical interactions between HAS clients and caches, we then design and evaluate content-aware policies to be used by the proxy caches, which parse the client requests and prefetch the chunks that are most likely to be requested next. In addition, we also design cooperative policies in which clients and proxies share information about the playback session. Our evaluations reveal that, in general, the bottleneck location and network conditions play central roles in which policy choices are most advantageous, and the location of the bottlenecks significantly impact the relative performance differences between policy classes. We also show that careful design and policy selection is important when trying to enhance HAS performance using proxy assistance.
Second, this thesis proposes, models, designs, and evaluates novel streaming applications such as interactive branched videos. In such videos, users can influence the content that is being shown to them. We design and evaluate careful prefetching policies that provides seamless playback even when the users defer their path choices to the last possible moment. We derive optimized prefetching policies using an optimization framework, design and implement effective buffer management techniques for seamless playback at branch points, and use parallel TCP connections to achieve efficient buffer workahead. Through performance evaluations, we show that our policies can effectively prefetch data of carefully adapted qualities along multiple alternative paths so to ensure seamless playback, offering users a pleasant viewing experience without playback interruptions.