10
MPEG-DASH Conformance and Reference Software ISO/IEC 23009-2 Christian Timmerer Alpen-Adria-Universität Klagenfurt (AAU) bitmovin GmbH research.timmerer.com blog.timmerer.com dash.itec.aau.at bitmovin.net [email protected], [email protected] 105 th MPEG Meeting, Vienna, Austria July 2013

MPEG-DASH Conformance and Reference Software

Embed Size (px)

Citation preview

Page 1: MPEG-DASH Conformance and Reference Software

MPEG-DASH Conformance and Reference SoftwareISO/IEC 23009-2

Christian Timmerer

Alpen-Adria-Universität Klagenfurt (AAU) bitmovin GmbHresearch.timmerer.com blog.timmerer.com dash.itec.aau.at bitmovin.net

[email protected], [email protected]

105th MPEG Meeting, Vienna, AustriaJuly 2013

Page 2: MPEG-DASH Conformance and Reference Software

Outline

• Introduction and overview• Media presentation conformance• DASH access client reference software: libdash• Sample software– Clients: sample player, GPAC– Segmenter: MP4Box

• Summary

July 2013 2Christian Timmerer (AAU/bitmovin)

Page 3: MPEG-DASH Conformance and Reference Software

Introduction• Conformance and reference software of MPEG-DASH serves three

main purposes:– validation of the written specification;– clarification of the written specification; and– conformance testing for checking interoperability for the various

applications against the reference software which aims to be compliant with ISO/IEC 23009

• ISO/IEC 23009-2: media presentation conformance, test vectors, DASH access engine reference software, sample software

July 2013 3Christian Timmerer (AAU/bitmovin)

Page 4: MPEG-DASH Conformance and Reference Software

Overview• Media presentation conformance

– MPD validator: xlink, schema validation, add’l validation rules– Segment conformance: check ISOBMFF, M2TS against DASH

specification– Dynamic service validator: dynamic updates of the MPD

• DASH conformance sequences• DASH access client reference software

– libdash: access to information contained in the MPD + schedule download of segments

• Sample software– Sample player: utilizes libdash, GUI, manual adaptation logic– GPAC player: integrated player or embeddable DASH engine– MP4Box segmenter: create segments + MPD based on encoded

content

July 2013 4Christian Timmerer (AAU/bitmovin)

Page 5: MPEG-DASH Conformance and Reference Software

MPD Conformance

Free online MPD validation service accessible at http://dash.itec.aau.at

July 2013 5Christian Timmerer (AAU/bitmovin)

Resolves all W3C XLINK attributes as defined in

MPEG-DASH Part 1

Performs the XML validation (i.e., well-formed and valid) against the MPD schema as defined

in W3C XML and W3C XML SCHEMA

Performs the Schematron validation as defined in ISO/IEC 19747-3 according to the rules defined in MPEG-DASH Part 2

Page 6: MPEG-DASH Conformance and Reference Software

libdash• MPEG-DASH Part 1 defines XML-based MPD and segment formats

(M2TS, ISOBMFF)– MPD reflects the DASH data model providing HTTP URLs to

downloadable segments• Adaptation logic is deliberately excluded from the specification and

left open for industry competition• libdash provides the following features:

– Object-oriented interface into the MPD– Access information within MPD and schedule download of segments– External interfaces: DASH streaming control (incl. adaptation logic),

segment parser, media player – deliberately not implemented: may vary across use cases, deployments, and go beyond what is normatively specified

• libdash has full standard support, well-defined interfaces, and enables integration within a media ecosystem ➜ libdash is an enabler!

July 2013 7Christian Timmerer (AAU/bitmovin)

Page 7: MPEG-DASH Conformance and Reference Software

Sample Player• Qt-based cross-platform GUI + ffmpeg based on libdash• Works with conformance bitstreams, DASH-IF test vectors,

and major DASH datasets

July 2013 Christian Timmerer (AAU/bitmovin) 8

Select available MPDs

Video content

Download MPD, start/stop streaming

Interactive seamless switching of AdaptationSets

and Representations

Segment, frame, audio, video

buffer

Page 8: MPEG-DASH Conformance and Reference Software

GPAC Players for DASH• Open Source project

http://gpac.sourceforge.net• Integrated player or embeddable DASH engine– Multi-platform: desktop, mobile– Playback of a very large subset of DASH conformant

content• M2TS and ISOBMFF segments• "static" or "dynamic" presentations• Live, Main, OnDemand and Simple profiles

– Support for quality changes • Interactively or automatically (bandwidth estimation and

limitation)

July 2013 9Christian Timmerer (AAU/bitmovin)

Page 9: MPEG-DASH Conformance and Reference Software

GPAC MP4Box for Segmenting• Conformant generation of– Media files (ISOBMFF, M2TS)– MPD (all profiles)

• Support for several MPD syntax options– SegmentList, SegmentTemplate, SegmentTimeline

• Automatic mapping of the inputs into adaptation sets, representations, groups, assignment of roles– Based on the content characteristics

• Flexible generation of segments and subsegments with possible indexing, RAP alignment, and bitstream switching features

• Generation of "dynamic" MPD and segments and updates from pre-recorded content

July 2013 10Christian Timmerer (AAU/bitmovin)

Page 10: MPEG-DASH Conformance and Reference Software

Summary• MPEG-DASH conformance and reference software available and

accessible via MPEG SVN repository– Includes conformance bitstreams for MPDs, segments, and

combinations thereof– libdash + sample player: http://www.bitmovin.net/libdash/– GPAC: http://gpac.sourceforge.net

• Additional useful resources– DASH dataset (dash.itec.aau.at): full-length movies w/ different

segment sizes, spatial resolutions, bitrates, and genre– Distributed DASH dataset (dash.itec.aau.at): one dataset distributed

across seven sites (Klagenfurt, Paris, Prague, Torino, Crete, Delft, Taiwan), usage of multiple BaseURL elements

– DASH Industry Forum (dashif.org): DASH-AVC/264 interoperability points, identifier repository, reference client (dash.js, https://github.com/Dash-Industry-Forum/dash.js/), sample players, clients

July 2013 11Christian Timmerer (AAU/bitmovin)