libdash 2.0

17,625 views

Published on

libdash is a 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.

Published in: Technology

libdash 2.0

  1. 1. LIBDASH – A LIBRARY INTO THE MPEG- DASH STANDARD Christopher Mueller, CEO – Head of Technology1/21/2013 bitmovin.net - libdash 2.0 1
  2. 2. ACKNOWLEDGMENT We specially want to thank our passionate developers at bitmovin as well as the researchers at the Institute for Information Technology (ITEC) of the Alpen‐Adria‐Universität Klagenfurt (AAU) who contributed to this effort. Furthermore, we want to thank the Netidee initiative of the Internet Foundation Austria for partially funding the open source development of libdash. We kindly ask you to refer the following paper in any publication mentioning libdash:  Christopher Mueller and Christian Timmerer. 2011. A VLC media player plugin enabling dynamic adaptive streaming over HTTP. In Proceedings of the 19th ACM international conference on Multimedia (MM ’11). ACM, New York, NY, USA, 723‐726. DOI=10.1145/2072298.2072429 1/21/2013 bitmovin.net - libdash 2.0 2
  3. 3. OUTLINE Introduction libdash  Features  DASH Architecture  Sources, binaries, how to use libdash  Roadmap  Email reflector  License Conclusions 1/21/2013 bitmovin.net - libdash 2.0 3
  4. 4. INTRODUCTION libdash*: object orient (OO) interface to the MPEG‐DASH standard  Implements the full MPEG‐DASH standard; access information within MPD and schedule download of segments  External interfaces: DASH streaming control, segment parser, media player – deliberately not implemented: may vary across use cases, deployments, and go beyond what is normatively specified) libdash is a tool for developers, has full standards support, well‐defined interfaces, and enables integration within a media ecosystem ➪ libdash is an enabler !!! 1/21/2013 bitmovin.net - libdash 2.0 4
  5. 5. 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 MPD’s. The development is based on Windows, therefore the code contains a VS10 solution with additional tests and the sample multimedia player. 1/21/2013 bitmovin.net - libdash 2.0 5
  6. 6. DASH ARCHITECTURE1/21/2013 bitmovin.net - libdash 2.0 6
  7. 7. DASH ARCHITECTURE WITH LIBDASH1/21/2013 bitmovin.net - libdash 2.0 7
  8. 8. SOURCE - BINARIES - HOW TO USE LIBDASH Latest sources and binaries  Download section: http://www.bitmovin.net/?page_id=851  Github: https://github.com/bitmovin/libdash How to use libdash  Windows • Download the tarball or clone the repository from gitlab (git://github.com/bitmovin/libdash.git) • Open the libdash.sln with Visual Studio 2010 • Build the solution • After that all files will be provided in the bin folder • You can test the library with the sampleplayer.exe. This application simply downloads the lowest representation of one of our dataset MPD’s.  Ubuntu 12.04 • sudo apt‐get install git‐core build‐essential cmake libxml2‐dev libcurl4‐openssl‐dev • git clone git://github.com/bitmovin/libdash.git • cd libdash/libdash • mkdir build • cd build • cmake ../ • make • cd bin • The library and a simple test of the network part of the library should be available now. You can test the network part of the library with • ./libdash_networkpart_test 1/21/2013 bitmovin.net - libdash 2.0 8
  9. 9. 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. 1/21/2013 bitmovin.net - libdash 2.0 9
  10. 10. EMAIL REFLECTOR 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  http://vicky.bitmovin.net/mailman/listinfo/libdash‐dev 1/21/2013 bitmovin.net - libdash 2.0 10
  11. 11. LICENSE This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110‐ 1301 USA 1/21/2013 bitmovin.net - libdash 2.0 11
  12. 12. CONCLUSIONS libdash provides an object oriented interface to the MPEG‐DASH standard It fully implements ISO/IEC 23009‐1:2012, hence it can be considered as complete*  * … pending bug fixes, updates due to COR, AMD, etc. (but that’s on our roadmap) We believe its interfaces are well designed in order to allow for a broad adoption of various use cases 1/21/2013 bitmovin.net - libdash 2.0 12

×