31108012 dashtutorial-08112011

31
Overview of MPEG-DASH ISO/IEC 23009-1 Dynamic Adaptive Streaming over HTTP August 2011 1 Iraj Sodagar 8/11/2011

Upload: bunty2108

Post on 19-Jul-2016

7 views

Category:

Documents


1 download

DESCRIPTION

DASH Protocol

TRANSCRIPT

Page 1: 31108012 DASHtutorial-08112011

Overview of

MPEG-DASH ISO/IEC 23009-1

Dynamic Adaptive Streaming over HTTP

August 2011 1

Iraj Sodagar

8/11/2011

Page 2: 31108012 DASHtutorial-08112011

Streaming Standardization Evolution

IIS Smooth Streaming

HTTP Live Streaming

(HLS)

Smooth Streaming Transport Protocol

Protected Interoperable File Format Sept 2009

First Informational Draft May 2009

Adaptive HTTP Streaming (AHS) March 2010

HTTP Adaptive Streaming (HAS) Sept 2010

Dynamic Adaptive Streaming over HTTP (DASH) 2nd Draft International Standard – July 2011

Publish

Publish

Under Community Promise (royalty free)

Liaison

relationship

Liaison

relationship

Liaison

relationship

Publish Publish

Publish MPEG - ISO/IEC

JTC1/SC29 WG11 Liaison

relationship

Publish

Common File Format Estimated. Q1 2011

Contribute

14496-12 ISO Base Media File Format Draft Amendment - July 2011

23001-6 Common Encryption

Digital

Entertainmen

t Content

Ecosystem

2 March 7, 2011

Page 3: 31108012 DASHtutorial-08112011

MPEG-DASH Standard Development

Stage Steps Approval

Process

Timeline

(date of issue)

Exploration 1st Workshop on MMT - July 2009

1st Draft CFP - October 2009

2nd Workshop on MMT - January 2010

Committee

Stage

Call for Proposals MPEG consensus April 2010

Working Draft MPEG consensus July 2010

Committee Draft SC29 Ballot October 2010

Approval

Stage

Draft International Standard JTC1 Ballot January 2011

2nd Draft International Standard JTC1 Ballot July 2011

International Standard Dec 2011

(expected)

August 2011 3

DASH is an example of developing the standard in the shortest

Page 4: 31108012 DASHtutorial-08112011

Standard Participation

August 2011 4

15 complete proposals.

Over 200 line proposals.

17 Evaluation Experiments.

40-70 contributions at each meeting.

50-90 participants at each meeting.

Ad-hoc meeting frequency at least twice of regular

MPEG meeting.

Close collaboration with 3GPP.

Page 5: 31108012 DASHtutorial-08112011

Highlighted Features

Supports adaptive on demand and live streaming such as

MPEG-4 file format and MPEG-2TS.

Efficient and ease of use of existing CDNs, proxies, caches,

NATs and firewalls.

Control of entire streaming session by the client.

Support of seamless switching of tracks.

The concept of switching and selectable streams.

Signaling, delivery, utilization of multiple DRM schemes.

Supports ad-insertion.

Segments with variable durations.

Sub-segment alignment indication to simplify switching and

avoiding overlapping fragments.

August 2011 5

Page 6: 31108012 DASHtutorial-08112011

Highlighted Features

Manifest fragmentation and assembly for external inclusion of

elements.

Content Descriptors for Accessibility, Rating and camera

views.

Multiple base URLs for the same content.

Clock drift control for live sessions.

Scalable Video Coding (SVC) and Multiview Video Coding

(MVC).

Subseting of representation groups according to the content

author‟s guidance.

Quality metrics for reporting the session experience.

August 2011 6

Page 7: 31108012 DASHtutorial-08112011

Adaptive Dynamic Streaming Temporal

Model

August 2011 7

Period 1 Period 2

Video

Audio1 English

Audio2 French

Period 3

5M

2M

0.5M

Trick

Mode

time

Surround

128K

AAC

48K

AAC

128K

AAC

48K

AAC

Page 8: 31108012 DASHtutorial-08112011

DASH Standard’s Scope

August 2011 8

HTTP Server DASH Client

Control Heuristics

Media

Player

HTTP Client

Segment

Parser

MPD Parser Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

Segment

MPD MPD

MPD

MPD

HTTP 1.1

MPD Delivery

DASH Spec covers the red blocks. [Note: Client’s behavior is only defined to the extend

needed for compliancy with MPD and segment formats.]

