You are on page 1of 18

Machine Translated by Google

Use of SCTE-104/35 tags in digital program insertion systems


1. Architecture of network broadcasting systems with digital program insertion ....................................................
1 1.1. Linear network broadcasting .......................................................... ................................................. ..
2 1.2. Slots................................................. ................................................. ................................... 2
1.3. Splicer functions .................................................................. ................................................. .............
2 1.4. Ad Server Functions .................................................................. ...............................................
2 1.5. Conditions for seamless splicing ............................................................... .........................................
3 1.6. SCTE-104/35 Messages............................................... ................................................. ........ 3
1.7. SCTE-104/35 messaging channels............................................... ............................... 3 1.8.
SCTE-104 messaging channel with feedback .............................................. ...... 4 1.9. SCTE-104
messaging channel without feedback .......................................................... ..... 4 2. Program insertion
control using SCTE104/35 messages .................................................. 6 2.1. Types of Commands in
SCTE-35 Messages............................................... ............................................... 6 2.2. Types of
Commands in SCTE-104 Messages.................................................... .................................... 6 2.3.
SCTE-104 Multiple Operation Messages .............................................................. ......... 6 2.4. Splicing
Control Commands............................................................... ............................................... 8 2.5. Data
fields of the Splice_request() command.................................................... ................................... 8 2.6.
Transferring data between SCRTE-104 Splice_request and SCTE-35 Splice_insert commands 9 2.7.
Interaction of the components of the DPI system when performing a break ..............................................
10 3. Methods for the formation and processing of messages SCTE-104... .................................................
11 3.1. Broadcasting system based on separate components .............................................................. ...........
11 3.2. Hardware inserters of VANC SCTE-104 packets into SDI signal ..............................................
12 3.3. Video server as signal source with SCTE-104 message .............................................. 13 3.4.
Generation of SCTE messages according to the playlist of the automation
system............................................... 14 3.5. Generation of messages at the operator's
command .......................................................... ....................... 15 3.6. Requirements for the SDI path
for the correct transmission of SCTE-104 messages ........... 15 3.7. Monitoring SCTE-104 Messages
in SDI VANC Packets .............................................................. 16 3.8. Broadcasting system using CIAB
servers .............................................................. .............. 17 4. List of sources .............................. ..............................

1. Architecture of network broadcasting systems with digital program insertion


Fundamentals and technological solutions for the use of labels (messages) SCTE 104/35 were developed by
the American Society of Cable Television Engineers (SCTE). The original purpose of using SCTE-104/35 tags
is to control Digital Program Insertion (DPI) in TV broadcast networks that relay the signal from the central
station through digital broadcast channels of MPEG-2 TS transport streams. The term "Digital advertising
insertion" is also used.

(Digital Ad Insertion).
As technology advances and the feature set expands, the SCTE tag ideology is constantly being improved
and reflected in new standards and recommendations, which are in
freely available at www.scte.org. The SCTE Society does not impose any restrictions or financial obligations
on TV broadcast networks that intend to use the digital advertising insertion management methods developed
here. This factor plays an important role in the constant development of TV
technologies and the emergence of new solutions, products and systems. The SCTE-104/35 specifications
allow you to manage not only the insertion of advertising, but also other ways of modifying content in distributed
TV systems, including banner and targeted advertising. The SCTE-104/35 ideology is also used in the
distribution channels of Video-On-Demand programs via the HTTP protocol, including Adobe Dynamic
Streaming (HDS), Apple Live Streaming (HLS), Microsoft Smooth Streaming (MSS), MPEG-DASH methods.
Machine Translated by Google

1.1. Linear network broadcasting


The linear network broadcasting model is
based on the regional retransmission of
the program signal of the central network-
forming station (Figure 1-1). The
program signal of the central station is
formed in the Programming Center (CFP).
In English literature, the term Broadcast
Operation Center (BOC) is used. The HD/
SD SDI interface is usually used to transfer Fig.1-1. Broadcast system architecture with DPI support
the
program signal to the compression system.
Here, video and audio signals are compressed and multiplexed into an MPEG-2 TS transport stream
of a single program (Single Program Transport Stream - SPTS), which, in turn, can be multiplexed into
a Multi Program Transport Stream (MPTS). For multi-program compression systems with advanced
features, the term Network Operation Center (NOC) is used. SPTS or MPTS streams are transmitted
via DVB or IP interfaces to regional Program Relay Centers (PRCs), where they are modified by
inserting regional content and then
retransmitted to their broadcasting area in the form of modified SPTS or MPTS streams. Figure 1-1
shows the path of SCTE-104/35 messages from the source - DFP to the final destination - the splicer/
server bundle as part of the CRP.

1.2. Slots
The insertion of regional content must take place at the designated time intervals in the broadcast
schedule of the central station. In the SCTE documents, these timeslots are referred to as avails.
When translating into Russian, the terms commercial time interval, regional advertising window,
advertising time slot and other options are used. Further, the word "slot" will be used as an analogue
of the term avail. Switching or splicing is performed at the slot boundaries between the
signals from the main channel (signal of the central station) and from the input channel (signal of the
regional station). The Center-Region switch point is called the Splice In Point, the Region-Center switch
point is called the Splice Out Point.

1.3. Splicer Functions


Signal switching in the CRP is performed by the Splicer. The DPI specification defines seamless
(seamless) splicing that is imperceptible to the viewer in terms of image and sound, accurate to the
frame. In DPI systems,
an insertion time interval (break) is usually considered as one event of replacing a program fragment
in the central station signal with an equal or close in timing ad block from the regional station signal.
The ad unit includes individual commercial clips. The splicer receives the transport stream from the
central station via the main channel and
the transport stream from the ad server via the input channel. At the time of the entry point, the splicer
switches the input channel from the ad server to the output channel. At the time of the splicing output
point, a reverse switch occurs.

1.4. Functions of the ad server The


ad server within the CRP is responsible for playing one or more files that make up the regional break.
The insertion of a regional break from the input channel into the main channel occurs within a single
session, during which the splicer and the ad server synchronize their work via a TCP / IP connection
in the local network of the CRP. Specification
2
Machine Translated by Google

