Video playback using HTTP Live Streaming and HTTP Adaptive Streaming

Introduction to multimedia streaming in TPC/IP networks.

Tomasz Ścisło (scislot@gmail.com)

tscislo.rootnode.net

Warsaw, 23.05.2011

Agenda

MSPH overview

Taken from HTTP Live Streaming Overview, Apple Inc., 2010-02-05

Media encoder

Stream segmenter

Distribution components

Client side

Different MSPH solutions

Standard name Vendor Distribution method Live support
HTTP Live Streaming Apple m3u8
HTTP Dynamic Streaming Adobe XML ?
Smooth Streaming Microsoft XML
HTTP Adaptive Streaming OIPF XML
Dynamic Adaptive HTTP Streaming MPEG ? ?

What are the advanteges of adaptive streaming?

Real bitrates and encoding type using HLS

Media presentation description (MPD) for HLS (1)

Media presentation description (MPD) for HLS (2)

Taken from HTTP Live Streaming Overview, Apple Inc., 2010-02-05

Media presentation description (MPD) for HLS (3)

Media presentation description (MPD) for HLS (4)

Media presentation description (MPD) for HLS (5)

Different playback modes in HTTP Live Streaming

Media presentation description for HAS (1)

Media presentation description for HAS (2)

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<?xml version="1.0" encoding="UTF-8"?>
<MPD type="OnDemand" minBufferTime="PT2S" mediaPresentationDuration="PT596S" xsi:schemaLocation="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009 3GPP-MPD-r1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:3GPP:ns:PSS:AdaptiveHTTPStreamingMPD:2009">
    <ProgramInformation>
        <ChapterDataURL>
            chapter.xml
        </ChapterDataURL>
    </ProgramInformation>
    <Period start="PT0S" segmentAlignmentFlag="True">
        <Representation id="0" mimeType="video/mpeg" bandwidth="500000" startWithRAP="True" width="960" height="540" group="0">
            <SegmentInfo duration="PT6S" baseURL="500k/" startIndex="0">
                <UrlTemplate sourceURL="T0_Big_Buck_Bunny_HAS_s$Index$.ts" endIndex="99"/>
            </SegmentInfo>
        </Representation>
        <Representation id="0" mimeType="video/mpeg" bandwidth="1200000" startWithRAP="True" width="960" height="540" group="0">
            <SegmentInfo duration="PT6S" baseURL="1200k/" startIndex="0">
                <UrlTemplate sourceURL="T1_Big_Buck_Bunny_HAS_s$Index$.ts" endIndex="99"/>
            </SegmentInfo>
        </Representation>
        
        <Representation id="0" mimeType="video/mpeg" bandwidth="2200000" startWithRAP="True" width="1440" height="810" group="0">
            <SegmentInfo duration="PT6S" baseURL="2200k/" startIndex="0">
                <UrlTemplate sourceURL="T0_Big_Buck_Bunny_HAS$Index$.ts" endIndex="99"/>
            </SegmentInfo>
        </Representation>
        <Representation id="1" mimeType="video/mpeg" bandwidth="3200000" startWithRAP="True" width="1440" height="810" group="0">
            <SegmentInfo duration="PT6S" baseURL="3200k/" startIndex="0">
                <UrlTemplate sourceURL="T1_Big_Buck_Bunny_HAS$Index$.ts" endIndex="99"/>
            </SegmentInfo>
        </Representation>
    </Period>
</MPD>

Disadvantages of using MSPH

Advantages of using MSPH

Credits