RP-NDI-SCTE104_2021_08
proposal for carriage of SCTE104 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 SCTE104 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 converted back to SCTE104), 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 SCTE104 protocol is defined in the ANSI standard ANSI/SCTE 104 2019a. It describes a set of messages which can be inserted into an SDI stream for the purpose of signalling events such as ad-insertion.
In this proposal, the SCTE104 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 SCTE104 message data enclosed. Raw SCTE104 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_104>. Another optional parameter, line= allows for compatibility with SCTE104, 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 =
<SCTE_104>...........</SCTE_104>
Example : SCTE104 (carriage returns added for visual clarity)
<SCTE_104>
00000000000020101000E0200001107000000000000000000010B001300000000000000000100000000000101010103
</SCTE_104>
Integration between SCTE104 and SCTE-35 will be further documented at a later date but it is anticipated that SCTE104 data from SDI could be translated to and from SCTE-35 for the purposes of carriage via NDI in order to provide maximum integration usefulness. In practice, however, it seems more appropriate to carry SCTE35 from source transport streams and SCTE104 from SDI sources both as SCTE104 in NDI Streams, which correspond more transparently to SDI streams as a real time stream - and this may avoid some of the ambiguity in SCTE35 of timing offsets - which depend very much on retaining timestamps, rather than as a reference to real time - and which can effectively be re-timed at the point of conversion of SCTE 104 back to SCTE 35. Alternatively both formats could be carried in an NDI stream. The appropriate workflow needs further study in emerging practical workflows.
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