[SCTE 30] describes standardized protocols for the interaction between a splicer and an ad server.

1.5. Conditions for seamless splicing

Frame-accurate seamless splicing between MPEG-2 TS streams from the central and regional stations
requires several conditions to be met. a) The transport stream from
the central station at splicing points in MPEG-2 encoding shall begin with a closed Group Of Picture
(GOP) group with an I-frame at the beginning of the group and end with type I or P frames. When
encoding H.264/AVC or H.265/HEVC at splice points, the closed group must start with an IDR
(Instantaneous Decoder Refresh) type frame and end with type I or P frames. Receiving an IDR frame
by the decoder means that decoding after the splicing point can be done without using previous frames.
In the case of Variable Bit Rate (VBR) encoding, it is recommended to switch to Constant Bit Rate
(CBR) encoding in the slot interval. The condition is provided by the encoder in the compression system
in response to receiving the control message SCTE-104 from the automation system. b) The transport
stream played from files by the ad server must be formed according to the same rules regarding the
formation of the GOP structure. Image and sound
parameters, the speed of the generated stream must be identical with the stream from the central
station. The condition is provided by proper compression of the commercial break files. c) The splicer
must receive a message about splicing points from the automation system in advance, send a command
to the ad server to start the required break, and perform splicing at the input and output points. The
condition is provided
by the transmission of the control message SCTE-104/35 from the automation system to the splicer
address. d) The ad server must start playing the regional break files at a certain time before the start of
the replacement, and end after the regional break, so that the start and end points of the break during
playback coincide with the moment of channel switching in the splicer.

1.6. SCTE-104/35 Messages


The implementation of DPI according to the SCTE-104/35 specifications is based on the transmission
of cueing messages about upcoming slots for inserting regional breaks. The term “cueing message”
when translated into Russian is equivalently interpreted as “message with SCTE-104/35 tag”, or as
“SCTE-104/35 tag”. The term "cueing message" is derived from previous specifications for controlling
analog advertising insertion using audio dual-tone bursts.
DTMF (Dual Tone Multi-Frequency signaling), called "analog cue tone". Therefore, sometimes the term
"digital cue tone" is used instead of "cueing message". SCTE-104/35
messages about an upcoming splicing event are generated by the automation system that is part of the
CFP. In addition to other data, the message contains the start (end) time of the slot and slot identifiers
that allow each slot to be associated with the required regional content. Further, these messages are
sent to the address of the encoder and multiplexer as part
of the compression system, and to the address of the splicer as part of the CRP. The splicer relays the
content of the message to the ad server, controlling its operation. It should be noted that the use of
SCTE-104/35 messages does not guarantee
seamless splicing under all possible conditions, but it provides frame accuracy of signaling about
planned signal source switching events in the DRC.

1.7. SCTE-104/35 Messaging Channels The


message with splicing data is transmitted along the chain "automation system -> compression system
-> splicer", consisting of two segments. The "compression
system -> splicer" segment uses the MPEG-2 TS transmission channel. Here, splice information (Splice
Information Table) is transmitted in SCTE-35 messages as a bit
3
Machine Translated by Google

Splice_info_section sequences. SCTE-35 messages are formed by the SCTE-35 injector as a


separate elementary private PID data stream, which is multiplexed into a common SPTS output
stream along with video/audio PID streams with reference to a single Presentation Time Stamps
(PTS) timeline. The PID of the SCTE-35 stream is declared in the Program Map Table (PMT) as
an integral part of a program within a single program (SPTS) or multiple program (MPTS) MPEG-2
TS transport stream. For the transmission of SCTE-35 messages, the bandwidth of the MPEG-2
TS channel must be several kbps. in addition to the total speed of video/audio and other data
streams. Equipment that changes the composition of programs or the speed of its component video/
audio elementary streams must not change the association of the SCTE-35 stream with the
program, or break its association with PTS timestamps. The segment “automation system –>
compression system” can use
two types of transmission channels. The first option is a channel with feedback via a TCP/IP
connection, the second option is a channel without feedback via the SDI interface. In both cases,
the Splice Information Table data in this segment is formatted as SCTE-104 messages (queries).
The rules for receiving sending SCTE-104 messages, as well as putting data into them, are
standardized by the document [SCTE 104] in the form of an application programming interface
(API). Both types of messages are used to serially transfer
splicing data from the automation system to the splicer, which is why the term "SCTE 104/35
messages" is used.

1.8. SCTE-104 messaging channel with feedback

automation systems.

Fig.1-2. Formation of SCTE-104 messages in the feedback channel This


solution has undoubted advantages, but there are also implementation problems. SCTE-104/35
messages contain binary data. Text data like tags
XML, are not sent in SCTE-104/35 messages. This limitation significantly reduces the amount of
transmitted data and bandwidth requirements of the transmission channel. On the other hand, the
binary representation of data in SCTE-104 messages places special demands on the TCP/IP
network connecting the automation system and the compression system. This should be a strictly
private network, in which the guaranteed message transmission delay time should be significantly
less than the duration of the TV frame. For communication, it is recommended to use a standard
port (socket) number equal to 5167. In most implementations,
the DFP and the compression system are located at a considerable distance from each other and
are controlled by different operators, which introduces technical difficulties in creating a reliable
TCP / IP connection between them through the Virtual Private Network (VPN).
1.9. SCTE-104 Open Loop Messaging Channel The
unidirectional SDI interface is a mandatory communication channel between the DFP and the
compression system, so it is logical to use this channel for messaging

4
Machine Translated by Google

