Configuring Generation of SCTE-104 Messages

Note: the function is available starting from the version 1.8.120

This function is optional, its activation requires additional licensing. 

SCTE-104 messages are the element of technology for automated insert of commercials and contain the control information for the regional broadcasting systems.

SCTE-104 data is formed in the twelfth line of the VANC interval of the output SD/HD SDI signal of the SL NEO server.

The MPEG-encoder that receives the SD/HD signal from the SL NEO server (located at the central station), also receives information about the message and forms an additional PID in the transport stream, according to the SCTE-35 protocol.


Using SCTE-104 messages as a part of SDI, and SCTE-35 messages as a part of transport stream (extended to the broadcasting territory of the channel), allows the regional system to identify the received program and every insert event, to define (with frame-by-frame accuracy) the time of the beginning and the end of insert and implement changeover to the advertising block with the specified ID.


Besides, using SCTE messages provides confidentiality and safety from the unauthorized insert of commercials. Regional broadcasting systems that use the technology of automatic insert, may be functioning in the autonomous, unattended mode: it considerably decreases the exploitation costs.


SCTE-104 messages are generated, as a rule, directly before the changeovers to commercials, and before the end of every regional block, providing frame-by-frame accuracy. In case of manual transitions to commercials during the live broadcasts at the central station, the possibility of generating messages with frame-by-frame accuracy is also saved.


The possibilities of software of SL NEO platform allow reading off data for generation of messages directly from the playlist columns (up to ten SCTE-104/35 parameters, including splice_event_id - the identifier of the ad block), which may not be implemented using external hardware inserters with GPI-interfaces. There is one more circumstance that proves the advantage of the SkyLark solution - when using external inserters of VANC-data, controlled by GPI, frame-by-frame accuracy during generation of messages is not provided.


After encoding SDI into TS, SCTE-35 messages require about five extra kBit/s of the channel for sending the transport stream. The picture describes the technology of work of the broadcasting system:


Configuring Server Software: Creating Rules for Generation of Messages


Let's configure two rules, according to which, in case of setting the rule for generation of the SCTE-104 message in the corresponding column of the appropriate playlist line, the message will be generated certain time before the end of the appropriate event. The first rule will generate the message that launches the regional ad block, the second rule will generate the message that closes the block. 


For managing generation of messages, you may use every playlist column, in which you can specify the condition on/off - GPI 1...8 mode or Keyer 1...8 mode. For sending the ID of the advertising block to the regional systems, you may use one more playlist column, in which you may enter the text data - GPI 1...8 Value, Comment, Group Name, Type, etc. For our example, let's choose the column GPI 1 mode: the value on in this column will give the command for generating the message; also choose the column GPI 1 Value (GPI 1 V in the playlist) for specifying the ID of the regional block. 


Configuring the first rule is implemented from the control web-console of the SL NEO server: menu item Manage, tab Program Outputs. Find the item Actions in the chosen channel Program Channel, then find the field Playlist events and choose Add Action. In the opened window enter the parameters for a new rule (Action) for generation of a message before the start of the advertising block.




Find the field Name in the window Action Configuration and enter the random name for the rule, in the field Layer choose У1Ф (the main fullscreen layer of the program channel), in the field Delay set the time value for the delay from the start of the rule to the event end in milliseconds. If you need to generate the message four seconds before the event end, you should enter the value more than four seconds into the field Delay (for example, 5000 msec). 

In the field Address set the IP address of the server, or leave the field empty, if the value is localhost. Choose the service name by the button ... in the field Service. In our example it's Program Channel #1 (Program_1 in the list). 


By the button ... in the field Action choose the function that will be executed in the current rule - SCTE-104 Splice Request. 


In the field Action condition, find the field Variable and specify the playlist column that will be responsible for generation of the message. Choose GPI 1 mode for our example, set the trigger as EQUAL, enter on in the field Value. Activate the parameter Trigger at end when primary matches. Implemented adjustments in the window Action condition mean that the rule triggers in case, when the value УonФ will be set in the playlist column GPI 1 Value. The rule starts five seconds before the end of playout of the main playlist event.


In the fields Param of the window Action parameters you should specify eleven parameters of the generated message:


Param 1: AS_indexidentifies the source of message - the broadcasting system. Ranges of numbers from 0 to 255 (0 is used, if the index is not needed).

Param 2: DPI_PID_index Ц the 16bit integer (from 0 to 65535). The value = 0, if DPI_PID_index is not needed. 


Param 3: splice_insert_type - the 8bit integer (from 0 to 255) that defines the type of operation for insert of commercials. Values of the parameter:


reserved - 0 

spliceStart_normal - 1 (is specified in the rule for the start of the ad block)

spliceStart_immediate - 2 

spliceEnd_normal - 3 (is specified in the rule for the stop of the ad block)

spliceEnd_immediate - 4 

splice_cancel - 5


Param 4: splice_event_id Ц 32bit integer (from 0 to 4294967295), the identifier of the advertising block. For reading off from the playlist column at the central station, you should choose the column from the list by the button ..., or specify the playlist column in the format $(gpi1_val)GPI 1 Value in our example.


Param 5: unique_program_id Ц the 16bit integer (from 0 to 65535), the identifier of a program, according to SCTE-35.


Param 6: pre_roll_time Ц the 16bit integer (from 0 to 65535) that defines the insert point: the time from the moment of generation of the message till the moment of insert, in milliseconds.


Param 7: break_duration Ц the 16bit integer (from 0 to 65535) that defines the insert duration in tenths of seconds. The value У0Ф doesn't set the duration and makes the parameter inactive. 


Param 8: avail_num Ц the 8bit number (from 0 to 255), the identifier according to the SCTE-35 standard. The value У0Ф makes the parameter inactive. 


Param 9: avails_expected Ц the 8bit number (from 0 to 255), the identifier according to the SCTE-35 standard. The value У0Ф makes the parameter inactive.


Param 10: auto_return_flag Ц the value У0Ф makes the parameter inactive, the value У1Ф activates the parameter. The function is defined by the SCTE-35 standard.


Param 11: the parameter that provides frame-by-frame accuracy when generating a message. It allows users to set the shift relatively to the beginning or the end of the playlist event that generates the message. Values of the parameter:


Empty field - the message will be generated immediately.

clip_start:$(clip_anchor)/OFFSET, where OFFSET is the shift of the moment of generating the message relatively to the end of the on-air event in the format HH:MM:SS:FF

clip_end:$(clip_anchor)/OFFSET, where OFFSET is the shift relatively to the end of the on-air event, for example, the value clip_end:$(clip_anchor)/-00:00:04:00 will generate the message four seconds before the end of the playlist event. The time value in the field Delay (the window Action Configuration in the rule settings) should exceed the OFFSET value for a few hundreds msec (for example, 500).


You should implement the same adjustments for the second rule that forms the message before the end of the ad block, and for all other program channels that need messages.


Configuring Generation of VANC-data




For forming messages in the output SDI-signal of the SL NEO server, you should turn on the generation of data in the VANC-interval (SMPTE 291M standard).


The procedure is implemented from the control web-console: menu section Manage, item Video IO Boards. Choose the Playout channel that displays the current format (for example, SDI/Embedded, PAL), click Edit, activate the parameter Use VANC in the window Configure Service.

Generation of data in the VANC interval is supported for the Matrox I/O boards of DSX series.


Configuring the function of generating messages is finished, press Apply Changes at the top part of the control console window. The playout channels with the changed configurations will be reloaded, playout will be stopped while reloading.

Check the Presence of SCTE-104 Messages and Correctness of their Positioning


104_2.jpgSoftware of the SL NEO platform allows you to check the presence of SCTE-104 messages in the output SDI and correctness of their positioning without the additional hardware/software resources. After configuring the rule, you should write down the SDI-signal (with messages from the server output) to the server database, or send a stream formed by the service Program Channel to the input of the recording service.


The window File Monitor of the application Air Manager allows viewing the record in the frame-by-frame mode, define the presence of VANC-batches, check the presence and the positions of messages

†in the recorded signal. Activation of the mode for displaying the VANC-batches is implemented in the menu for configuring Air Manager: File-> Configure-> Preview-> item Show ANC.



For testing, you may use the avi-file (576i 25 fps DV) that contains the values of the time code in the video.