libdash 2.0 – Candidate to become the MPEG-DASH reference client library

libdash logo

libdash was already part of ISO/IEC 23009-2, Information Technology Dynamic Adaptive Streaming over HTTP (DASH) Part 2: Conformance and Reference Software as sample client and it is now a candidate to become the MPEG-DASH reference client library.
So please provide feedback and input on the mailinglist

Posted in DASH | Leave a comment

DASH over CCN Patches for VLC Released

Our implementation of Dynamic Adaptive Streaming over Content Centric Networks (DASC áka DASH over CCN) is now public available. It implements MPEG Dynamic Adaptive Streaming over HTTP (DASH) utilizing a Content Centric Networking (CCN) naming scheme to identify content segments in a CCN network. Therefore, the Content Centric Networking concept of Jacobson et al. and the CCNx implementation (www.ccnx.org) of PARC is used. In particular, video segments formatted according to MPEG-DASH are available in different quality levels but instead of HTTP, CCN is used for referencing and delivery. The DASH over CCN DASH plugin is based on our DASH VLC plugin, which is officially part of VLC. Futhermore, we provide a CCN test repository with parts of the DASH-content of our DASH dataset.
More information on this topic can be found on the DASH over CCN page of our website, downloads are available in our download section.

Posted in DASH | Tagged | Leave a comment

libdash 2.0

libdash logo

libdash is a C++ library that provides an object orient (OO) interface to the MPEG-DASH standard.

Features

  • Cross platform build system based on cmake that includes Windows, Linux and Mac.
  • Open source available and licensed under the LGPL.
  • Implements the full MPEG-DASH standard according to ISO/IEC 23009-1, Information Technology Dynamic Adaptive Streaming over HTTP (DASH) Part 1: Media Presentation Description and Segment Formats
  • Handles the download and xml parsing of the MPD. Based on that it provides an OO based interface to the MPD.
  • Media elements, e.g., SegmentURL, SegmentTemplate, etc., are downloadable in that OO based structure and can be downloaded through libdash, which internally uses libcurl.
  • Therefore basically all protocols that libcurl supports, e.g., HTTP, FTP, etc. are supported by libdash.
  • However it also provides a configurable download interface, which enables the use of external connections that can be implemented by the user of the library for the download of media segments.
  • The use of such external connections will be shown in the libdash_networkpart_test project which is part of libdash solution and also part of the cross platform cmake system and therefore usable on Windows, Linux and Mac.
  • The project contains a sample multimedia player that is based on ffmpeg which uses libdash for the playback of one of our dataset MPDs.
  • The development is based on Windows, therefore the code contains a VS10 solution with additional tests and the sample multimedia player.

Architecture

The general architecture of MPEG-DASH is depicted in the figure below where the orange parts are standardized, i.e., the MPD and segment formats. The delivery of the MPD, the control heuristics and the media player itself, are depicted in blue in the figure. These parts are not standardized and allow the differentiation of industry solutions due to the performance or different features that can be integrated at that level. libdash is also depicted in blue and encapsulates the MPD parsing and HTTP part, which will be handled by the library. Therefore the library provides interfaces for the DASH Streaming Control and the Media Player to access MPDs and downloadable media segments. The download order of such media segments will not be handled by the library this is left to the DASH Streaming Control, which is an own component in this architecture but it could also be included in the Media Player.
In a typical deployment, a DASH server provides segments in several bitrates and resolutions. The client initially receives the MPD through libdash which provides a convenient object orient interface to that MPD. The MPD contains the temporal relationships for the various qualities and segments. Based on that information the client can download individual media segments through libdash at any point in time. Therefore varying bandwidth conditions can be handled by switching to the corresponding quality level at segment boundaries in order to provide a smooth streaming experience. This adaptation is not part of libdash and the MPEG-DASH standard and will be left to the application which is using libdash.
libdash architecture

Mailinglist

We offer a public accessible mailing list for discussions, questions, announcements, bug-reports, etc. around libdash. Everybody is invited to join, you can find the registration at:
libdash-dev
There are a lot of things to do! So everybody is invited to contribute, to get involved in and exited about DASH!

Roadmap

  • Next release is scheduled at the end of February.
    • Doxygen Documentation.
    • Cross platform build system for the ffmpeg based sample player.
    • QT based sample player, which is cross platform buildable through cmake.
    • Further Tests & Bugfixes.
  • Ongoing development during 2013
    • Implementation of a middleware for libdash.
      • Will provide buffering mechanisms and build-in adaptation logics.
      • Extends the functionality to extract, e.g., mp4, mp2ts, etc. information of the media stream.
      • Will provide further access methods which should provide a simplified interface to the library.
    • Extending the QT based sample player.
    • Testing & Bugfixing

Sources and Binaries

You can find the latest sources and binaries in the download section of bitmovin and on github.

Presentation

Acknowledgements

We specially want to thank our passionate developers at bitmovin as well as the researchers at the Institute of Information Technology(ITEC) from the Alpen Adria Universitaet Klagenfurt (AAU)!
Furthermore we want to thank the Netidee initiative from the Internet Foundation Austria for partially funding the open source development of libdash.

Posted in DASH | Leave a comment

VCIP 2012

