DPI Trigger Insertion: SCTE-104 and SCTE-35

Last Updated December 14, 2016

What are the key differences and relationship between SCTE-104 and SCTE-35?

SCTE-104 messages can exist either in VANC space of baseband (SDI) video, or sent between systems through TCP/IP, and are typically used as a precursor to eventual creation of SCTE-35 messages.

SCTE-35 messages exist inside an MPEG Transport Stream, and contain PCR timing data and possibly component PID data specific to that transport stream. 

One way to think of this is that SCTE-104 messages are requests from an operator or automation system to create splice markers in a video stream, while SCTE-35 messages are the fulfillment of these requests, including all of the data that a downstream system will need to take appropriate action during live reception of the compressed stream.

The downstream system reading the SCTE-35 messages may be a server-side ad splicer, a set-top box, a video switcher, or any other equipment that can smoothly splice video from multiple sources into a single stream in the compressed domain. Based on the unique identifiers and flags in the SCTE-35 messages, the final operation may be insertion of an advertisement or other piece of interstitial video, overwriting of upstream video content with a locally generated slate, or segmentation of an in-progress recording into programs and chapters.

Which EEG products can insert SCTE-104 messages in VANC? Where do the messages come from?

EEG caption encoder models including HD490, HD491, HD492, HD1490, and HD1450 are capable of inserting SCTE-104 messages into SDI VANC, with purchase of an add-on license.

The encoders have configurable built-in presets for a set of simple SCTE-104  "Splice Request" messages, which can be triggered with a GPI connection or from the encoder web configuration page. A selectable repeat interval allows continuous insertion of blackout triggers and similar repetitive content markers.

The EEG SCTE-104 encoders can also inject any SCTE-104 message received over TCP/IP port 5167 into the VANC space, either immediately upon receipt, or with use of an additional GPI firing trigger to support more deterministic frame synchronous injection. The TCP/IP communication method can be used for arbitrarily complex SCTE-104 messages including time signal messages with avail and segmentation descriptors. 

The API for connecting to the EEG SCTE-104 encoders is described fully in the SCTE-104 standard. Use of the SCTE-104 automation-system-to-injector messages such as "Init Request" and "Alive Request" is encouraged, but can be omitted for many applications. The simplest application would involve automation or triggering software that simply opens a TCP connection to port 5167 on the encoder, sends a single packed SCTE-104 message, and then closes the connection when desired. The SCTE-104 message will appear in the VANC output of the encoder so long as it is a well-formatted multi-operation message structure according to the SCTE-104 standard.

EEG's SCTE-104 messaging has been shown to be compatible with commercially available systems from vendors including Imagine Communications, Snell Advanced Media, Motorola, Florical Systems, and DNF Controls, as well as a variety of proprietary customer systems.

Please contact us with other application development questions - we may be able to help prospective customers with sample SCTE-104 generation code in a variety of programming languages, or consulting on customized shims connecting existing production databases/processes to generation of SCTE-104 messages to support new applications.

Which EEG products can inject SCTE-35 messages into an MPEG Transport Stream?

Along with live closed caption encoding capabality, the iCap Alta system contains a full SCTE-35 injection system for placing triggers into the incoming transport stream (IP unicast or multicast). 

The triggers can be requested by any system using the SCTE-104 API over TCP/IP, through a configurable port on the iCap Alta instance.

Alta supports the full SCTE-104 "Simple Profile" - this profile includes Splice Requests, Splice Null Requests, and Time Signal Requests, with any number of DTMF Descriptors, Avail Descriptors, Segmentation Descriptors, and other proprietary/opaque descriptors. Alta does not currently support "component-mode" splices, encrypted triggers, or the schedule mode messages, but may in the future.

Please refer to the notes in the previous question about SCTE-104 insertion for more information about compatibility between EEG and other vendor devices, and the SCTE-104 TCP/IP API in general.

What PIDs does Alta insert SCTE-35 data on?

Alta selects a single unused PID based on the pre-existing PMT of the incoming transport stream, and modifies the outgoing PMTs to mark the inclusion of SCTE-35 data. The "cue stream type" descriptor is set to allow all SCTE-35 commands within this single PID.

Since only a single PID is assigned for SCTE-35, the "DPI PID index" field in SCTE-104 messages does not currently affect the placement of Alta's SCTE-35 message output.

Which EEG products can monitor or receive existing SCTE-104 data in VANC?

The DE285, DE291, and DE1285,  SDI decoders show on-screen overlays of recent SCTE-104 splice requests, as well as providing a full XML-based log of all SCTE-104 triggers from the incoming video, with data visualization for each decoded field in the message. The EEG 1450 OpenGear card is also capable of triggering GPI outputs based on recognition of input triggers.