August 21, 2014 by Romain Bouqueau

banniere_EBU_ASHIF

[IBC 2014] DASH AVC/264 support in GPAC

Thanks to a joint effort of GPAC Licensing, EBU and DASH-IF, the open-source multimedia framework GPAC now has support for the DASH Industry Forum DASH AVC/264 profile... and beyond!

In this article we are going show you how to setup GPAC for your OnDemand and Live contents. In a next article, we'll see how to use GPAC to encrypt your data with support with the most common DRMs.

For lunch today:

DASH AVC/264 profile

When the MPEG-DASH standard (latest version) was released, it was still a wide standard. A DASH Promoter Group has rapidly emerged to emit a set of good practices. The DASH Industry Forum was born and has yet emitted several documents. The most important papers here are the recommendations and interoperability points.

If you don't know yet about MPEG-DASH, I advise you this excellent article from Christian Timmerer. Click here for a state of the available products from Nicolas Weil.

Here is a summary of the tools available in the DASH AVC/264 profile from the DASH-IF:

20140816_DASH-IF_profile Slide 17 from http://dashif.org/w/2013/06/DASH264-v1.5.pdf

You can know more about the DASH AVC/264 profile at:

dash.js HTML5 player

The DASH-IF forum also launched a community effort to build a web player for MPEG-DASH. It relies on HTML5 Media Extensions such as MSE (Media Source Extensions). Some other extensions or other projects may be used in the future like HTML5 EME for encryption (register to our mailing-list to know more about how it coordinates with DRMs), Mozilla Popcorn for the TTML subtitling support, or mp4box.js for ISOBMF demuxing. The player code is available on github.

EBU.io open platform demonstrated live at IBC 2014

GPAC Licensing and DASH-IF have a partnership with EBU to build an open platform around standards:

Bram Tullemans from EBU presenting the EBU.io open platform. Photo from Nicolas Weil (https://twitter.com/NicolasWeil/status/449103723411668992)

The first private beta was launched in March. The platform development have been mostly made by Hiro, a small design and development agency that provides web and mobile applications as well as custom media solutions.

At IBC 2014, we are going to show more, including HEVC live, DASH-IF and DVB-DASH recommendations, and some TV support from LG and tablet support from Qualcomm. More information at https://tech.ebu.ch/news/ebu-ibc-2014-whats-happening-23jul14.

Source code:

MP4Box

Documentation: www.gpac.io/mp4box/ and www.gpac.io/mp4box/dash/

On Demand processing (all profiles)

Description MP4Box command-line
Single Video
BaseURL@byteRange -dash 10000 -rap -dash-profile dashavc264:onDemand -bs-switching no
BaseURL@byteRange +sidx -dash 10000 -rap -dash-profile dashavc264:onDemand -bs-switching no -subsegs-per-sidx 0
number-based templates and @duration -dash 10000 -rap -dash-profile dashavc264:live -bs-switching no -url-template -segment-name seg_$Number$
time-based templates and SegmentTimeline -dash 10000 -rap -dash-profile dashavc264:live -bs-switching no -url-template -segment-timeline -segment-name seg_$Time$
Multiple Audios, Videos, and bitrates
BaseURL@byteRange -dash 10000 -rap -dash-profile dashavc264:onDemand -bs-switching no
BaseURL@byteRange +sidx -dash 10000 -rap -dash-profile dashavc264:onDemand -bs-switching no -subsegs-per-sidx 0
number-based templates and @duration: $RepresentationID$ -dash 10000 -rap -dash-profile dashavc264:live -bs-switching no -url-template -segment-name seg_$RepresentationID$_$Number$
number-based templates and @duration: $Bandwidth$ -dash 10000 -rap -dash-profile dashavc264:live -bs-switching no -url-template -segment-name seg_$Bandwidth$_$Number$
time-based templates and SegmentTimeline -dash 10000 -rap -dash-profile dashavc264:live -bs-switching no -url-template -segment-timeline -segment-name seg_$Bandwidth$_$Time$

Live processing

This relies on MP4Box live capabilities. MP4Box can take an existing file and DASH it realtime until it is entirely processed using the "-dash-live" option. It can also process existing chucks and return immediately. In this case it relies on a context file to resume for the next data chuck. The option is called "-dash-ctx" and is ideal if your data is already segmented (HLS for example as we use it in EBU.io). Learn more.

MP4Box -dash-ctx dash-live.txt -dash 10000 -rap -no-frags-default -bs-switching no -mpd-refresh 10 -min-buffer 30000 -url-template -time-shift 1800 -segment-name 'live_$RepresentationID$_' -out live -dynamic rep1.mp4 rep2.mp4 ... repn.mp4

DashCast

Documentation: www.gpac.io/dashcast/

DashCast output is natively compatible with the DASH-IF profile. It is suitable for any MPEG-DASH application. The support against the dash.js player is maintained by the GPAC community.

On Unix, launch the current command-line to capture your screen and send it to the dash.js player:

DashCast -vf x11grab -vres 1024x768 -vfr 25 -v :0.0 -seg-dur 2000 -live -npts -time-shift 10 -mpd-refresh 2

On Windows:

DashCast -vf dshow -v video="screen-capture-recorder" -vres 1024x768 -vfr 25 -v :0.0 -seg-dur 2000 -live -npts -time-shift 10 -mpd-refresh 2

Please note that GPAC Licensing has a more modular version of DashCast with some professional support. Please contact us for more information.

Current limitations

  • No checks on the Elementary Streams. You may provide some incorrect codecs of profiles without receiving any warning from MP4Box.
  • "segment timeline" with multiple non-aligned representations is currently broken. Fixing this will require either time or some funding from a partner. We need to change the way we represent data in the GPAC DASH segmenter (which was made while DASH was just a draft, see this excellent MPEG-DASH timeline by Nicolas Weil). Feel free to propose your help.

DRMs are supported using MPEG Common Encryption (CENC). To know more about the GPAC CENC support, I can suggest you 3 actions:

  1. Read the GPAC CENC documentation.
  2. Subscribe to our mailing-list at the bottom of this page to have access to a video explaining how it works.
  3. Wait for a next blog article which will explain how to be compatible with Microsoft PlayReady, Adobe Access, maybe more.

Support

If you have any questions or remarks, please feel free to contact us:

  • DASH-IF profiles specific, please use the DASH-IF Mailing-List.
  • For dash.js matters, please use the dash.js google group.
  • If you do or plan to have some professional support on GPAC, click here.
  • For all the other requests, please use the GPAC public forums.

Links

Diving into ultra-low latency for live using MPEG-DASH...

previous post

<

Summary of IBC’14 from the GPAC Licensing team...

next post

>
  • […] Thanks to a joint effort of GPAC Licensing, EBU and DASH-IF, the open-source multimedia framework GPAC now has support for the DASH Industry Forum DASH AVC/264 profile… and beyond! In this article we are going show you how to setup GPAC for your OnDemand and Live contents. In a next article, we’ll see how to use GPAC to encrypt your data with support with the most common DRMs. […]
  • […] 2013, December: GPAC Licensing signs a contract with DASH-IF to ensure their profiles implementation. […]
  • - Comments are closed -