Digital broadcasting is a constantly advancing field, and a crucial component is SCTE 104. This standard, though not widely known outside the broadcasting industry, is essential for efficiently delivering television content. SCTE 104 plays a significant role in ensuring that various elements, such as live sports, news broadcasts, and regular TV shows, are transmitted to viewers accurately and on time.

SCTE 104 primarily handles digital program insertion (DPI), including managing advertising slots and coordinating emergency broadcast signals. Its importance in improving the viewer experience and operational effectiveness of broadcasts is significant. This standard is relevant for broadcasting industry professionals, and anyone interested in the technology that powers television and live streams.

Understanding SCTE 104 provides insight into the complex processes involved in broadcasting. This article aims to explore SCTE 104 and explain its role in providing a consistent and high-quality viewing experience.

What is SCTE 104?

SCTE 104, or the Society of Cable Telecommunications Engineers Standard 104, is a cornerstone in digital broadcasting. Originating in the early 2000s (published initially the 24th of December 2004), this standard primarily describes the API between an Automation System and the associated Compression System that will insert SCTE 35 into the outgoing Transport Streams. The injection of the markers must be aligned either by UTC time, VITC (Vertical Interval Time Code), or upon a GPIO (General-Purpose Input/Output) transition (basically, a switch).

At its core, SCTE 104 defines a set of protocols for inserting digital cues into a television program. These cues control various aspects of broadcasting, such as ad insertions, program start times, and content ratings. In simpler terms, SCTE 104 is a conductor orchestrating the seamless transitions on the linear channels.

Programmer side workflow diagram by Ciro A. Noronha PhD
Programmer side workflow diagram by Ciro A. Noronha PhD

The Role of SCTE 104 in Broadcasting

SCTE 104’s impact on broadcasting is profound. This standard ensures a harmonized approach to managing and switching digital signals. With SCTE 104, broadcasters can dynamically insert commercials, switch to local programming, or even trigger emergency alerts without interrupting the viewing experience.

One real-world application is during live sports events. SCTE 104 cues can trigger instant replays or switch to different camera angles, enhancing the viewer’s experience. This standard facilitates the smooth integration of live feeds, breaking news tickers, and scheduled programming in news broadcasting.

SCTE 104 in the video chain delivery

What sets SCTE 104 apart is its ability to provide detailed cue messages, allowing for precise control over the broadcasting process. This level of detail is crucial for live broadcasts, where timing and coordination are critical and must be frame-accurate.

As already explained, it has been used in collaboration with SCTE 35, and SCTE 104 serves as an API for automation systems to interact with compression systems for SCTE 35 message injection.

Few things to consider when you want to start understanding SCTE 104 and how it differentiates with SCTE35:

  • SCTE-104 messages exist either in the VANC (Vertical ANCillary data space in digital video streams – see SMPTE ST 291 for more details) space of baseband (SDI) video, by Serial, HANC, VBI or sent between systems through TCP/IP and are used as a precursor to the eventual creation of SCTE-35 messages.
  • In comparison, SCTE-35 messages exist inside an MPEG Transport Stream and contain PCR timing data and component PID data specific to that transport stream. More details on SCTE35 here.
  • 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. In contrast, SCTE-35 messages fulfill these requests, including all the data that a downstream system will need to take appropriate action during the live reception of the compressed stream.
    • Encoders typically translate 104 to 35 during compression.
  • The downstream system reading the SCTE-35 messages may be a server-side ad splicer, a set-top box, a video stitcher, 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 the 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. That is where is playing, replacing ads or pieces of content using manifest manipulation triggered by SCTE35 cue tones.
Slide from Russell Trafford-Jones presentation: “Introduction to DVB’s Targeted Advertising specifications”
Slide from Russell Trafford-Jones presentation: “Introduction to DVB’s Targeted Advertising specifications”

Implementing SCTE 104 in the world of Streaming

Integrating SCTE 104 into a broadcasting system requires careful planning and consideration. Compatibility with existing infrastructure is vital. You may think SCTE104 is not relevant anymore in the era of streaming, but it is more important than ever.

In video over the Internet, one of the challenges is to have frame-accurate replacement of content, for ads for example. Typically, SCTE35 has been used for that. But unfortunately, this accuracy is not accounted for in the 35 standard itself, consequently, SCTE 104 is necessary higher in the chain.

Indeed, one of the challenges in implementing SCTE 104 is ensuring that all components of the broadcast chain are synchronized. Every element must be calibrated from signal encoding to transmission to accurately understand and respond to SCTE 104 cues. However, the benefits of such an integration are clear: more efficient broadcasting operations, improved ad revenue through targeted ad insertions, and enhanced viewer engagement.

When implementing the SCTE 104 specification, there are several methods you can utilize.

Here is a suggested approach:

  • Initiate a time_signal request accompanied by a segmentation descriptor.
  • Indicate the start of a commercial break using a segmentation_type labeled ‘Provider Placement Opportunity Start’.
  • Enter the total duration of the commercial break in the segmentation duration field.
  • Signal the end of the break with a segmentation_type of ‘Provider Placement Opportunity End’.
  • Optionally, individual commercials can be marked with their respective segmentation_types.
  • For each commercial, use a segmentation_type of ‘Provider Advertiser Start’ at its beginning.
  • Record the duration of each commercial in the segmentation duration field.
  • Conclude each commercial with a segmentation_type of ‘Provider Advertiser End’.

Additionally, ensure that your SCTE inserter is capable of the following:

  • Receiving SCTE messages from the automation system via an out-of-band channel.
  • Supporting time_signal messages with segmentation descriptors.
  • Accommodating all necessary segmentation_types.
  • Inserting SCTE messages into the VANC within a 1 to 4 frame interval.

