Demo: quality-adaptive video streaming with dynamic bandwidth aggregation on roaming, multi-homed clients

Video streaming has become one of the most popular services on the Internet today. At the same time, mobile devices capable of displaying high-quality multimedia content have become common. In addition, most of these devices are equipped with multiple network interfaces. Smartphones and tablets can typically connect to both 3G networks (HSDPA) and WLANs, while laptops at least have a LAN and a WLAN interface, amongst others. Even though a mobile device is capable of displaying highquality video, it will in many cases be connected to networks unable to meet the requirements of the stream or the user’s expectations. For example, the bitrate of H.264 encoded 1080p video is around 6-8 Mbit/s. This might not be a problem when connected to a fixed network. However, wireless networks are often unable to support this bandwidth, causing periods of rebuffering and playback interruptions. Also, mobile devices typically roam between networks. Unless supported by the application, the streaming will stop when the connection to the previous network is lost. The deployment of different wireless networks have increased rapidly. A device is therefore often within coverage range of multiple networks simultaneously. For example, several telephone providers allow their subscribers to access WiFi hotspots. Using networks simultaneously offers several benefits, for example, bandwidth aggregation and increased connection reliability. Bandwidth aggregation means merging the bandwidth of several interfaces. We have developed a video streaming solution for mobile, roaming devices that makes use of the benefits offered by multiple links. To the best of our knowledge, no such solution currently exists. We use HTTP Adaptive Streaming, also used by for example Microsoft and Apple, which allows a client to change quality based on the available bandwidth. In order to do bandwidth aggregation, each video segment is divided into smaller (logical) subsegments using HTTP range-requests, and the subsegments are requested over the different links. Our client application automatically detects when links are made available or become unavailable, and reacts accordingly. Bandwidth measurements, used to select video quality, are requested from a lookup database, using the client’s GPS coordinates as parameter. This database is populated using crowdsourcing and is consulted at given intervals, as the coverage range of wireless networks and