This documentation is no longer actively maintained and may contain outdated information. For the latest product documentation, use docs.mediakind.com.

Manifest conditioned examples

Manifest conditioned examples

This section provides manifest samples for the different protocols, generated by a packager, under the control of Prisma.

HLS Manifest sample

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:25005
#EXTINF:10,
20141121T113401-v1-257-258-25005.ts
#EXTINF:8.8,
20141121T113401-v1-257-258-25006.ts
#EXT-X-CUE-OUT:ID=1234,UNIQUEPROGRAMID=7777,AVAILNUM=3,DURATION=PT30S
#EXTINF:10,
20141121T113401-v1-257-258-25007.ts
#EXT-X-CUE-SPAN:ID=1234,UNIQUEPROGRAMID=7777,AVAILNUM=3,TIMEFROMSIGNAL=PT10S,DURATION=PT30S
#EXTINF:10,
20141121T113401-v1-257-258-25008.ts
#EXT-X-CUE-SPAN:ID=1234,UNIQUEPROGRAMID=7777,AVAILNUM=3,TIMEFROMSIGNAL=PT20S,DURATION=PT30S
#EXTINF:10,
20141121T113401-v1-257-258-25009.ts
#EXT-X-CUE-IN:ID=1234,UNIQUEPROGRAMID=7777,AVAILNUM=3,DURATION=PT30S
#EXTINF:10,
20141121T113401-v1-257-258-25010.ts

DASH Manifest sample

Upon SCTE-35 detection, a packager generally starts a new period. In the below example, we just show the beginning of the manifest for sake of clarity.

Conditioning information sent by Prisma is highlighted below.

    <Period id="146723272290" start="PT1513260090.182S">
        <EventStream schemeIdUri="urn:mime:text" timescale="90000">
            <Event presentationTime="146723272290" duration="2700000" id="35e946ae-684f-4045-b009-b681550e8521">
            PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+PFNpZ25hbD48U3BsaWNlSW5mb1NlY3Rpb24gc2N0ZTM
            1UG9pbnQ9IjE0NjcyMzI3MjI5MCI+PFNwbGljZUluc2VydCBzcGxpY2VFdmVudElkPSIxMjM0IiBvdXRPZk5ldHdvcmtJbm
            RpY2F0b3I9IjEiIHVuaXF1ZVByb2dyYW1JZD0iMCIgYXZhaWxOdW09IjAiPjxCcmVha0R1cmF0aW9uIGR1cmF0aW9uPSJQ
            VDMwUyIvPjwvU3BsaWNlSW5zZXJ0PjwvU3BsaWNlSW5mb1NlY3Rpb24+PC9TaWduYWw+</Event>
        </EventStream>
        <AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" maxWidth="640" maxHeight=
        "480" maxFrameRate="30000/1001" par="4:3">
            <InbandEventStream schemeIdUri="urn:mpeg:dash:event:2012" value="1"/>
            <SegmentTemplate timescale="90000" initialization="$RepresentationID$-Header-1513259339742.m4s" 
            media="$RepresentationID$-0-T-$Time$.m4s" presentationTimeOffset="146723273934">
                <SegmentTimeline>
		… manifest continues…

In this example, the content of the placement opportunity (SCTE-35) is encoded in XML/base64 URL. When decoding the orange part highlighted above, the following XML structure is given:

<?xml version="1.0" encoding="utf-8" ?>
<Signal>
    <SpliceInfoSection scte35Point="146723272290">
        <SpliceInsert spliceEventId="1234"  outOfNetworkIndicator="1"
          uniqueProgramId="0" availNum="0"><BreakDuration duration= "PT30S"/>
        </SpliceInsert>
    </SpliceInfoSection>
</Signal>

This information can then be used by downstream manifest manipulator, or directly by the player to understand a break of 30 seconds signaled via splice insert command is on-going at designated splice point time (scte35Point).

HSS Manifest sample

An example of conditioned HSS manifest is given below, with the conditioning info sent by Prisma highlighted in orange.

<?xml version="1.0" encoding="UTF-8"?>
<SmoothStreamingMedia MajorVersion="2" MinorVersion="0" Duration="0" TimeScale="10000000" IsLive="TRUE" 
LookAheadFragmentCount="2" DVRWindowLength="330400000" CanSeek="TRUE" CanPause="TRUE">
    <StreamIndex Name="video" Type="video" Subtype="AVC1" QualityLevels="1" Chunks="6" Url="QualityLevels
    ({bitrate})/Fragments(video_289_dvr_sparse={start time})">
        <QualityLevel Index="0" Bitrate="800000" FourCC="AVC1" MaxWidth="640" MaxHeight="480" 
        CodecPrivateData="00000001674d401e965281407b7fe000800069c1414142800000000168ef3880"/>
        <c t="16328969592666" d="30400000"/>
        <c d="60000000"/>
        <c d="60000000"/>
        <c d="60000000"/>
        <c d="60000000"/>
        <c d="60000000"/>
    </StreamIndex>
    <StreamIndex Name="audio545" Language="deu" Type="audio" Subtype="AACL" QualityLevels="1" Chunks="6" 
    Url="QualityLevels({bitrate})/Fragments(audio_545_dvr={start time})">
        <QualityLevel Index="0" Bitrate="48000" FourCC="AACL" SamplingRate="32000" Channels="2" 
        BitsPerSample="16" PacketSize="4" AudioTag="255" CodecPrivateData="1290"/>
        <c t="16328970679000" d="30400000"/>
        <c d="59840000"/>
        <c d="60160000"/>
        <c d="59840000"/>
        <c d="60160000"/>
        <c d="59840000"/>
    </StreamIndex>
    <StreamIndex Name="c35x_0" Type="text" Subtype="C35X" QualityLevels="1" ParentStreamIndex="video" 
    ManifestOutput="TRUE" Chunks="2" Url="QualityLevels({bitrate})/Fragments(c35x_0_dvr={start time})">
        <QualityLevel Index="0" Bitrate="32" FourCC="C35X" CodecPrivateData=""/>
        <c t="16329000869666" d="1">
            <f>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+PFNpZ25hbEdyb3VwPjxTaWduYWxQb2lud
            CBzaWduYWxQb2ludElkPSIiPjxTQ1RFMzVQb2ludERlc2NyaXB0b3IgYnJlYWtEdXJhdGlvbj0iUFQzMFMiIHNjdGUz
            NVBvaW50PSIxNjMyOTAwMDg3MDAwMCI+PFNwbGljZUluZm8gc3BsaWNlQ29tbWFuZFR5cGU9IjUiPjxTcGxpY2VJbnN
            lcnRJbmZvIHNwbGljZUV2ZW50SWQ9IjEyMzQiIG91dE9mTmV0d29ya0luZGljYXRvcj0iMSIgdW5pcXVlUHJvZ3JhbU
            lkPSIwIiBhdmFpbE51bT0iMCIgZHVyYXRpb249IlBUMzBTIi8+PC9TcGxpY2VJbmZvPjwvU0NURTM1UG9pbnREZXNjc
            mlwdG9yPjwvU2lnbmFsUG9pbnQ+PC9TaWduYWxHcm91cD4=</f>
        </c>
    </StreamIndex>
</SmoothStreamingMedia>

Similar to DASH, conditioning info is formatted in XML, and encoded in base64URL.