proposal for carriage of SCTE-35 Messages over NDI

This page contains a technical proposal which is not currently a published or formal standard. If you have comments or feedback on the content of this proposal PLEASE contact us with your contribution.


This proposal defines a standardised wrapper to carry SCTE-35 control messages over NDI by way of a recommended practice technical note.


Basic Premise:

When using NDI to carry a stream of content which originated in SDI (with SCTE104 metadata) or MPEG TS (with SCTE35 metadata), a mechanism is required to encode this metadata in a form which can be carried along in real time via an NDI stream such that it can be restored as SCTE35 or SCTE104 for delivery to downstream systems, or perhaps processed directly from the NDI domain by systems which traditionally only support MPEGTS or SDI.


- The SCTE-35 protocol is defined in the ANSI standard ANSI/SCTE 35 2019a.  It describes a set of messages which can be inserted into a transport stream for the purpose of signalling events such as ad-insertion.


In this proposal, the SCTE-35 data is sent using dedicated metadata messages already defined in the NDI Protocol.  It uses the real time (non frame based) NDI Metadata stream, with SCTE-35 message data enclosed.  Raw SCTE-35  message data is encoded in hexadecimal text format before being wrapped in the XML tag.


Sent Messages are wrapped in the outer XML tag <SCTE_35>, a pts= attribute allows this tag to indicate the original stream source presentation timestamp for the scte-35 message itself - which may relate to the SCTE-35 content. Another optional parameter, line= allows for compatibility with SCTE-104, where the original source line number can be stored in the NDI metadata domain, in case its important to restore into the same line farther along the workflow.


NDIlib_metadata_frame_t meta_data

meta_data.p_data =




Example : SCTE-35 Splice Command (carriage returns included for formatting but should not exist)


<SCTE_35 pts="3634535345345" line=13>




Integration with SCTE-104 will be documented at a later date but it is anticipated that SCTE-104 data from SDI should be translated to and from SCTE-35 for the purposes of carriage via NDI in order to provide maximum integration usefulness. SCTE 104 SDI implementation is defined in ST2010


If you have any questions, or you would like to engage Sienna for NDI Consultancy or Custom Development, please contact info @ sienna.tv