MPEG DASH Conformance versus Client Performance

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 to grow to being over half of mobile, and almost three-quarters of fixed traffic (YE2012). But this situation very negatively impacts on the one hand 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 though broad, real-world deployment is still a few years out. 

Standards Conformance

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 deeply involved in the MPEG ISO standardization organization, created the first media player to support MPEG DASH (DASH plug-in for VLC), participate 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 but you have to release and licenses all modifications made under LGPL too

If you cannot or do not want to license libdash under LGPL you have the option to obtain a commercial license by contacting bitmovin.

Technology Performance

While we care about conformance, we feel conformance should be a given, not a unique selling point. Instead performance is what we care about more, and what our customers care about most! 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)
  • Easy of integration: Simplified API access to streaming and system parameters
  • Broadest platform support: C++ (Win/32/64/Mac, Android, iOS, embedded platforms like Set-Top Boxes & TV sets), Java, Flash, JavaScript

Let’s take a look MPEG DASH client performance! We have done a benchmark 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 over 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 most efficiency uses the available bandwidth for optimize the media stream bitrate.

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.

PROTOCOLAVG BITRATE (KBPS)AVG BITRATE INCREASESTALLS (SEC)
Microsoft Smooth Streaming1522+53%0
Adobe1239+89%64
Apple Live Streaming1162+101%0
MPEG DASH (VLC)1464+60%0
MPEG DASH (Bitdash)2341-0

Note that this is just one way in which the bitdash client framework can be configured to perform. Other tuning options are available for optimize for other behavior, metrics and client hardware capabilities, for example.

For a demo on the impact on Quality of Experience (QoE) of the bitdash solution please see: http://www.bitmovin.net/bitdash/demo/video.html

Also keep I 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.

Oscillations

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. Additionally, 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.

Dr. Marcel van der Heijden
VP Business Development
marcel.van.der.heijden@bitmovin.com

« Back to blog

Add a comment