Page 9: 31108012 DASHtutorial-08112011

Media Presentation Description (MPD)

August 2011 9

<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:mpeg:mpegB:schema:DASH:MPD:DIS2011" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="urn:mpeg:mpegB:schema:DASH:MPD:DIS2011"> <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/> <xs:annotation> <xs:appinfo>Media Presentation Description</xs:appinfo> </xs:annotation> ...

<!-- MPD: main element --> <xs:element name="MPD" type="MPDtype"/> ... </xs:schema>

XML document containing metadata to construct appropriate

HTTP-URLs to access media segments.

HTTP-URLs absolute or relative.

Containing exactly one MPD element

Actual playback is not controlled.

The MIME type of the MPD is defined.

Delivery of the

MPD not in

scope of this

standard.

Page 10: 31108012 DASHtutorial-08112011

Media Presentation Data Model

March 2011 10

MPD

Period id=1 start=0sec

Period id=2 start=240sec

Period id=3 start=300sec

Period id=2 start=240sec

AS 0

AS 1

AS 2

Adaptation Set 1

Representation 1 5MB

Representation 2 2MB

Segment Info Representation 2 2MB

Representation 3 500KB

Representation 4 TM

Segment Info Duration=240 sec

Media Segment 1 start= 0 sec

http://ex.com/v1.mp4

Media Segment 2 start=15 sec

http://ex.com/v2.mp4

Media Segment 3 start=30 sec

http://ex.com/v3.mp4

Media Segment 4 start=45sec

http://ex.com/v4.mp4

Initialization

Segment http://ex.com/i1.mp4

Page 11: 31108012 DASHtutorial-08112011

URL Addressing

August 2011 11

URLs at each level of the MPD are resolved with

respect to the BaseURL elements of levels above.

The base URL information may present on the

following levels:

MPD, Period, AdaptationSet, Representation

Alternative base URLs may be are provided through

the BaseURL element

the identical segments are accessible at multiple locations.

Page 12: 31108012 DASHtutorial-08112011

Remote MPD Elements

Elements can get embedded in MPD with remote

addressing using XLINK:

Unresolved, inconsistent, self-referencing will be

considered invalid.

No conflict between internal and remote elements.

Only a single element shall be included in a remote

element.

August 2011 12

@xlink:href Identifies the remote Element by URI.

@xlink:actuate

onLoad: dereference the remote element immediately on loading

the MPD.

onRequest (default): dereference the remote element only when

needed.

Page 13: 31108012 DASHtutorial-08112011

Periods

A Media Presentation consists of one or more Periods.

Period elements are physically ordered in MPD in

increasing order of their time.

Main attributes: @start, @duration, and

August 2011 13

@segmentAlignment this specifies that for any two Representations in this

Period, of the same media type, the m-th segment of X

and the n-th segment of Y are non-overlapping whenever

m is not equal to n.

@bitstreamSwitching The concatenation of any Initialisation Segment within the same

AdaptationSet in a Period, if present, with all consecutive Media

Segments from any Representation within this same

AdaptationSet, starting with the first Media Segment, results in a

conforming segment sequence.

Page 14: 31108012 DASHtutorial-08112011

AdaptationSets

Each Period consists of one or more AdaptationSets, which each consists of

one or more Representations.

Representations in the same Adaptationsets are alternatives to each other

and typically contain different encoded versions of the same source:

Such as language, media component type, picture aspect ratio, role, accessibility,

viewpoint, rating.

Adaptationsets can be arranged using @group:

Either one Representation from group 0, or the combination of at most

one Representation from each non-zero group.

Main attributes:

@group, @lang, @mediaComponentTytpe, @par,

@minBandwidth,@maxBandwidth,@minWidth, @maxWidth, @minHeight, @maxHeight,

@minFrameRate, @maxFrameRate, @segmentAlignment, @bitStreamSwitching,

@subsegmentAlignment, Accessibility, Role, Rating, Viewpoint, MultipleViews

Common between Adaptationsets, Representations and SubRepresentations

August 2011 14

Page 15: 31108012 DASHtutorial-08112011

Representations & Sub-representations

A Representation:

One of the alternative choices of the media content typically differing

by encoding parameters such as bitrate, resolution, language, codec,

etc.

Aligned within the period‟s boundaries.

Consists of one or more Segments.

Contains an initialisation segment or all segments are self-initialising.

May contain zero or more SubRepresentations.

A SubRepresentation:

