Hands on and Demos

Scenarios

A) Pre-conditioned content

  • IDR Frame - Key frame present at require Ad Break In/Out locations

  • SCTE 35 Metadata - Content is conditioned with required SCTE 35 Metadata.

Create SMIL

See SMIL Examples

Create remix mp4

#!/bin/bash

unified_remix -o remixed.mp4 playlist.smil

Create presentation package

Origin

Server manifest creation
#!/bin/bash
mp4split -o manifest.ism \
  --timed_metadata \
  --splice_media \
  --hls.client_manifest_version=4 \
  --hls.no_audio_only \
  --hls.minimum_fragment_length=4004/1000 \
  remixed.mp4

Packager

Audio manifest creation
#!/bin/bash

mp4split --package_hls -o audio.m3u8 \
  --timed_metadata \
  --splice_media \
  --fragment_duration=6000/1000 \
  --output_single_file \
  remixed.mp4 --track_type=audio \
  remixed.mp4 --track_type=meta
Video manifest creation
#!/bin/bash

mp4split --package_hls -o video.m3u8 \
  --timed_metadata \
  --splice_media \
  --fragment_duration=6000/1000 \
  --iframe_index_file=iframe.m3u8 \
  --output_single_file \
  --start_segments_with_iframe \
  remixed.mp4 --track_type=video \
  remixed.mp4 --track_type=meta
Master manifest creation
#!/bin/bash

mp4split --package_hls -o master.m3u8 \
  audio.m3u8 \
  video.m3u8 \
  iframe.m3u8

B) Partly-conditioned content

  • IDR Frame - Key frames present at require Ad Break In/Out locations.

  • SCTE 35 Metadata - Content not conditioned with required SCTE 35.

Create SMIL

See SMIL Examples

Create remix mp4

#!/bin/bash

unified_remix -o remixed.mp4 playlist.smil

Create presentation package

See Create presentation package

C) Unconditioned content

  • IDR Frame - Key frames not present at required Ad Break In/Out locations.

  • SCTE 35 Metadata - Content not conditioned with required SCTE 35 Metadata.

Note

Media processing is required for IDR frame creation. Please follow the Media processing installation instructions to set up Media processing in order to condition content.

Create SMIL file

See SMIL Examples

Create remix mp4

#!/bin/bash

unified_remix -o remixed.mp4 playlist.smil

Create presentation package

See Create presentation package

SMIL Examples

Ad insertion SMIL
<?xml version="1.0" encoding="utf-8"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <head>
  </head>
  <body>
    <seq>
      <par>
        <!-- Sources contains single track per file -->
        <video src="https://demo.unified-streaming.com/k8s/features/stable/no-handler-origin/tears-of-steel/tears-of-steel-avc1-1000k.mp4" />
        <audio src="https://demo.unified-streaming.com/k8s/features/stable/no-handler-origin/tears-of-steel/tears-of-steel-aac-128k.mp4" />
        <EventStream xmlns="urn:mpeg:dash:schema:mpd:2011"  schemeIdUri="urn:scte:scte35:2013:xml" timescale="24">
        <!-- Marker 1 - Type: Ad Insert Time: 00:02:00:00 Duration:  00:00:28:00 -->
        <Event id="1" presentationTime="2880" duration="0">
         <Signal xmlns="http://www.scte.org/schemas/35/2016">
          <SpliceInfoSection>
           <SpliceInsert spliceEventId="1" outOfNetworkIndicator="1"  spliceImmediateFlag="1">
              <Program/>
            <BreakDuration autoReturn="1" duration="2520000"/>
           </SpliceInsert>
          </SpliceInfoSection>
         </Signal>
        </Event>
        </EventStream>
      </par>
    </seq>
  </body>
</smil>
Ad replacement SMIL
<?xml version="1.0" encoding="utf-8"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <head>
  </head>
  <body>
    <seq>
      <par>
        <!-- Sources contains single track per file -->
        <video src="https://demo.unified-streaming.com/k8s/features/stable/no-handler-origin/tears-of-steel/tears-of-steel-avc1-1000k.mp4" />
        <audio src="https://demo.unified-streaming.com/k8s/features/stable/no-handler-origin/tears-of-steel/tears-of-steel-aac-128k.mp4" />
        <EventStream xmlns="urn:mpeg:dash:schema:mpd:2011"  schemeIdUri="urn:scte:scte35:2013:xml" timescale="24">
        <!-- Marker 1 - Type: Ad Replace Time: 00:02:00:00 Duration:  00:00:28:00 -->
        <Event id="1" presentationTime="2880" duration="672">
         <Signal xmlns="http://www.scte.org/schemas/35/2016">
          <SpliceInfoSection>
           <SpliceInsert spliceEventId="1" outOfNetworkIndicator="1"  spliceImmediateFlag="1">
              <Program/>
            <BreakDuration autoReturn="1" duration="2520000"/>
           </SpliceInsert>
          </SpliceInfoSection>
         </Signal>
        </Event>
        </EventStream>
      </par>
    </seq>
  </body>
</smil>
Ad insert with transcoding SMIL
<?xml version="1.0" encoding="utf-8"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <head>
  </head>
  <body>
    <seq>
      <par>
        <!-- Information to trigger transcoding -->
        <ConditioningInfo xmlns="urn:cablelabs:iptvservices:esam:xsd:signal:1"
                  startOffset="PT120S"
                  duration="PT28S" />
        <!-- Sources contains single track per file -->
        <video src="https://demo.unified-streaming.com/k8s/features/stable/no-handler-origin/tears-of-steel/tears-of-steel-avc1-1000k.mp4" />
        <audio src="https://demo.unified-streaming.com/k8s/features/stable/no-handler-origin/tears-of-steel/tears-of-steel-aac-128k.mp4" />
        <EventStream xmlns="urn:mpeg:dash:schema:mpd:2011"  schemeIdUri="urn:scte:scte35:2013:xml" timescale="24">
        <!-- Marker 1 - Type: Ad Insert Time: 00:02:00:00 Duration:  00:00:28:00 -->
        <Event id="1" presentationTime="2880" duration="0">
         <Signal xmlns="http://www.scte.org/schemas/35/2016">
          <SpliceInfoSection>
           <SpliceInsert spliceEventId="1" outOfNetworkIndicator="1"  spliceImmediateFlag="1">
              <Program/>
            <BreakDuration autoReturn="1" duration="2520000"/>
           </SpliceInsert>
          </SpliceInfoSection>
         </Signal>
        </Event>
        </EventStream>
      </par>
    </seq>
  </body>
</smil>
Conditioning using External SCTE 35 file
<?xml version="1.0" encoding="utf-8"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
  <body>
    <seq>
      <par
        clipBegin="wallclock(1970-01-01T00:00:00.000Z)"
        clipEnd="wallclock(1970-01-01T99:99:99.999Z)" >
        <video src="video.mp4" />
        <video src="audio_eng.mp4" />
        <video src="emsg.mp4" />
      </par>
    </seq>
  </body>
</smil>

Ad Vendor Demos

Ad Insertion Platform

AWS Mediatailor