SCTE-104. It is customary to transmit SCTE-104 messages as additional data in the VANC (Vertical
ANCillary) interval of an SDI signal according to the [SMPTE 291M] standard. The details of
mapping SCTE-104 message data into VANC packets are specified in [SMPTE RP2010]. Type 2
ANC packets are used, where the packet payload identifiers (ID) are a pair of Data ID (DID) and
Secondary Data ID (SDID). The values DID=41h and SDID=07h for VANC packets indicate the
transmission of the SCTE-104 message in these packets. A VANC packet
with SCTE-104 message data can, in principle, be placed on any line outside the active part of the
frame. However, it is recommended that VANC data be placed in the Y channel data stream on the
second line after the switch point defined in [SMPTE RP168]. In most cases, line 12 of the first field
is used for all SD/HD SDI decomposition standards. Figure 1-3 shows the SCTE-104 unidirectional
(non-feedback) data link from the automation system to
the injector and encoder in the compression system through an additional device called the
SCTE-104 inserter. The [SCTE 104] document uses the term Proxy Device to designate an inserter,
while the [SMPTE RP2010] document uses the term inserter. The task of the inserter is to
encapsulate the SCTE-104 message into an SDI signal. The inserter is controlled by an automation
system, has SDI inputs/outputs,
and a broadcast program signal is fed to the input. [SCTE 104] defines a standard API for inserter
control from an automation system over a TCP/IP network to a DFP. The SCTE-104 messages
generated by the inserter as part of the SDI signal are transmitted from the automation system to
the next in-stream device to the final
destination - the injector as part of the compression system. In this mode, the automation system
operates without feedback messages from the compression system, on the principle of the best
possible operation. For example, messages may be sent multiple times duplicating notification of
the same splicing operation. On the compression system side, the splicing data from the SCTE-104
message is transferred to the SCTE-35 message via the SCTE-35 injector.

Fig.1-3. Generating SCTE-104 Messages in an Open Loop Channel In this


scheme, an SCTE-104/SDI unidirectional transmission channel operates between the automation
system and the injector. At the same time, an interaction is organized between the automation
system and the inserter, which can also be bidirectional when using a TCP/IP, RS422 connection
or unidirectional when controlling the inserter via GPI contacts. The first option is preferable, which
is implemented quite simply, since the automation system and the inserter are part of the same
DFP. The lack of feedback between the automation system and the injector is compensated by the

relative simplicity of constructing the SCTE-104 message delivery path based on standard hardware
components with SDI interfaces. Equipment that does not change the content of the SDI signal
(switchers, distributors) almost always misses the VANC data. Devices that change the content of
the SDI signal (delay, signal mixing),

5
Machine Translated by Google

must correctly pass VANC data from input to output. When properly routed through the HD/SD SDI paths,
SCTE-104 tags retain their link to the frame they were originally inserted into.

2. Program insertion control using SCTE104/35 messages


2.1. Types of Commands in SCTE-35
Messages An SCTE-35 message can contain one of six possible commands. The two commands -
Splice_schedule() and Splice_insert() are designed to send information about one or more upcoming splicing
events. The presence of brackets in the command designation means that it contains a set of data defined in
the SCTE specifications for each command. Four kinds of auxiliary commands are defined: Splice_null(),
Bandwidth
reservation(), Time_signal(), Private_command(). The Splice_null() command does not transmit any data and
is used to test for response from
receiving devices. The Bandwidth reservation() command is used to request the compression system to
allocate additional bandwidth to be used
for transmitting the PID elementary stream with SCTE-35 messages. The Time_signal() command is used to
pass precise timestamps, based on which command receiving devices can synchronize their actions with
command sending devices. The Private_command()
command can be used to transfer other data not specified in the SCTE-104/35 specifications.

2.2. Types of Commands in SCTE-104


Messages An SCTE-104 message can in principle contain up to 216 different commands, but only a few
dozen of this set are actually used. The specific list of actually used commands differs for the two types of
messages. The first type is a message that can contain only one command (Single Operation Message). The
second type is a message that can contain one or more commands (Multiple Operation Message). In practice,
messages of the second type are mainly used.

2.3. SCTE-104 Multiple Operation Messages Figure 2-1 shows the


fields of SCTE-104 Multiple Operation Messages.

Fig.2-1. Data fields of SCTE-104 and SCTE-35 messages

The message consists of two parts. The first part is a set of fields of the Multiple Operation Message header,
this header contains fields common to all commands. The second part is a set of fields
6
Machine Translated by Google

the command sent in the message. Here, for example, the fields of two commands are given -
Schedule_definition_request and Splice_request.
The Multiple Operation Message header contains the following fields:
Reserved, always set to FFFFh.
Message Size contains the size of the entire message in bytes.
Protocol Version is set to 0 for current implementations. Future implementations with different payload
message wrapping will use different values.
AS_index identifies to the injector the automation system that is the source of the SCTE-104 message. At
the same time, the main and backup automation systems operating on one program channel (one injector)
must have a common index, but only one of them must be in communication (be active) at any time. Zero
value is ignored.

Message_number identifies each individual SCTE-104 message. At the same time, if several repeated
messages have the same content, they must have the same number. For successive distinct messages, the
value of Message_number, incremented modulo 256, is used .

DPI_PID_index carries information about the PID of the MPEG-2 TS packets in which the automation system
plans to transmit the SCTE-35 elementary stream of messages. This index is used if several SCTE-35
message streams are transmitted as part of one program, each of which is formed by its own dedicated
injector. Another use case is addressing messages from the automation system to one of several injectors
using a common SDI line to communicate with the automation system via a single inserter. Zero value is
ignored.

The SCTE-35 Protocol Version is intended for use in future implementations when the current zero version
is further developed.
Timestamp() contains the value of the time when the injector should process incoming commands in this
message. This is the mode of delayed (deferred) processing of commands in the injector. In this mode, the
time in the automation system and in the injector must be common to within a few milliseconds. If the
SCTE-104 message contains multiple commands, then they must be processed by the injector at the
specified time, starting with the first command and continuing in the order of the commands in the message
body. The Timestamp() field has a different duration depending on the data transfer option. There are three
options for formatting the time in this field: UTC time with an accuracy of microseconds (counted from 0 hours
on January 6, 1980), VITC timecode HH:MM:SS:FF, number and rising edge of the GPI trigger that initiated
the transmission of the message . In immediate mode, the Timestamp() field is set to 0, the command is
processed by the injector without delay, and no time synchronization between the automation system and
the injector is required. This option is recommended to be used when generating SCTE-104 messages as
part of the SDI signal, then the SCTE-104 data is placed by the inserter in the VANC packets of the nearest
frame. The size of the Timestamp() field in this case is 1 byte.