Provide the ability for accessing a lower quality version of the

Representation. Examples:

Audio track in a multiplexed Representation.

Lower frame rate for efficient fast-forward.

August 2011 15

Page 16: 31108012 DASHtutorial-08112011

Subsets An optional mechanism for the content creator to create collections

of media presentations for various application/devices within the same

MPD.

Restrict the combination of active AdaptiveSets.

DASH client must use one subset.

Empty subsets are not allowed.

No subset can contain all groups.

August 2011 16

G1

G2

G3

G4

G5

G6

S1

S2

S2: Tablet with SD video and high quality

audio.

S1: HDTV with surround sound.

Video Audio

Qualit

y

Page 17: 31108012 DASHtutorial-08112011

Segments

A Segment is a unit that can be referenced by an HTTP-

URL included in the MPD.

“http://” and optionally with a byte range.

Segments‟ availability duration: the time window at which

the Segments can be accessed by the HTTP-URL.

Each representation has at most one SegmentInfo

element which provides:

Presence or absence of Initialisation and Index Segment information.

HTTP-URL and byte range for each segment.

Segment availability start time and availability end time for live case.

Approximated media start time and duration of each segment.

Fixed or variable duration.

August 2011 17

Page 18: 31108012 DASHtutorial-08112011

Initialization & Media Segments

Initialization Segment:

Each representation may have at most one Initialisation

Segment to initialise the media engines for play-out.

If no Initialisation Segment URL is present, then each Media

Segment is self-initializing.

Media Segment:

Each representation has a list of consecutive Media

Segments.

Media segment information:

URL, possibly restricted by a byte range.

Index of segment.

Approximate start time and duration.

August 2011 18

Page 19: 31108012 DASHtutorial-08112011

Descriptors

No normative information on how to use these elements.

Content protection: specific schemeIdUri for MP4 and M2TS.

FramePacking: specific schemeIdUri for AVC and MPEG-2.

Role: specifc schemeIdUri for defined table.

Accessibility

Rating

Viewpoint

AudioChannelConfiguration: specific schemeIdUri from 23002-3.

August 2011 19

Descriptor Provides information about a descriptor

@schemeIdUri a URI to identify the scheme.

@value The value and semantics must be defined by the owners of

the scheme identified in the @schemeIdUri.

Page 20: 31108012 DASHtutorial-08112011

Segment Formats

Segment: The entity body of the response when issuing a

HTTP GET or a partial HTTP GET

Initialisation Segment contains initialisation information for

Representation and contain no media data.

A Media Segment contains media components and

is assigned an MPD URL Element.

is explicitly or implicitly assigned a start time

the first Media Segment always start with a RAP.

Segment formats that are defined:

ISOBFF

MPEG2TS

August 2011 20

Page 21: 31108012 DASHtutorial-08112011

ISOBFF Segment Formats

Initialization Segment „ftyp‟ box, „moov‟ box and optionally „pdin‟ box.

Media Segment Self contained movie fragments („moof ‟ and „mdat‟)

Optionally „styp‟ box for file branding.

„tfad‟ box for random access.

Optionally „sidx‟ box for time/byte range of movie fragments

and Stream Access Points (SAPs).

Self-initializing Media Segment Union of the above definitions.

August 2011 21

Page 22: 31108012 DASHtutorial-08112011

Describes sub-segments and Stream Access Points (SAP)s in

the segment.

Byte offset and duration.

Enables DASH Client to access the sub-segments by the use of

HTTP partial GET.

Segment Index Information

August 2011 22

F1 F2 F5 F4 S1 F7 F3 F6

Simple

F1 F2 F4 F3 S1 S2 F5 S3

Daisy-Chain

F1 F1 F3 F2 S1 S3 F4 S4 S2

Hierarchical

F1 F2 F4 F3 S1 S2 F5 S3

Hybrid

Page 23: 31108012 DASHtutorial-08112011

Common Encryption

August 2011 23

Encrypted once, deliver licenses many ways

Provides a mechanism for delivering same encrypted

segments to various client supporting different proprietary

DRM systems.

Can be applied to media segments, subsegments or individual

samples.

Signals algorithm identifier, key identifier and initialization

vector size.

Using track encryption box or sample groups.

Use „pssh‟ box for opaque information of each specific DRM

scheme.

A new standard: ISO/IEC 23001-7

Page 24: 31108012 DASHtutorial-08112011

ISOBFF File Format Amendments for

DASH

