Client-side Advertisement Control in Live Channels on OTT Video Service by using SCTE-35

tech@TVB
tech@TVB
Published in
4 min readMar 10, 2021

by Angus Siu and Ricky Lau

In-stream video Advertisement (Ad) is difficult to control in live channels. It mainly depends on what is provided from up-stream. In compliance with Broadcasting license in Hong Kong, Ad is strictly controlled with limitations. Also, innovative targeting Ad is hardly applied on Broadcasting. Therefore, having more control on ads will be beneficial to the service.

Digital In-stream Video Ad
U-Shape Ad

What is the use case of SCTE-35 implementation?

1. To avoid banners showing at the same time when there are video Ad in the channels.

2. To show related advertisements related to the main content of the video. This can emphasize the promotion power.

3. To replace in-stream video advertisement by other digital video advertisement when the user rewind in time-shift enabled channels in client side.

Figure 1 illustrate the flow and usage of SCTE-35 in video stream.

Figure 1 — SCTE35 in a video streaming flow

SCTE-35 Implementation Guide

To accurately indicate the starts and ends of the inline video advertisement’s periods in the live stream, SCTE-35 markers was chosen in HLS (HTTP Live Streaming) playlists for the live video channels. SCTE-35 (ANSI/SCTE 35), or “Digital Program Insertion Cueing Message for Cable”, is a joint American National Standards Institute (ANSI)/ Society of Cable and Telecommunications Engineers (SCTE) standard that describes the inline insertion of cue tones in MPEG-TS streams. SCTE-35 is used in digital broadcasting to provide signal to insert local ad in the transport stream or insert local TV programs (e.g. local news transmissions), etc.

While there are different implementations of including SCTE-35 markers into HLS playlists, #EXT-X-DATERANGE tags are chosen as defined in the IETF “HTTP live Streaming” RFC developed by Apple. Even though it was relatively new and limited support when it is adopted in TVB’s platform, it is believed that the support for this tag will improve as times go. More importantly, it is the only implementation methods which natively supports in Apple’s ecosystem, including iOS.

When using the #EXT-X-DATERANGE for SCTE-35 markers in the playlist, the start of inline video advertisement period (or simply Ad period) can be denoted using a SCTE35-OUT #EXT-X-DATERANGE tag with a unique ID of the Ad period, the start time of the Ad period, the planned (expected) duration of the Ad period, and the hexadecimal representation of the SCTE35-OUT signal content. The end of the period can be denoted using a SCTE35-IN #EXT-X-DATERANGE tag with the ID that match the one for the SCTE35-OUT #EXT-X-DATERANGE tag for the Ad period, the actual duration of the Ad period (or the end time of the Ad period), and the hexadecimal representation of the SCTE35-IN signal content (or if no SCTE35-IN signal is received, then it would use the same SCTE35-OUT signal content).

Here are tips to implement the SCTE-35:

1. To avoid playback problems with HLS playlists with the #EXT-X-DATERANGE tags, this has to make sure that the syntax is correct when creating the playlists.

The ID of the #EXT-X-DATERANGE tag is mandatory unique, which means this cannot have the same ID for the #EXT-X-DATERANGE tags for two (or more) different Ad periods. If the splice_event_id in the SCTE-35 signal is used as the ID in the #EXT-X-DATERANGE tag, this has to make sure that the splice_event_id is unique for the Ad period too. Otherwise, this cannot use the splice_event_id alone as the ID of the #EXT-X-DATERANGE tag. You may need to include a timestamp or counter in the ID to guarantee the uniqueness.

2. SCTE35-IN and SCTE35-OUT #EXT-X-DATERANGE tags requires to work in pairs, even when the Ad period may sometimes be shorter or longer than originally planned, or there are network failures or system faults causing the SCTE-35 signals to drop or duplicate.

There may be many ways to solve this kind of problem. If you have other idea or solution, please feel free to leave comment and share with us. If you would like to implement creative solutions like this, please reach out to us at tech@tvb.com

--

--