SCTE-35 Markers
SCTE-35 markers identify points where alternate content (typically commercials or local programming) can be inserted into a composition. SCTE-35 markers are attached to video stream samples as sc35
metadata. See Metadata Types for additional information.
Transform supports SCTE-35 markers in the following outputs:
-
MPEG-2 Transport Stream
m2ts
. Markers are carried in a separate packetized elementary stream (PES). Use theScte35Pid
stream property to set the elementary stream packet identifier (PID). -
HTTP Live Streaming
hls
. Markers are added to the playlist (M3U8) for each variant stream. For MPEG-2 Transport Stream variants the markers are also inserted into an elementary stream. -
MPEG-DASH
dash
andcmaf
. Markers are added to the presentation (MPD) as anEventStream
element in either XML or binary format. Need format property.
SCTE-35 Pass-through
By default SCTE-35 metadata extracted from an input container is inserted into each output container.
For example the following composition produces an MPEG-2 transport stream with SCTE-35 markers on PID 400:
---
input:
container:
- name: input1
video:
- name: v1
output:
container:
- name: output1
type: 'm2ts'
properties:
Scte35Pid: 400
video:
- name: v1
{
"input": {
"container": [
{
"name": "input1",
"video": [
{
"name": "v1"
}
]
}
]
},
"output": {
"container": [
{
"name": "output1",
"type": "m2ts",
"properties": {
"Scte35Pid": 400
},
"video": [
{
"name": "v1"
}
]
}
]
}
}
SCTE-104 Conversion
SCTE-104 operations are inserted by broadcast automation systems and attached to video samples as ancillary s104
metadata. SCTE-104 operations on an input stream are automatically converted to SCTE-35 markers on an output stream.
SCTE-104 operation metadata must be extracted from appropriate root element. For example the following extracts SCTE-104 from MXF Ancillary mxfa
metadata:
---
input:
container:
- name: input1
video:
- name: v1
detach:
- type: 's104'
root: 'mxfa'
output:
container:
- name: output1
type: 'm2ts'
properties:
Scte35Pid: 400
video:
- name: v1
{
"input": {
"container": [
{
"name": "input1",
"video": [
{
"name": "v1",
"detach": [
{
"type": "s104",
"root": "mxfa"
}
]
}
]
}
]
},
"output": {
"container": [
{
"name": "output1",
"type": "m2ts",
"properties": {
"Scte35Pid": 400
},
"video": [
{
"name": "v1"
}
]
}
]
}
}
SCTE-35 Insertion
SCTE-35 markers can be inserted from a sidecar metadata file. For example the following will insert markers from an MPEG-DASH presentation (MPD):
---
input:
container:
- name: input1
video:
- name: markers
- name: input2
video:
- name: v1
merge:
name: markers
output:
container:
- name: output1
type: 'm2ts'
properties:
Scte35Pid: 400
video:
- name: v1
The merge
operator adds the sc35
metadata from the input1
DASH presentation to the input2
video stream.
DASH Event Stream
The following XML illustrates an MPEG-DASH presentation containing a SCTE-35 EventStream
. This example identifies a 30 second ad break starting at 10 seconds into the presentation:
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:scte35="http://www.scte.org/schemas/35/2016">
<Period start="PT0S">
<EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
<Event presentationTime="900000">
<scte35:SpliceInfoSection>
<scte35:TimeSignal/>
<scte35:SegmentationDescriptor spliceEventId="1" segmentationTypeId="52" segmentationDuration="2700000" segmentationUpidType="9" segmentationUpid="1" segmentNum="1" segmentsExpected="1" />
</scte35:SpliceInfoSection>
</Event>
<Event presentationTime="3600000">
<scte35:SpliceInfoSection>
<scte35:TimeSignal/>
<scte35:SegmentationDescriptor spliceEventId="1" segmentationTypeId="53" segmentationUpidType="9" segmentationUpid="2" segmentNum="1" segmentsExpected="1" />
</scte35:SpliceInfoSection>
</Event>
</EventStream>
</Period>
</MPD>
The schemeIdUri
indicates that each Event
contains a SCTE-35 marker specified in XML format. The presentationTime
of each event is specified in the event stream timescale
(typically 90kHz).
SCTE-35 markers can also be specified in binary format as illustrated below:
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:scte35="http://www.scte.org/schemas/35/2016">
<Period start="PT0S">
<EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">
<Event presentationTime="900000">
<scte35:Signal>
<scte35:Binary>/DAhAAAAAAAAAP/wEAUAAALRf+9//gAaF7DAAAAAAAA+MhNj</scte35:Binary>
</scte35:Signal>
</Event>
<Event presentationTime="3600000">
<scte35:Signal>
<scte35:Binary>/DAhAAAAAAAAAP/wEAUAAALSf+9//gAaF7DAAAAAAABd4y1C</scte35:Binary>
</scte35:Signal>
</Event>
</EventStream>
</Period>
</MPD>
ESAM Signal Processing Notification
TBD
Updated about 1 year ago