Num_ops determines the number of commands that are transmitted in this SCTE-104 message in the form
of blocks. Each data block includes the fields Op_ID, Data_length, Data() of the command transmitted in
this block. To send a single command, use the Num_ops=1 value. It is important to note that each of the
commands in a single SCTE-104 message is converted by the injector into a separate SCTE-35 message,
always containing only one command.
Op_ID identifies the command that is sent in the data block. The association of an identifier and a command
is defined in [SCTE 104]. In this example, the value Op_ID=0101 indicates the data transmission of the
splice_request_data() command, Op_ID=010E indicates the data transmission of the schedule_definition_data()
command.
Data_length indicates the total number of bytes in the command.
Data() contains the data (parameters) of the command previously defined in the Op_ID field.

7
Machine Translated by Google

2.4. Splicing Control Commands Among


the many possible commands in SCTE-104/35 messages, two pairs of interconnected commands
SCTE-104 and SCTE-35 stand out, passing through the entire chain “automation system –>
compression system -> splicer”. Both pairs of commands are broadcast in the broadcast mode for
all DRPs within the DFP program signal distribution network. The [SCTE 35] specification describes
the encryption options for SCTE-35 messages that can be decoded at the receiving end if the key
is present. However, according to [SCTE 67], encryption of these messages is not used in practice.
The SCTE-104 Schedule_definition_request() command is translated by the injector into
the SCTE-35 Splice_schedule() command, both carrying notification information about the schedule
of the upcoming splicing event. The SCTE-104 Schedule_definition_request() command usually
follows the start_schedule_download request() command, which prepares the injector to receive a
relatively large (up to 4096 bytes) chunk of data contained in subsequent Schedule_definition_request()
messages. The SCTE-104 Splice_request() command is converted by the injector to the SCTE-35
Splice_insert() command. Serial
transmission of these commands provides control of the splicer from the automation system when
switching between the main channel and the input channel. The practice of DPI systems given in
[SCTE 67] indicates the predominant use of the command pair Splice_request()
and Splice_insert() to control splicing. For this reason, the composition of the data fields of these
commands is analyzed in more detail below. Fields highlighted in the same color in the
Schedule_definition_request() and Splice_request() data tables have identical content. Specific to
the Schedule_definition_request() command are the Spice_schedule_command and Time() fields.
The first field determines the type of splicing point - entry or exit, the value of
Spice_schedule_command=5 means the cancellation of previously transmitted data. The Time()
field contains the UTC time at which the splicing event is scheduled.

2.5. Data fields of the Splice_request() command


Splice_insert_type defines the type of splicing request. The SpliceStart_normal
(Splice_insert_type=1) and SpliceEnd_normal (Splice_insert_type=3) queries define commands to
"normally" start and end an ad break when the corresponding splicing event should occur after the
pre-roll_time interval . The value of pre-roll_time is passed in the corresponding field of the same
command. The requests SpliceStart_immediate (Splice_insert_type=2) and SpliceEnd_immediate
(Splice_insert_type=4) define commands for "immediate" start and end of an ad break. In this
mode, the value of the pre roll_time field is ignored or passed equal to 0. Requests for "immediate"
action are not recommended for use, since they can violate the conditions for seamless splicing.
The value of Splice_insert_type=5 means a request to cancel the previous SpliceStart_normal
request.

splice_event_id contains the unique identifier of the splicing event. It is allowed to use the same
identifier for the break in point and break out point. A 32-bit field allows this identifier to be used to
convey additional information about the commercial break.

The unique_program_id is used to identify the central station program by the regional broadcaster
during which the splicing event is to occur. Zero value is ignored.

Pre-roll_time specifies, in milliseconds, the time interval from issuing the splice_request message
to executing the splicing event. The minimum recommended value for "normal" splicing commands
is 4 seconds. It is possible to use other pre roll_time values, including different values for the
SpliceStart_normal and SpliceEnd_normal events related to the same commercial break. For
"immediate" splicing commands, pre-roll_time is either 0 or ignored. If for one splicing event with
a single
Splice_event_id several messages are generated sequentially, then each of the following
messages after the first must contain its own reduced value of pre-roll_time. If
8
Machine Translated by Google

between several commands for one transition there is a discrepancy between the values of pre-
roll_time, then the value of pre-roll_time from the last received message is taken into account.
Break_duration specifies, in tenths of a second, the duration of an advertising break initiated by
this command. The usual practice is to send a couple of messages: the first one for the start and
the second one for the end of the commercial break, with Break_duration and Auto_return_flag set
to zero . The transmission of a true Break_duration value along with a non-zero Auto_return_flag
value in the message indicates an automatic return to the central station program after the
commercial break time has elapsed without sending a SpliceEnd_normal command. It is
recommended to send a true Break_duration value in the message and a zero Auto_return_flag
for emergency return to the central station program in case of non-receipt or error in receiving the
SpliceEnd_normal message.

Avail_num identifies the ad slot within the program with id


