by Marcel van der Heijden
How to double your effective media stream bitrates
MPEG DASH was created to deal with a highly fragmented media streaming ecosystem struggling with fragmentation and lack of interoperability of many proprietary solutions. Still that fragmentation has not stopped video growing to becoming over half of mobile and almost three-quarters of fixed traffic (YE2012). But this situation has a very negative impact on the one hand, on technology scale and cost advantages in the industry and on the other hand, the end user experience, engagement and (advertising) revenues that keep the media wheel spinning.
Enter MPEG DASH – the industry-defined open standard for media streaming that has gained strong industry support. Many suppliers have announced support for MPEG DASH although broad, real-world deployment is still a few years away.
Current activities appear to focus on suppliers and technology/solution providers to demonstrate MPEG DASH conformance in their products and services. That way they position themselves as leaders in their fields with future proof solutions. Together they create a critical mass of DASH supporting solutions that streaming service providers see as a solid basis for their investments in new technologies and solutions.
At bitmovin we understand standard conformance well. The company has been heavily involved in the MPEG ISO standardization organization, created the first media player to support MPEG DASH (DASH plug-in for VLC), participated within the DASH Industry Forum and wrote the reference client library of the ISO/IEC MPEG-DASH standard. This is also why we continue to maintain the libdash MPEG-DASH reference client available on GitHub under the Lesser General Public License (LGPL). This means that anyone looking for an MPEG DASH library can;
- use and distribute libdash with your application without releasing the source code for your application
- make any changes to libdash although you have to release and license all modifications made under LGPL
If you cannot, or do not want to license libdash under LGPL, you have the option to obtain a commercial license by contacting Bitmovin.
While we care about conformance, we feel conformance should be a given, not a unique selling point. What we care about more, and what our customers care about most, is performance. This is why we created a highly optimized, high performance streaming client framework called bitdash. bitdash excels in 3 areas:
- Superior Streaming Performance: Up to 100 % higher effective media throughput (see below)
- ease of integration: Simplified API access to streaming and system parameters
Let’s take a look MPEG DASH client performance. We have carried out benchmarking, comparing a client using the bitdash framework to the 3 most widely used variable bitrate streaming solutions (Apple HLS, Adobe Dynamic Streaming and Microsoft Smooth Streaming) in a very challenging simulated network environment, with high variations in net bandwidth availability (this was in fact a recording of the mobile network throughput while driving along the motorway).
The 4 graphs below depict the achieved throughput as a function of time (solid lines) compared to the simulated network bandwidth available (dotted lines). Optimal performance is when the solid line is identical to the dotted line – in other words the client uses all available bandwidth to optimize the media stream bitrate (without creating any stalls).
The results illustrate the various protocol performances very well: Adobe Dynamic Streaming shows a lot of stalls – the player is waiting for the next media segments to arrive while its buffer is empty. Microsoft and Apple are clearly tuned to prevent stalls, but do not appear to optimally use the period in which bandwidth is available to optimize bitrates. Bitdash performs best in this test, in that is does not create any stalls and uses the available bandwidth to optimize the media stream bitrate most efficiently.
Summarized in a few key metrics, we can see that the average bitrate of the stream is the metric most impacted by the bitdash optimization framework. There is a minimum of 50% increase in bitrate compared to Microsoft Smooth Streaming and even a doubling of the effective bitrate compared to Apple HLS – the most widely used variable bitrate streaming method in use today.
Note that this is just one way in which the bitdash client framework can be configured to perform. Other tuning options are available for optimization for other behavior, metrics and client hardware capabilities, for example.
For a demo on the impact of the bitdash solution on Quality of Experience (QoE) please see: http://www.dash-player.com/demo
Also keep in mind that the bitdash optimization can also be applied to non MPEG DASH players using other adaptive bitrate formats such as Apple HLS or Microsoft Smooth Streaming.
Other bitdash client optimizations address the emergence of “oscillations” that can occur in networks where many variable bitrate clients “compete” for bandwidth and resources and as a result, start to phase-lock their bitrate segments selection in a highly non-optimal way. Furthermore, such oscillations can also be the result of the availability of caches in the network. We see this effect using existing solutions such as Apple HLS, Microsoft Smooth Streaming and Adobe HDS. Such oscillations can result in a very poor Quality of Experience, while still representing a (local) maximum in terms of average bitrate/throughput. We’ll talk about eliminating such oscillations in a future blog.