Tuesday, March 18, 2014

YouTube Sliced Bread: mobile indigestion?

Since 2012, YouTube has been trying to reduce dramatically the time it takes for a video to start from the moment you press play.  Flash Networks (Mobixell at the time) was among the first to detect a new proprietary implementation called sliced bread.

The matter might seem trivial, but internal research from Google show that most users find a waiting time exceeding 200ms unacceptable for short videos. 
YouTube has been developing a proprietary protocol, based on HTTP adaptive streaming DASH to decrease latency and start time for its videos.

YouTube Sliced Bread essentially compares the DASH ABR manifest with the speed and bandwidth that is available at the moment you press play and selects dynamically the closest encoding rate. Adjacent streams segments are being prepped in real time so that any change in bit rate directs a change in encoding bit rate stream dynamically. The sliced bread analogy comes in when you think as pressing play as if ordering a pre sliced loaf of bread. Only instead of getting all slices of the same size, your video player looks at the size of the connection over time and serves you slice by slice, HD 1080, 720, 360… based on what the network can support.

YouTube claims that Sliced Bread has reduced video re buffering by 40% on fixed networks. Additionally, until recently, YouTube used to download the viewing page, the CSS script and the video player for every video you click on. The company is now implementing logic to allow the player to remain from video to video, so that it does not have to be downloaded all over again. 

Furthermore, YouTube will soon start pre-loading related video content, so that if you click on a suggested video, it is already there. These “tricks” might work well in a fixed environment, where start time is paramount and video traffic volume is not relevant, but in a wireless network that is congested; these types of features would have a negative impact on the network capacity and ultimately the user experience. I have before warned about content providers' tendency to design services and technology for fixed line first.

The protocol is starting to make its appearance in mobile networks and while not yet dominating the YouTube experience, it is a perfect example of why a video service designed for the internet, to be viewed on a fixed network can have catastrophic consequences on a mobile network if not correctly adapted. This is one of the many subjects I analyse in my report "Mobile video monetization and optimization 2014".


Lokdeep said...

Hello Patrick,

Perhaps I missed something here but would the sliced bread concept no actually help the mobile network by progressively adjusting ( up and down) the encoding needs based on bandwidth availability and hence improve customer experience as well use mobile network more optimally?


ilma630 said...

Not really as Google/YouTube is not in the best position to know what delivery bandwidth is available when the play button is passed. Only the network knows that, so an in-network video delivery management solution integrated with the core network is far better placed to make any decisions than YouTube. This is partly because there may be a significant gap between loading the page and pressing the start button, during which network conditions have changed.
YouTube also have no knowledge of contacted qos that a network has with a set of subscribers, which would affect the delivery of video and other content. Networks needs to be able to manage this delivery, but want to manage it so video delivery is as good as it can be for the current conditions, for as many subscribers as possible, which actually benefits YouTube.

Or Hiltch said...

@ilma630 - when you say "Only the network knows that", what do you mean? YouTube app has access to the network so it can definietly "know" what "the network" knows. Anyways, an app (e.g. YouTube) can measure the network performance of the device in real time very well and adapt the bitrate according to that (it fact it is also possible without apps, just by using DASH with latest versions of Chromium/FF nightly).