The State of MPEG-DASH 2016
The industry is turning away from plug-ins and embracing HTML5 everywhere. Here's how the vendor-independent streaming standard is gaining momentum.
A curation about new media technologies
The industry is turning away from plug-ins and embracing HTML5 everywhere. Here's how the vendor-independent streaming standard is gaining momentum.
DASHInterpret converts video-on-demand dynamic adaptive HTTP streams (MPEG-DASH) to Apple HTTP live stream (HLS), useful when you already have existing MPEG-DASH content and you need to serve it to existing Apple users who don’t want to use a third-party
There are several software out there (e.g. Wowza or Evostream) that takes in live streams in the form of RTSP, RTMP, MPEG-TS, FLV, etc… and they produce many other formats out of that single input. They come in the form of a server (service) listening to ports or connecting to other remote streaming servers. Their purpose is to simply bridge the gap between different streaming format as they serve multiple streaming format output from a single input. These servers are mainly used in 3 use cases, but majority of usage is in live streaming.
Use Cases:
An end-to-end demonstration of EBU-TT-D subtitles being delivered via MPEG DASH and displayed by a client.
This article describes the most important pieces of the MPD, starting from the top level (Periods) and going to the bottom (Segments).
An interesting article by Nicolas Weil, presenting the past, present, and future of MPEG-DASH.
An interesting article describing how to produce MPEG-DASH content with open source tools.
This article shows you how to setup GPAC for your OnDemand and Live contents.
HTTP Streaming is a recent topic in multimedia communications with on-going standardization activities, especially with the MPEG DASH standard which covers on demand and live services. One of the main issues in live services deployment is the reduction of the overall latency. Low or very low latency streaming is still a challenge.
In this paper, we push the use of DASH to its limits with regards to latency, down to fragments being only one frame, and evaluate the overhead introduced by that approach and the combination of: low latency video coding techniques, in particular Gradual Decoding Refresh; low latency HTTP streaming, in particular using chunked-transfer encoding; and associated ISOBMF packaging.
We experiment DASH streaming using these techniques in local networks to measure the actual end-to-end latency, as low as 240 milliseconds, for an encoding and packaging overhead in the order of 13% for HD sequences and thus validate the feasibility of very low latency DASH live streaming in local networks.
By Nassima Bouzakaria, Cyril Concolato and Jean Le Feuvre
A significant step in the road to Ultra High Definition TV services has been taken with the approval of the DVB-UHDTV Phase 1 specification at the 77th meeting of the DVB Steering Board. The specification includes an HEVC Profile for DVB broadcasting services that draws, from the options available with HEVC, those that will match the requirements for delivery of UHDTV Phase 1 and other formats. The specification updates ETSI TS 101 154 (Specification for the use of Video and Audio Coding in Broadcasting Applications based on the MPEG-2 Transport Stream).
The new DVB-UHDTV Phase 1 will allow images with four times the static resolution of the 1080p HDTV format, at frame rates of up to 60 images per second. Contrast will be drastically improved by increasing the number of bits per pixel to 10 bit. From the wide range of options defined in the HEVC Main 10 profile, Level 5.1 is specified for UHD content for resolutions up to 2160p. For HD content, HEVC Main profile level 4.1 is specified for supporting resolutions up to 1080p.
The DVB-UHDTV Phase 1 specification takes into account the possibility that UHDTV Phase 2 may use higher frame rates in a compatible way, which will add further to the image quality of UHDTV Phase 1.
“HEVC is the most recently-developed compression technology and, among other uses, it is the key that will unlock UHDTV broadcasting,” said DVB Steering Board Chairman, Phil Laven. “This new DVB–UHDTV Phase 1 specification not only opens the door to the age of UHDTV delivery but also potentially sets the stage for Phase 2, the next level of UHDTV quality, which will be considered in upcoming DVB work,” he continued.
Also approved was the specification for Companion Screens and Streams, Part 2: Content Identification and Media Synchronization. Companion Devices (tablets, smart phones) enable new user experiences for broadcast service consumption. Many of these require synchronisation between the Broadcast Service at the TV Device and the Timed Content presented at the Companion Device. This specification focuses on the identification and synchronisation of a Broadcast Service on a TV Device (Connected TV or STB and screen) and Timed Content on a Companion Screen Application running on a Companion Device. Part 2 outlines the enabling factors for the identification of, and synchronisation with, broadcast content, timed content and trigger events on TV devices (for example a Connected TV or STB) and related content presented by an application running on a personal device.
Another specification to gain approval from the Steering Board was the MPEG-DASH Profile for Transport of ISO BMFF Based DVB Services over IP Based Networks. This specification defines the delivery of TV content via HTTP adaptive streaming. MPEG-DASH covers a wide range of use cases and options. Transmission of audiovisual content is based on the ISOBMFF file specification. Video and audio codecs from the DVB toolbox that are technically appropriate with MPEG-DASH have been selected. Conditional Access is based on MPEG Common Encryption and delivery of subtitles will be XML based. The DVB Profile of MPEG-DASH reduces the number of options and also the complexity for implementers. The new specification will facilitate implementation and usage of MPEG-DASH in a DVB environment.
The three new specifications will now be sent to ICT standards body ETSI for formal standardisation and the relevant BlueBooks will be published shortly.
Source: Advanced Television
As part of the 4Ever project, we have been releasing an HEVC and DASH ultra high definition dataset, ranging from 8bit 720p 30Hz up to 10bit 2160p 60 Hz. The dataset is released under CC BY-NC-ND.
The data set web page is here, and more information on the dataset can also be found in this article.
Source: GPAC
During the 2014 NAB show in Las Vegas, the DASH Industry Forum organized a 2hr session with nine presentations giving you the latest technical, business and deployment updates on MPEG-DASH. Speakers represented companies from across the DASH ecosystem. Here is the video replay of this event.
The PlayReady team, working in conjunction with the Windows Azure Media Services team is pleased to announce the availability of the Microsoft Smooth Streaming Client 2.5 with MPEG DASH support.
This release adds the ability to parse and play MPEG DASH manifests in the Smooth Streaming Media Engine (SSME) to provide a Windows7/Windows8 and MacOS solution using MPEG DASH for On-Demand scenarios.
Developers that wish to move content libraries to DASH have the option of using DASH in places where Silverlight is supported. The existing SSME object model forms the basis of DASH support in the SSME. For example, DASH concepts like Adaptation Sets and Representations have been mapped to their logical counterpart in the SSME.
Also, Adaptation Sets are exposed as Smooth Streams and Representations are exposed as Smooth Tracks. Existing Track selection and restriction APIs can be expected to function identically for Smooth and DASH content.
In most other respects, DASH support is transparent to the user and a programmer who has worked with the SSME APIs can expect the same developer experience when working with DASH content.
Some details on the DASH support compared to Client 2.0:
Usually when creating a video, all that is needed is to encode it using a codec (for example H.264 or HEVC). However, to transmit a video using MPEG-DASH, an extra segmentation step is required. Typical encoders do not provide this step and produce content which is not compatible with DASH.
Hosted as a GitHub project, dash.encrypt is available as an open-source application written in Java. It takes encoded video and audio from an array of different formats and repackages them as valid DASH streams. It also generates the required manifest which is the table of contents for the stream.
For the next two weeks, we’re running a trial in conjunction with Radio 3 to deliver surround sound to your browser for a series of classical music concerts. On the Radio 3 blog, Rupert Brun explains the background to the trial and how to get involved.
Here in Broadcast & Connected Systems at BBC R&D, we are always looking for new ways to apply our technology research to extend the reach of BBC content to the maximum number of users. Surround sound isn’t new, but delivering it to the home via the Internet has traditionally meant installing plugins or other applications, limiting the platforms and consumers we can target.
In this experiment, we believe we are the first broadcaster in the world to stream a live outside broadcast in discrete multichannel audio to the home using MPEG-DASH, and we're doing it using just a compliant web browser - no plugins, no separate software installation required.
Why Stream to the Browser, and Why Now?
The beauty of the browser is that it is (almost) ubiquitous. Every PC, tablet and smart phone has a browser installed when it ships. Increasingly, smart TVs, set top boxes and games consoles have some form of browser environment available, bringing HTML5, CSS and Javascript functionality to the majority of consumer electronic devices.
People expect to be able to consume BBC content on any platform. To enable this, the BBC currently has to support a number of streaming protocols and has to maintain many different applications with differing code bases and levels of functionality in order to support hundreds of different set top boxes, smart TVs, mobile devices and desktop environments.
What if we could have a single encoding and distribution workflow and a single cross-platform client application, reducing the complexity of distribution and allowing our developers to concentrate on delivering great user experiences?
From a listener’s perspective, the browser “just works” which makes accessing our services much easier. Removing the requirement to install plugins or other software removes a significant barrier for some users. Indeed, for cross-platform compatibility, security and stability, many browser vendors have decided not to support plugins in the future so we need to move away from these anyway.
Three particular technical standards should enable us to do this in the future: HTML5, MPEG-DASH and W3C Media Source Extensions.
HTML5 and Media Source Extensions (MSE)
In HTML5 the HTMLMediaElement, typically a video or audio tag, exposes a source element which accepts a URL of the content to be played. The browser retrieves, decodes and plays the media data automatically, providing it knows how to handle your media type. This offers simplicity for the developer and, in theory, has removed the need for plugins, but the trade-off is that there is no control over many important variables: how data is downloaded and from where, how much data is buffered, which adaptive streaming algorithms to use or what to do in case of failure.
The ability to control these variables is key to providing a world-class user experience, but by default they are hard-coded into the browser. Ideally we want to hand as much control as possible to the Javascript application, while still deferring to the browser for parsing, decoding and rendering the media data. Typically, Adobe Flash or Microsoft Silverlight applications have been used to provide all of this functionality on those platforms that support those plugins.
Most of these features can be replicated in Javascript but, until now, it has not been possible to feed media data to the HTMLMediaElement. The Media Source Extensions define a Javascript API which allows media streams to be constructed dynamically within a Javascript application.
At the heart of MSE is the MediaSource object. This object is created by the application and attached to the media element. Its purpose is to provide the media data for playback as requested by the media element.
The MediaSource object maintains a collection of SourceBuffers. These are the interface through which the application appends media data to the source and methods are provided to insert, remove and manage media data. They are essentially an abstraction of a timeline – media data can appended to the buffer based on media playback timestamp, or it can be appended sequentially, ignoring timestamps. The latter mode enables unrelated media to be spliced together, which allows uses such as advert insertion or even video editing in the browser.
This article discusses the current state of online video, delves into the DASH standard, explores the challenges of building a DASH player, and, finally, walks through the basics of implementing the open source Dash.js player.