Part of the 3rd amendment to 14496-12.

Currently at similar process stage as DASH‟s specification.

Some of new boxes for DASH:

August 2011 24

Box Type Container Function

tfdt traf Decode time of the 1st sample in the track fragment. Useful for

random access.

styp file Similar to „ftyp‟, but for segments.

sidx file Indexing subsegments and SAPS inside a segment.

ssix file Indexing subsegments according to the media‟s levels (for

scalable or view dependent streams)

prft file UTC-synchronized NTP clock. For clock drift control.

Page 25: 31108012 DASHtutorial-08112011

Quality Metrics

To report back the Quality of Experience (QoE) to the reporting server.

Three conceptual observation points for measurements:

August 2011 25

Example of OP1 metrics Example of OP3 metrics Key Description

TcpList List of HTTP request/response transactions

Entry An entry for a single HTTP request/response

Tcpid Identifier of the TCP connection.

dest IP Address of the interface.

Topen The time at which the connection was opened.

Tclose The time at which the connection was closed.

TConnect Connect time in ms

Key Description

RepSwitchList List of representation switch events

Entry A representation switch event.

T Time of the switch event.

Mt The media time of the earliest media sample

To Representation id identifying the switch-to

representation.

Page 26: 31108012 DASHtutorial-08112011

Profiles

Profiles enable interoperability and conformance.

A profile refers to a set of defined restrictions.

Scope: this specification, i.e. MPD and segment formats.

A profile is a claim and a permission.

claims MPD document and segment formats conforms to the profile.

permission to the client to read the media presentation, interpret what

it recognizes, and ignore the material it does not understand.

Signaled at MPD level. Can be multiple.

Currently five profiles:

M2TS Simple and Main

ISOMFF On-Demand, Live and Main

August 2011 26

Page 27: 31108012 DASHtutorial-08112011

ISOBMFF Profiles

August 2011 27

MPD item On Demand Live Main

MPD@type Static Dynamic or Static Dynamic or Static

Segmentation Single Single or multiple Single or multiple

Alignment Yes (subsegment) Yes (segment) Static: Any

Dynamic: Yes (segment)

StartWithSAP

(1, 2, 3*) Yes (subsegment) Yes (segment)

Static: 1,2,3

Dynamic: Yes (segment)

StartWithSAP

(>3) No No

Segment

Timeline No Yes Yes

Subsets May be ignored

Multiple Periods Yes

Multiplexed Yes

Non-multiplexed Yes

Page 28: 31108012 DASHtutorial-08112011

MPEG-2 Profiles

MPD item M2TS Simple M2TS Main

MPD@type Dynamic or Static Dynamic or Static

Segmentation Single or multiple Single or multiple

Alignment Yes (subsegment)

Yes (segment)

Any

StartWithSAP

(1, 2, 3*)

Yes (subsegment)

Yes (segment)

Any

StartWithSAP (>3) No Yes

Segment Timeline May be ignored

Subsets May be ignored

Multiple Periods Yes

Multiplexed Yes

Non-multiplexed No

August 2011 28

Page 29: 31108012 DASHtutorial-08112011

Software, Conformance and TR

Conformance and Software:

New part of standard: 23009-2.

2st Working Draft.

Conformance tools, documents and examples.

Software architecture and modules.

Workplan for both.

TR: Implementation Guidelines for DASH

Informative.

Guidelines on how to create content, timing, MPD

generation, choice of parameters, storing streams into file.

August 2011 29

Page 30: 31108012 DASHtutorial-08112011

Collaboration with Other SDOs

3GPP

Collaboration on specifications alignment.

Release 9: a subset of MPEG‟s DASH.

Release 10: as close as possible to DASH.

Profiling yet to be decided.

DECE

Recently established the liaison.

ISOBFF for common encryption & multi-DRM support.

DASH as the candidate for streaming (to be decided).

W3C Web & TV Interest Group (IG)

Newly established IG.

Collaboration hopefully to start soon.

DASH possibly the main candidate for the streaming protocol.

Liaisons with HbbTV, OIPF, DTG, DVB, etc. on

August 2011 30

Page 31: 31108012 DASHtutorial-08112011

What’s Next

23009-1: 2nd DIS balloting starts soon.

Expected IS in December 2011

14496-12 AMD 3 to ISOBMFF & 23001-7 Common

Encryption

Expected IS in December 2011

Complete the reference software and conformance.

Complete the technical report.

Thanks for your attention!

August 2011 31