unique_program_id. Each subsequent slot must have an incremented Avail_num. Zero value is
ignored.
Avails_expected indicates the total number of slots inside the program with id
unique_program_id. Usually Avail_num is less than or equal to Avails_expected. For programs
whose timing is not exactly known in advance (live broadcasts of sporting events), the value of
Avail_num may exceed Avails_expected in the “enumeration” interval of the planned timing of the
program.
Auto_return_flag conveys information about the planned exit mode from the commercial break. A
non-zero value together with the Break_duration field indicates an automatic return to the central
station program after the commercial break time has elapsed without sending the SpliceEnd_normal
command. A value of zero indicates waiting for a command with a message
SpliceEnd_normal.
2.6. Data Transfer between SCTE-104 Splice_request and SCTE-35 Splice_insert
Commands Figure 2-1 shows the data portion of the SCTE-35 Splice_insert message that is
generated based on the information received by the injector as part of the SCTE-104
Splice_request message. The fields Splice_event_id, Unique_program_id, Avail_num,
Avails_expected are transferred from byte (SCTE-104) to bit (SCTE-35)
representation without changes. The Pre-roll_time data goes into two fields, Time_specified_flag
and Pre-roll_time, with the time measure changing from a millisecond count to a PTS timestamp
count. A Time_specified_flag bit field of 1 indicates a subsequent Pre-roll data transmission, a
zero flag indicates no Pre-roll data transmission. At the same time, the value of Pre-roll_time in the
SCTE-35 message will almost always differ from the same value in the SCTE-104 message to a
greater extent due to the encoding delay. The Break_duration and
Auto_return_flag data goes into the Auto_return and Duration fields, with the time unit changing
from tenths of a second to PTS timestamps. A single value of the flags indicates the transmission
of the break duration and the scheduling of its termination in the CRP after the Duration time has
elapsed without an additional command from the automation system. The zero value of the flags
means waiting for a command to end the break from the automation system. In this case, the
Duration value can be used to duplicate the return to the central station signal if, for some reason,
the command to end the break is not received before the Duration expires. A single value of the
Duration_flag bit field indicates the presence of the Duration field in the SCTE-35 message. The
Out_of_network_indicator (OON) bit flag reports the splice point
type based on the Splice_insert_type data from the SCTE-104 message. A value of one points to
a Splice In point, a zero value points to a Splice Out point. The Splice_immediate_flag bit flag set
to zero indicates normal splicing scheduling using
pre-roll time. If this flag is equal to one, then immediate (Immediate Mode) splicing is required, while
the Time_specified_flag and Pre-roll_time fields are not transmitted in the SCTE-35 message.

9
Machine Translated by Google

The splice_event_cancel_indicator bit flag, when set to one, cancels a previously scheduled splice
event with the same Splice_event_id . The Program_splice_flag bit flag is transmitted
equal to 1 if all PID components of the transport stream are to be switched at the splicing ingress point.
This is Program Splice Mode. A zero value of the flag indicates that only a part of the PID components of
the transport stream is switched in the Component Splice Mode. In this case, the SCTE-104/35 messages
contain, in addition to the fields shown in Fig. 2-1, the number of switched components Component Count,
followed by the PID of the switched component (Component tag) and the pre-roll time for switching each

component.

Different formatting of the same splicing data in SCTE-104 and SCTE 35 messages does not prevent
their forward and backward conversion without loss of information. However, the representation of splicing
data is more often used in the format of the Splice_request fields, as it is more convenient for “human”
perception.
2.7. Interaction of DPI System Components During a Break Figure 2-2 shows
the interaction of DPI system components using the example of starting and ending a break in normal
mode. It is assumed that the automation
system and the inserter interact via a bidirectional TCP/IP connection in the DFS local network, the splicer
and the ad server also interact via a TCP/IP connection, but already within the DRP local network. In
response to the initiating message, the addressee responds with an acknowledgment message. The
interactions between the inserter and the injector, as well as between the injector and the splicer, are
unidirectional. In the first case, messages are transported via the SDI interface, in the second case, via
the MPEG-2 TS interface.

Fig.2-2. Diagram of the interaction of the components of the DPI system during a normal start and
completion of a regional break
A regional break insertion session begins with the automation system sending a Splice_request message
with the SpliceStart Normal parameter. The inserter inserts the Splice_request data into the packet
VANC of the nearest frame. If the Timestamp() field contains a non-zero UTC value, then the injector
should send a Splice_insert message at that time, in which the Out_of_network_indicator (OON) value is
1. If the Timestamp() field is 0, then the injector sends the Splice_insert message immediately. The
diagram in Figure 2-2 assumes that the TCP/IP
message latency is significantly less than the one frame duration that is critical for DPI systems. Delays
in SDI and MPEG-2 TS interfaces can exceed this time, and significantly. The SCTE-104/35 specifications
are designed in such a way as to neutralize the effect of delays in the MPEG-2 TS SDI interfaces on the
frame accuracy of the break insertion. SCTE-104/35 messages suffer the same delays as their carrier
signal, either SDI or MPEG-2 TS. The delay time does not matter, the insertion of a regional break will
occur correctly even if the signal is delayed by several

10
Machine Translated by Google

hours. In the MPEG-2 TS stream transmission path between the compression center and the DRC,
delays can be not only of the order of several seconds, but also have jitter. To minimize the influence
of delay and jitter on insertion accuracy, the pre-roll time in the message is counted in the PTS time
format. PTS breaks will only affect insert accuracy if they occur within a relatively short pre-roll time
interval. The exchange of messages between the splicer and the ad
server (marked with *) is standardized in [SCTE 30]. Immediately after receiving Splice_insert
(OON=1), the splicer sends a Cue_request to the ad server to play the ad unit. All splicing data from
Splice_insert (OON=1) goes into this message, so the server receives all the necessary information,
including the pre-roll time. The ad server can identify the required file or playlist, for example, by the
Splice_Event_ID value. Not more than 3 seconds before the start of the break, the server notifies the
splicer of its readiness with the message

splice_request. After a pre-roll time interval, the server sends an MPEG-2 TS stream to the input
channel of the splicer, the splicer switches streams and notifies the server by sending a
Splice_complete
message. The exit from the break in the normal mode occurs according to the same interaction
scheme. The difference is that the Splice_request message from the automation system is sent with the pa
SpliceEnd Normal, in the Splice_insert field OON=0, the splicer sends only one Splice_complete
message to the server about the end of the break. The server finishes playing the regional break at
its scheduled timing. When starting or ending a break in Immediate
mode, the pre-roll time is not taken into account, splicing is performed at the nearest possible stream
switching point. To start a break in this mode, the server must provide the minimum possible
preparation time.
3. Methods for generating and processing SCTE-104 messages
3.1. Broadcasting system based on individual components
The main link in the formation and processing of SCTE-104 messages is the Program Generation
Center (CFP). Figure 3-1 shows a variant of building a broadcasting system from separate hardware
and firmware components. Here, the hardware components are a hardware-studio unit, an SDI signal
path, SCTE-104 inserters, and an SDI reserve switch. Software and hardware components - video
server and automation system. The presence in the scheme of the hardware-studio unit reflects the
functionality of broadcasting your own live programs using the on-air mixer included in its composition.