With these capabilities, you will be able to manage Program Starts/Ends, Chapter Starts/Ends, implement traffic-driven blackout flags, and insert content identifiers effectively.

How to map SCTE 104 and SCTE 35

Mapping SCTE 104 to SCTE 35 involves converting the cue points and instructions from the baseband (SCTE 104) to the MPEG transport stream (SCTE 35). As you see in the diagram below, you can map both standards to ensure continuity in the flow. That is typically how encoders are doing to create the markers.

SCTE 104 standard: multiple_operation_message() to SCTE 35 section field mapping (Informative)
Extract from SCTE 104 standard: multiple_operation_message() to SCTE 35 section field mapping (Informative)

The conversion step from SCTE 104 to SCTE 35, specifically the mapping between the splice request data (SCTE 104) and the splice insert command (SCTE 35), involves a detailed process to ensure accurate and synchronized signal transmission for digital program insertion.

Here is a breakdown of this process:

SCTE 104 Splice Request Data

Here you have the list of data important on the SCTE104 side:

  • Splice Event ID: A unique identifier for the splice event.
  • Splice Insert Type: The type of splice requested, such as start, end, or cancel.
  • Timestamp: The exact timing for when the splice event should occur.
  • Pre-Roll Time: The time before the actual splice point when the splice command should be prepared or alerted.
  • Break Duration: The length of the break or inserted segment (if applicable).
  • Unique Program ID: An identifier for the program where the splice will occur.
  • Avail Descriptor: Information about the type of content to be spliced, like ads, network signals, etc.

SCTE 35 Splice Insert Command

Here is how it is described on the SCTE 35 side:

  • Splice Event ID: Mirrors the SCTE 104 Splice Event ID for synchronization.
  • Splice Command Type: Indicating the nature of the splice.
  • Splice Immediate Flag: Determines if the splice happens immediately or at a specified time.
  • Program Splice Flag: Indicates if the splice applies to the entire program.
  • Duration Flag: Indicates if there is a set duration for the splice.
  • Break Duration: Matches the SCTE 104 break duration if applicable.
  • Unique Program ID: Should correspond to the SCTE 104 Unique Program ID.

Mapping and Conversion Process

And here you have the mapping between the two – process typically done by your encoders:

  1. Extraction and Interpretation: The SCTE 104 data is extracted and interpreted from the baseband video signal.
  2. Timing Alignment: The timestamp in SCTE 104 is used to align with the MPEG transport stream’s clock, ensuring the SCTE 35 message is inserted at the correct time.
  3. Data Conversion:
    1. The Splice Event ID and Unique Program ID are directly mapped to maintain consistency.
    2. The Splice Insert Type in SCTE 104 is converted to an equivalent command in SCTE 35, ensuring the action (start, end, cancel) matches.
    3. The Timestamp and Pre-Roll Time from SCTE 104 are used to set the timing of the SCTE 35 splice command, considering any necessary adjustments for transport stream delays.
    4. If a Break Duration is specified in SCTE 104, it is mapped to the SCTE 35 message, enabling downstream equipment to handle the splice duration accurately.
    5. Additional metadata, like Avail Descriptors, is also translated as needed to provide context for the splice event.
  4. Embedding SCTE 35: The converted data is then embedded into the MPEG transport stream as SCTE 35 messages at the appropriate point, based on the timing alignment.
  5. Validation and Transmission: Finally, the stream is checked for accuracy and synchronization before transmission.

In-band and out-of-band

SCTE 104/35 in-band signaling and SCTE 224 out-of-band API-based signaling are highly complementary technologies. As we mentioned, SCTE 104/35 excels in providing precise, frame-accurate signaling. On the other hand, SCTE 224 operates as an out-of-band signaling mechanism, utilizing APIs to convey scheduling and policy information for content and advertising.

This approach offers greater flexibility and scalability, allowing for more complex decision-making processes and integration with broader broadcasting systems and workflows. Together, these two standards offer a comprehensive signaling toolkit: SCTE 104/35 ensures accurate and immediate execution of broadcast commands, while SCTE 224 allows for sophisticated, rule-based content management and distribution strategies. This synergy enables broadcasters to effectively manage and monetize their content across diverse platforms and formats, ensuring a seamless viewing experience for the audience.

The Future of SCTE 104

As broadcasting technology evolves, so too does SCTE 104. This standard will adapt to new formats like 4K and 8K and emerging technologies like ATSC 3.0. SCTE 104’s flexibility and adaptability will ensure its continued relevance in the industry.

Finally, the future might also bring deeper integration with internet-based broadcasting, offering more personalized and interactive viewing experiences. SCTE 104 will evolve as these technologies develop to meet these new demands, remaining a crucial part of the broadcasting landscape.


SCTE 104 might not be a household name, but its impact on our daily entertainment is undeniable. This standard is crucial in ensuring our viewing experiences are seamless and enjoyable. As technology advances, SCTE 104 will continue to adapt, maintaining its position as an essential tool in the broadcasting industry.

And if you require generating SCTE 104 messages at the right time for your linear stream, we recommend checking the AdIT software from Middleman.

Mathias Guille
Mathias Guille is the Vice President Cloud Platform at Broadpeak. He leads the strategic development of Broadpeak’s cloud platform, including the building of the company’s infrastructure in the cloud and in public datacenters, the design of Broadpeak’s platform on top of the infrastructure and the shaping of the company’s applications to accommodate SaaS offerings.