Title: A PROXY EFFECT ANALYIS AND FAIR ADATPATION ALGORITHM FOR MULTIPLE COMPETING DYNAMIC ADAPTIVE STREAMING OVER HTTP CLIENTS
Authors: Christopher Mueller, Stefan Lederer and Christian Timmerer
Abstract: Multimedia streaming technologies based on the Hypertext Transfer Protocol (HTTP) are very popular and used by many content providers such as Netflix, Hulu, and Vudu. Recently, ISO/IEC MPEG has ratified Dynamic Adaptive Streaming over HTTP (DASH) which extends the traditional HTTP streaming with an adaptive component addressing the issue of varying bandwidth conditions that users are facing in networks based on the Internet Protocol (IP). Additionally, industry has already deployed several solutions based on such an approach which simplifies large scale deployment because the whole streaming logic is located at the client. However, these features may introduce drawbacks when multiple clients compete for a network bottleneck due to the fact that the clients are not aware of the network infrastructure such as proxies or other clients. This paper identifies these negative effects and the evaluation thereof using MPEG-DASH and Microsoft Smooth Streaming. Furthermore, we propose a novel adaptation algorithm introducing the concept of fairness regarding a cluster of clients. In anticipation of the results we can conclude that we achieve more efficient bottleneck bandwidth utilization and less quality switches.
Conference: VCIP2012, San Diego, CA, USA, Nov 27-30, 2012

Impressions:

Posted in DASH | Leave a comment

DASH-JS with ISO Base Media File Format support!

Our DASH-JS implementation has been updated to the latest version of the Media Source API and now supports ISO Base Media File Format (IBMFF)-based media segments! Now the latest version (v.23) of Google Chrome supports the Media Source API by default, enabling the playback of WebM and IBMFF media segments. Our showcases have been extended by new IBMFF-Examples, which can be found on our website.
DASH-JS is a seamless integration of Dynamic Adaptive Streaming over HTTP (DASH) into the Web using the HTML5 video element. Moreover, it is based on JavaScript which uses the Media Source API of Google’s Chrome browser to present a flexible and potentially browser independent DASH player. A more detailed description as well as showcases are available here on our website.

Posted in DASH | Leave a comment

DASH Tutorial @ ACM Multimedia 2012

Titel: Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Presenters: Christian Timmerer and Carsten Griwodz
Abstract: In this tutorial we present dynamic adaptive streaming over HTTP ranging from content creation to consumption. It particular, it provides an overview of the recently ratified MPEG-DASH standard, how to create content to be delivered using DASH, its consumption, and the evaluation thereof with respect to competing industry solutions. The tutorial can be roughly clustered into three parts. In part I we will provide an introduction to DASH, part II covers content creation, delivery, and consumption, and, finally, part III deals with the evaluation of existing (open source) MPEG-DASH implementations compared to state-of-art deployed industry solutions.
Acknowledgment: FP7 ICT SocialSensor, FP7 ICT ALICANTE

Posted in DASH | Leave a comment

DASH-SVC @ EUSIPCO 2012

Title: Using Scalable Video Coding for Dynamic Adaptive Streaming over HTTP in Mobile Environments
Authors: Christopher Müller, Daniele Renzi, Stefan Lederer, Stefano Battista, and Christian Timmerer
Abstract: Dynamic Adaptive Streaming over HTTP (DASH) is a convenient approach to transfer videos in an adaptive and dynamic way to the user. As a consequence, this system provides high bandwidth flexibility and is especially suitable for mobile use cases where the bandwidth variations are tremendous. In this paper we have integrated the Scalable Video Coding (SVC) extensions of the Advanced Video Coding (AVC) standard into the recently ratified MPEG-DASH standard. Furthermore, we have evaluated our solution under restricted conditions using bandwidth traces from mobile environments and compared it with an improved version of our MPEG-DASH implementation using AVC as well as major industry solutions.
Conference: EUSIPCO2012, Bucharest, Romania, August 27-31, 2012

Impressions:

Posted in DASH | Leave a comment

DASH-JS@EUSIPCO2012: A Seamless Web Integration of Adaptive HTTP Streaming

Title: A Seamless Web Integration of Adaptive HTTP Streaming

Authors: Benjamin Rainer, Stefan Lederer, Christopher Müller, and Christian Timmerer

Abstract: Nowadays video is an important part of the Web and Web sites like YouTube, Hulu, etc. count millions of users consuming their content every day. However, these Web sites mainly use media players based on proprietary browser plug-ins (i.e., Adobe Flash) and do not leverage adaptive streaming systems. This paper presents a seamless integration of the recent MPEG standard on Dynamic Adaptive Streaming over HTTP (DASH) in the Web using the HTML5 video element. Therefore, we present DASH-JS, a JavaScript-based MPEG-DASH client which adopts the Media Source API of Google’s Chrome browser to present a flexible and potentially browser independent DASH client. Furthermore, we present the integration of WebM based media segments in DASH giving a detailed description of the used container format structure and a corresponding Media Presentation Description (MPD). Our preliminary evaluation demonstrates the bandwidth adaption capabilities to show the effectiveness of the system.

Conference: EUSIPCO2012, Bucharest, Romania, August 27-31, 2012

Posted in DASH | Leave a comment

Dataset MPD's for VLC Android

We have adapted the following Dataset MPD’s for the Android DASH VLC version:

Name Segment Length Quality Genre
Big Buck Bunny 15 seconds 720p Animation
Elephants Dream 15 seconds 1080p Animation
Red Bull Playstreets 4 seconds 720p Sport
Red Bull Playstreets 15 seconds 1080p Sport
The Swiss Account 15 seconds 360p Sport
Valkaama 15 seconds 1080p Movie
Of Forest and Men 15 seconds 576p Movie
Posted in DASH | Leave a comment

VLC with basic DASH support now available for Android

The VLC Android App is now available through the Google Play Store. Unfortunately there are currently only the old MPD’s supported such as mtbike.

Posted in DASH | Leave a comment