Fig.3-1. SCTE-104 Labeling Broadcast System Components

The automation system generates the output program in accordance with the on-air playlist loaded
into it. The output program signal is generated at two equivalent outputs of the SDI signal path. The
path includes switching equipment, blocks for entering captions, graphics, logos, and other equipment.
The presence of two outputs of the path is not mandatory, but it allows organizing the reservation of
extended lines for signal delivery to the network broadcasting center. Here, on the receiving side, a
reserve switch is used.

11
Machine Translated by Google

for automatic or manual link selection based on the usual SDI signal quality criteria, which is one of the
benefits of using SCTE-104 messages to control program insertion. Broadcast system components should
use standardized
interfaces and control protocols. When using private (proprietary) protocols, the interaction of components
passes through the software modules Middleware (Intermediate software - PPO). These provisions also
apply to the generation of SCTE-104 messages. The sources of SDI signals with SCTE-104 messages in
the form of VANC packets in the above diagram can be a video server and trunk receivers. Inserters
insert SCTE-104 message packets into the passing SDI signal, receiving data to be inserted from an
automation system or from manual control panels. The SCTE specifications recommend generating
multiple, at least three SCTE-104/35 messages for each splicing event, with pre-roll times on the order of
4.8 and 12 seconds.

3.2. VANC SCTE-104 Hardware Inserters for 3G/HD/SD SDI Signals


VANC SCTE-104 Hardware Inserters for 3G/HD/SD SDI Signals are currently implemented as modules
compatible with a common chassis and control system. In terms of the specifics of working with SCTE-104
messages, inserters can be divided into two groups. The first group includes general-purpose VANC data
inserters.
Among these data is the frame format identifier (Active Format Description - AFD), Dolby audio metadata,
VITC time code, Closed Captions, as well as arbitrary data specified by the VANC DID / SDID package
identifiers. Such inserters form SCTE-104 packages on a general basis, without taking into account the
specifics of their application. Examples of such inserters are given in the first part of Table 1.

Tab. 1. Some models of VANC SCTE-104 hardware inserters into SDI signal
General Purpose VANC Inserters
Interfaces PO
Model Designation Manufacturer's site
data management
HD/SD-SDI Quad Data
7721DE4-HD 6xGPI VistaLINK www.evertz.com
Embedder

VAC-100 VANC Data Authoring Inserter 8ÿGPI DashBoard www.rossvideo.com

3G/HD/SD-SDI Ancillary Data 4xRS485


9950-EMDE-ANC DashBoard www.cobaltdigital.com
Incumbent/De-Incumbent UDP/TCP IP
3G/HD/SD DPI Inserter/ 6ÿGPI
XVP-3901-DPI iControl www.grasswalley.com
Extractor with Frame Sync RS422
VANC Inserters Supporting API SCTE-104
4ÿGPI
A1450 SCTE-104 Inserter Card RS232 DashBoard www.eegent.com
TCP/IP
8ÿGPI
TES-8643 3G/HD/SD VANC Processor RS232/422 DashBoard www.rossvideo.com
TCP/IP
4xRS233/422 Magellan www.imaginecommun
Dual-Channel Metadata and
DMDP6802+ 16ÿGPI CCS ications.com
Data Processing Module
TCP/IP Navigator
The insertion of data packets can be initiated by the GPI input signal, while the content of the VANC
(payload) packet is determined by presets that are pre-set by the user when configuring the device. Each
preset defines the unique content of a VANC packet sent when its associated GPI input fires. For
SCTE-104 messages, the user must complete the VANC packet fields according to [RP 2010], specify the
line number, Y or C signal to insert the packet.

12
Machine Translated by Google

Presets are configured through control software, which can be specialized for products of a particular company
(Vistalink, iControl), or universal (Dashboard for modules compatible with the OpenGear platform). The automation
system controls the inserter via GPI pins. For example, 5 GPI inputs allow you to issue all kinds of SCTE-104
splice_request messages, including Normal/Immediate Start/End and Cancel. Generation of multiple SCTE-104
Splice request messages pointing to the same slot (with a common Splice_event_ID value) in response to
repeated requests on the same GPI input is not possible, since pre-roll_time must have a variable value in each
subsequent message. If the inserter supports the RS or TCP/IP/Ethernet data receive interface, then the
automation system can initiate the insertion of a SCTE-104 VANC packet with content broadcast over this interface
in the [RP 2010]
specification format. It is possible here to send repeated SCTE-104 Splice request messages for one slot, since
the automation system can generate the correct pre-roll_time values for each subsequent message. The second
group includes inserters that support the generation of SCTE-104 messages based on the API protocol [SCTE
104]. Examples of such devices are given in the second part of Table 1. For inserters of this group, three modes
of operation are possible. The first mode is the insertion of packets on triggering the GPI input signal. The content
of the VANC
packet is determined by the preset for each GPI input, but the data fields of the SCTE-104 message are written to
the presets, and not the byte structure of the packet [RP 2010], as in the inserters of the first group. A configuration
example is shown in Figure 3-2, where the control software user interface sets
the 8 data fields of the Splice request message for each of the GPI inputs. The difference between the A1450
module is that there is an additional setting for the number and repetition interval of SCTE-104 messages, so the
automation system can initiate the transmission of a series of Splice requests that are correct in terms of the pre-
roll_time value by one GPI signal. The second mode is the insertion of packets in response to a Multiple Operation
Message from

Fig.3-2. Fragment of the GPI input configuration


automation systems in accordance with
window for generating the SCTE-104 message.
API SCTE-104 protocol over TCP/IP port (Dashboard
software environment,
with
5167, or by
RS232/422 serial port module. Adopted by Rossvideo TES-8643) from the automation
system divides the message into multiple packets if the
bytes. The TES-8643 module can work either as a server message size exceeds 254
that waits for SCTE messages to arrive, or as a client that initiates interaction with the automation system. The
third mode is the sharing of data transfer interfaces and GPI inputs of the inserter when controlled from the
automation system. The contents of the packet are transmitted through
the data port, and the packet is inserted into the next frame at the GPI signal. This provides more accurate insertion
timing, independent of the SCTE-104 data transfer time through serial interfaces.

