1. Using DASH and MPEG-2 TS
for Adaptive Multiplatform Delivery
Alex Giladi
2. MPEG DASH
Dynamic Adaptive Streaming over HTTP
– ISO/IEC 23009-1, expected in Dec. 2011
– Defines manifest and segment formats
Manifest (MPD)
– Media description using a hierarchical data model;
– Timing and segment availability
– Segment and MPD location
Segments
– Media Segment (ISO-BMFF and MPEG-2 TS)
– Index Segment
– Initialization Segment
3. DASH System Model
DASH client
HTTP GET
Content DASH MPD Access Media, Media
CDN
preparation Engine Timing Engine
HTTP GET
DASH Segment
Unspecified interface
DASH specifies on-the-wire interface
– No “DASH server”: only HTTP 1.1 assumed;
– No normative client
4. DASH Taxonomy
Representation
– “Encoding profile” of an asset
– Multiplexed or non-multiplexed
Media Segment
– Time-delimited part of an asset
– Addressable via HTTP GET
MPD
– Description of representations;
– Derivation of segment URL’s
<Representation id="A" bandwidth="3600000“
width=“1280” height=“720” samplingRate=“48000”
mimeType="video/mp2t" codecs="avc1,mp4a">
<SegmentList duration="10">
<SegmentURL media="BBB_3600_00001.ts"/>
<SegmentURL media="BBB_3600_00002.ts"/>
<SegmentURL media="BBB_3600_00003.ts"/>
</SegmentList>
</Representation>
5. Hierarchical Data Model
MPD
Period Period Period
Period
Time-limited subset of a presentation
Adaptation Adaptation
Adaptation Set Set Set
Switchable group of representations
Same components, same timeline
Representation Representation
Representation
Subrepresentation Segment
Subrepresentation Segment Representation
Subrepresentation Segment
Representation
6. URL construction
– Segment URL’s are resolved relative to BaseURL’s
– Allow URL diversity by using several BaseURL’s;
MPD.BaseURL=http://cdn1.example.com
MPD.BaseURL=http://cdn2.example.com
Period.BaseURL=“/MovieName/”
SegmentInfo.BaseURL=“seg_00001.ts”
SegmentInfo.BaseURL=“seg_00002.ts”
http://cdn2.example.com/MovieName/seg_00001.ts
http://cdn1.example.com/MovieName/seg_00001.ts
– URL templates allow printf-style variable substitution
• Important in case of small segments
<SegmentTemplate > ls *.ts
media=“seg_$Index%05$.ts" seg_00001.ts seg_00002.ts seg_00003.ts
duration="4" seg_00004.ts seg_00005.ts seg_00006.ts
startNumber="1"/> seg_00007.ts seg_00008.ts seg_00009.ts
7. Index Segment
Benefits
– fine-grain random access and switching;
– efficient trick modes
Format
– Separate file, URL provided via MPD;
– Per-representation or per-segment;
– Extensible syntax – additional items can be added
Segment Index (`sidx`)
– Defines subsegments (byte ranges within a segment)
– Provides timing and random access information
Subsegment Index (`ssix`)
– Defines byte ranges for extracting “levels”
8. Index Segment Example
`sidx`: maps GOP’s to subsegments
`ssix`: maps temporal subsequences
L0: I frames + ECM’s, 8x trick mode
L1: P frames, depends on L0, 4x trick mode
9. Initialization Segment
Initialization Segment
– Contains data that does not change between segments
• PAT
• PMT (if same version is used in all segments)
• ECM’s (if cryptoperiod doesn’t change)
– May contain other program data;
– May not contain playable media
– Is optional
media segments can be “self-initializing”;
10. Bitstream Switching
@segmentAlignment=“true”: segment borders are time-aligned
– bitstream switching feasible at segment borders
@startWithSAP=N: segments start with a RAP
– IDR for N=1-2 , Open GOP for N=3
@bitstreamSwitching=“true”: segment concatenation is a valid MPEG-2 TS
– seamless bitstream switching w/o overlapped downloading
– some decoders may have problems at resolution changes in valid sequences
11. More features
Content Protection
– DASH is DRM-agnostic, DRM signaled in MPD;
– Any DRM schema (and number of schemas) can be supported
– MPEG-2 CA explicitly supported
• ECM behavior specified at media segment level
Quality Metrics
– Set of metrics for QoS/QoE monitoring and reporting
MPD Assembly
– Elements can be stored remotely and loaded on demand
…
12. Profiles
– “Claim and permission”
MPD and segments claimed to be compliant;
Client permitted to ignore some MPD elements;
– Defined for ISO-BMFF and MPEG-2 TS;
– Can be combined within same MPD;
MPEG-2 TS profiles
– Main: segments are time-aligned
– Simple: seamlessly switchable subset of Main
Segments start with PAT, PMT, ECM, PCR
Segments contain only complete AU’s
13. Use Cases
Live
– Multiple short segments;
– Per-segment index file (if used);
– Templated MPD’s
– Limited segment availability window
– Larger window allows time-shift TV
On Demand
– Single or multiple segments per period;
– Per-representation index file;
– Additional languages in separate representations;
14. Dual TS-based deployments
HLS
– Simple TS profile content
Main profile if HLS content is reused
– Templated MPD, if naming convention is followed
– Index file (per-representation for VoD)
Legacy VoD
– Per-representation index file
– Can be also used for CDN’ized traditional VoD
15. Summary
Using DASH with MPEG-2 TS
– Standardized solution, avoids vendor lock-in;
– DRM-agnostic – no restrictions on DRM
– No server-side support needed;
– No need to replace equipment or workflows;
– Existing VoD and HLS content can be reused;
– Simple client implementation with Simple TS profile;