Designers of internet video streaming services were faced with a dilemma.
Users want to see video at the highest quality, but sometimes their network doesn't have the bandwidth to handle full HD. Users are even less fond of pauses in video playback—remember the dreaded "buffering" messages from early versions of YouTube?"and to make matters worse, network conditions can change widely, rapidly, and unpredictably.
It's an optimization problem. How can a video provider maximize video quality while also minimizing pauses in playback? MS&E Professor Ramesh Johari set out to answer this question together with Te-Yuan Huang, a Computer Science PhD student he advised, and a few other colleagues. Their solution, published in 2014, is still the current state of the art for video streaming platforms like Netflix, YouTube, and more.
Prior to Prof. Johari and Huang (who now works at Netflix), video servers tried to predict network capacity for each user, and then they served video at variable qualities based on those predictions. The greater the estimated capacity, the higher the quality served. The method's flaw was that network capacity changes rapidly and is difficult to predict, which meant frequent "buffering" interruptions.
Prof. Johari and Huang decided instead to measure the amount of video in the user's buffer (i.e. the duration of video content already served but not yet played) and determine the quality at which to send the next unit of video based on the user's buffer size—the more content stored in the buffer, the higher quality video to be served, and vice versa.
They then tested their idea on thousands of real-life Netflix users. They discovered that their "buffer-based algorithms" reduced pauses in video playback by 20 percent while keeping average video quality consistent with the prior, prediction-based algorithms.
For more technical detail, you can read the published academic paper, or see an early version of the paper that captured a preliminary glimpse of the research in less technical language. And for a look toward the future, see how Stanford researchers are now developing a new class of video algorithms that will address the even higher volume and quality demands of today's video streaming platforms.