3.3. Video server as signal source with SCTE-104 message The video
server can generate an SDI signal with SCTE-104 message, the data of which is stored in the playback file.
Suitable file containers for this purpose include the .TS and .MXF file types, among others. The .TS file saves the
transport stream "as is", including the PID data streams of the SCTE-35 digital inserter. [SMPTE 436M] .MXF file
uses individual ANC Essence tracks to store VANC data by their DID/SDID parameters, for SCTE-104 packages
apply

13
Machine Translated by Google

standardized values DID=41h and SDID=07h. VANC data is saved for all types of video
compression. Frame wrapped video is used, the VANC data track is associated through index
access tables with exactly those frames and with the line in it where VANC packets should be
present. The video server must be capable of
transferring SCTE-104/35 message data from files to SDI signal VANC packets. Message data
files can be imported into the server and, for certain video server models, created when writing to
SDI input signal files with this data. Such models include, for example, video servers of the SL Neo
family (www.skylarkrussia.tv). Recording and playback of message data files The SCTE-104/35 is
used when broadcasting is delayed, or when replaying recorded material that already contains
fragments with slots for inserting programs at regional relay centers.

3.4. Generation of SCTE messages according to the playlist of the


automation system The automation system controls the sequence of issuing program materials
through the switch of the SDI path from external lines and from the video server according to the
loaded playlist, which comes from the traffic service. When broadcasting a signal from external
lines, the playlist may contain instructions for generating SCTE-104 messages with reference to
absolute time. When playing from a video server, it is customary to associate the generation of
SCTE-104 messages with on-air playlist events that point to file materials (clips) from the server's
media base. Such materials are usually the initial and final spacing of the regional advertising
window (slot). The start beat is associated with the slot start message, the end beat is associated
with the slot end message. Sometimes there may be no spacing, in which case the messages are
associated with adjacent fragments of the main series transmissions relative to the slot. In any
case, messages are generated in relative time, this time is counted from the end of the fragment
preceding the slot for the start of the regional break and from the beginning of the next fragment for
the end of the regional break. The data fields of generated messages can be unambiguously

associated with each clip (equivalent to playing messages from recorded files), or have a variable
composition for the same clip depending on its position in the playlist. In such a case, the data for
generating messages comes from certain columns of the playlist, and can be variable for each on-
air event, even if it refers to the same clip. The diagram in Fig.3-1 provides for the use of external
hardware inserters, therefore, in this version, the automation system transmits data to them via
the API SCTE-104 protocol. As an example, Figure 3-3 shows the configuration settings for
generating the SCTE-104 message in Skylark's SL Neo broadcast automation software module.
Here, the playlist line indicates the playback of the initial beat of the slot with the name

Title:Head1 with a running time of 15 seconds with a start at the Start Time, which may differ from
the pre-scheduled one. But regardless of the actual start time, the message will be generated with
reference to the end of the beat, since the checkbox is set
Trigger at end when primary match. It is possible to set the condition for generating a message
with time reference to the keyframes (Keypoint) of the clip
in the media base. Message generation conditions (Action condition) – the clip type must have the
conditionally selected value Type:AD_Start, regardless of the clip name. The required data fields
(parameters) of the message are set in the Action parameters window. There are parameters with
directly specified numerical values, for example, the pre-roll_time value sets the label generation 4
seconds before the end of the Head1 clip playback. Some parameters refer to the given playlist
columns and will get the following values - Splice_event_id:12345, Avail_num:2, Avails_expected:5.

14
Machine Translated by Google

Fig.3-3. Setting SCTE-104 message parameters via playlist

3.5. Operator Command Message Generation


SCTE-104 message generation can be initiated by the operator in live broadcasts, and in other
cases where the schedule of slots for regional breaks is not known in advance. Figure 3-1
shows the possible connection points for manual control panels for this purpose. The PU1 panel is
connected to the air control workstation, for example, via the USB interface. In this variant, the
manual formation of labels through the automation system allows logging the operator's actions.
Panel PU2 is connected directly to the inserters at the output of the signal path. Geographically,
this panel should be placed in the hardware-studio block for entering messages into live broadcasts.
On some on-air mixers, special buttons can be programmed to generate GPI signals fed to the
inserters. Manual generation of SCTE-104 messages is also possible in the broadcasting network
center using an additional
inserter and PU3 panel in case of technical failures or emergency announcements. The operator
can initiate the insertion of Normal or Immediate Mode slot start messages. To correctly perform an
immediate start, it is
recommended to install an inserter at the output of the SDI path with a fixed signal delay for the
time Td (several seconds) relative to the image control point by the operator. Then the message
can be sent in the normal slot start mode with a pre-roll time equal to Td. DNF Control
(www.dnfcontrols.com) produces a specialized control unit GTP-32, in which pressing buttons by
the operator initiates interaction with the inserter via the API SCTE-104 protocol. Here, in
response to button presses, SCTE-104 messages are generated with parameters pre-set via the
WEB interface. Additionally, a GPI signal can be used to synchronously insert a message into
multiple inserters at the same time.

3.6. SDI Path Requirements for Correct Passage of SCTE-104 Messages In the
scheme of Fig.3-1, SDI signals with SCTE-104 VANC message packets from the video server and
on-air mixer pass through the signal path, which imposes a number of specific requirements. All
path components must pass VANC packets as part of the signal. Signal clocks can drop or duplicate
frames in video from non-synchronous sources, which can result in the loss or repetition of VANC
packets in adjacent frames. Ideally, the synchronizer should change the pre-roll time in the data
field per frame time interval as the packet moves between adjacent frames. It is recommended to
strike out one of the SCTE-104 bursts repeated in adjacent frames. To avoid such problems,
repetition of messages with an interval of several seconds referring to a common splicing event is
used, and hardware inserters are usually installed at the output of the signal path.

15
Machine Translated by Google

