Video Player Best Practices
In this tutorial, we will take a deep dive into media player related topics. The main part of this tutorial focuses on dash.js – the official reference client of the DASH Industry Forum (DASH-IF). The dash.js player uses the Media Source Extensions (MSE) and the Encrypted Media Extensions (EME) for playback of DRM protected DASH content in browser-based environments. dash.js is a production-grade player used by the industry in commercial streaming projects. It also serves as an easy to extend client for the research community and is widely used in other open-source projects and by other organizations such as DVB, CTA-WAVE, HbbTV and 5G-MAG.
Since November 2019 Fraunhofer FOKUS acts as the official lead developer of the dash.js project. As part of this tutorial we share our experience and in-depth knowledge about best-practices in the context of open-source mediaplayer development and take a deep dive into the latest features and optimizations of the dash.js client. For that purpose, we cover topics such as multi-period playback, a key-enabler for server-side ad-insertion and gap handling to ensure robust player operation. Moreover, we focus on techniques such as MPD patching to improve the performance of the player while reducing the traffic on the server-side. In addition, we show how to optimize the CDN behavior using Common Media Client Data (CMCD) and introduce the latest changes and challenges in CMAF low-latency streaming.
Finally we provide a quick overview of other platforms and players such as AV Foundation, ExoPlayer.
This tutorial has the aim to be very practice oriented. Each of the main topics will be introduced by a theoretical part and showcased by a short demo afterwards. Participants are invited to ask questions and share their experiences at any time.