In practice, there is a cascade connection of devices that form SCTE 104 VANC packets. SDI signals.
Processing may consist of deleting input packets, combining several messages into one Multiple Operation
Message packet, moving the packet to a free frame with a corresponding change in pre-roll time.
Processing operations require data filtering in the fields of incoming messages, in particular in the
Splice_event_ID field. The [SCTE 67] specification allocates the most significant 4 bits of this field to
convey information about the source of the Event Source message as a source number in the
range of 0 to 15. Event Source=0 is reserved for labels recorded in the source material. Event Source=4
refers to messages generated by the automation system. Values 6 and 12 refer to manual generation
commands and commands of the regional automation system, respectively. The remaining 28 bits are
used to number the splicing event from the same source. It is also possible to use the DPI_PID_Index
field to identify the source of the SCTE-104 message in the Program Generation Center and in the
Broadcast Network Center. Note that this data field is not carried in the SCTE-35 message and therefore
cannot be used in the regional center.

broadcasting.

3.7. Monitor SCTE-104 Messages in SDI VANC Packets Modern


waveform monitors allow you to monitor the content of VANC packets in an SDI signal. Figure 3-4 (within
the black box) shows the VANC packet of a real SCTE-104 message with the splice_request() command
on the Tektronix WFM7120 waveform monitor screen in ANC data analysis mode.

Figure 3-4 View of VANC packet with SCTE-104 data on WFM7120 waveform monitor screen

The upper part of the screen displays the DID and SDID values, the line number and fields in which the
packet is transmitted, the total number of Data Counter (DC) data words. The lower 8 bits of the 10-bit SDI
words are used to transmit the byte data of the SCTE-104 message, with 9 bits of the SDI word being the
parity bit of the data byte, and 10 bits being the inverse of bit 9. The Payload Descriptor
word is formed by the inserter depending on the option of packing one SCTE-104 message into one or
more VANC packets. The value 08 of this word (bits 1 and 2 are 0) indicates that the message is
transmitted in its entirety in one packet, with a maximum capacity of 254 bytes. The different values of bits
1 and 2 in the Payload Descriptor word indicate the first, intermediate, and last VANC packets in which
SCTE-104 Long message data can be transmitted in sequence. There can be up to 10 such packets, and
then the transmission of the entire message will require the same number of frames, since only one VANC
packet with SCTE-104 data can be transmitted in one frame. The least significant bit of the Payload
Descriptor word is set to 1 if a previously transmitted message is duplicated in this packet. Duplicate
transmission of the same message can be initiated as

16
Machine Translated by Google

by the automation system and by the inserter itself to increase the reliability of message delivery to the SCTE-35 injector.
Figure 3-4 shows the explanatory blue
callouts for the data in the Multiple Operation Message table. In the parsed message, the AS_index and DPI_PID_index
fields are equal to 0, which indicates for the injector receiving the message to ignore these fields. A null Timestamp
field indicates that the injector will immediately broadcast the data into an SCTE-35 message. One operation is set
(Num_ops=1), operation type is Splice_request (Op_ID=0101h). The value Data_length=000Eh (14 in decimal)
indicates that the data of the Splice_request command will be transmitted in the next 14 bytes. Red callouts mark a
common set of 8 data fields that are carried by the injector from an SCTE-104 message to an SCTE-35 message.

Splice_insert_type=1 means the command to start the break normally with the identifier
Splice_event_ID=54321. This break is intended to be placed inside the program with ID Unique_program_id=0002 in
slot number Avail_num=3 from Avails_expected= 4 slots planned for this program. Pre-roll_time preparation time is
4 seconds, the planned Break_duration is 51.4 seconds. The Auto_return=0
value specifies what to expect from the Splice_request message automation system at the normal (SpliceEnd_normal)
end of the break.

3.8. Broadcasting system using CIAB servers Computing


power
Modern computers allow the deployment of a large
number of resource-intensive real-time signal
processing software applications on a single
hardware platform. In the application to television
broadcasting, such solutions are called Channel-
In-A-Box (CIAB). A broadcast system with DPI
support for one or more channels can fully operate
on a single server. Figure 3-5
shows a layout of a broadcasting system with
Figure 3-5 Broadcasting system based on CIAB servers
redundant CIAB servers working in conjunction with a common media base. Servers have SDI inputs/outputs, and if the
video cards used support VANC data transmission as part of SDI signals, SCTE-104 message inserters can be
implemented in video additional software modules running under the control of an automation system on a single
platform. In this case, all operations of generation and processing of SCTE-104 message data do not go beyond the
internal mechanism of information exchange between the software components of the video server. For integration with
external systems, the server may have middleware (Middleware). Application software
components can be installed in an external automation system, or as part of the video server software components on
its platform. Currently, all leading companies in the world produce CIAB server models with support for the SCTE-104
message generation and processing functionality. In Russia, these companies include Skylark (www.skylarkrussia.tv),
Bramtech (www.bramtech.ru), Softlab (www.softlab.tv).

4. List of sources

[SCTE 30] “Digital Program Insertion Splicing API”, Society of Cable Telecommunications Engineers
(SCTE), 2009.
[SCTE 35] “Digital Program Insertion Cueing Message for Cable”, Society of Cable Telecommunications Engineers
(SCTE), 2013.

17
Machine Translated by Google

[SCTE 67] “Recommended Practice for SCTE 35 Digital Program Insertion Cueing Message for Cable”,
Society of Cable Telecommunications Engineers (SCTE), 2014.
[SCTE 104] “Automation System to Compression System Communications Applications Program
Interface (API)”, Society of Cable Telecommunications Engineers (SCTE), 2013.
[SMPTE RP168] “Definition of Vertical Interval Switching Point for Synchronous Video Switching”,
Society of Motion Picture and Television Engineers, 2009.
[SMPTE 291] “Ancillary Data Packet and Space Formatting”, Society of Motion Picture and Television
Engineers, 2010.
[SMPTE 436M] “MXF Mappings for VBI Lines and Ancillary Data Packets”, 2007.
[SMPTE RP 2010] “Vertical Ancillary Data Mapping of ANSI/SCTE 104 Messages”, Society of Motion
Picture and Television Engineers, 2007.

18

You might also like