RP-NDI-SCTE35_2020_08

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 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_35>...........</SCTE_35>

 

 

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

 

<SCTE_35 pts="3634535345345" line=13>

FC302000006F1603AF00FFFFFF0562001EA17FCFFEF13A67980000000000001E9FE451FC302000006F1603AF00FFFFFF0562001EA17FCFFEF13A7353000000000000C299F95C

</SCTE_35>

 

 

It is also possible to carry parsed, deconstructed SCTE35 data in another XML packet type. This allows for an NDI:SCTE35 parser to translate the binary data and hand off more easily understood text for scripts and other process automation.

 

<SCTE35_TEXT pts="3634535345345" line=13>

<splice_info_section>

 <table_id>252</table_id>

 <section_syntax_indicator>0</section_syntax_indicator>

 <private_indicator>0</private_indicator>

 <section_length>32</section_length>

 <protocol_version>0</protocol_version>

 <encrypted_packet>0</encrypted_packet>

 <encryption_algorithm>0</encryption_algorithm>

 <pts_adjustment>1863713711</pts_adjustment>

 <cw_index>0</cw_index>

 <tier>4095</tier>

 <splice_command_length>4095</splice_command_length>

 <splice_command_type>5</splice_command_type>

 <splice_insert>

  <splice_event_id>1644175009</splice_event_id>

  <splice_event_cancel_indicator>0</splice_event_cancel_indicator>

  <out_of_network_indicator>1</out_of_network_indicator>

  <program_splice_flag>1</program_splice_flag>

  <duration_flag>0</duration_flag>

  <splice_immediate_flag>0</splice_immediate_flag>

  <splice_time>

   <time_specified_flag>1</time_specified_flag>

   <pts_time>4047136664</pts_time>

  </splice_time>

  <unique_program_id>0</unique_program_id>

  <avail_num>0</avail_num>

  <avails_expected>0</avails_expected>

 </splice_insert>

 <descriptor_loop_length>0</descriptor_loop_length>

</splice_info_section>

<SCTE35_TEXT>

 

Integration with SCTE104 will be documented at a later date but it is anticipated that SCTE104 data from SDI should either be translated to and from SCTE-35 for the purposes of carriage via NDI, or retained as SCTE104 in NDI  in order to provide maximum integration usefulness. SCTE 104 SDI implementation is defined in ST2010. In some cases it may be desirable to convert SCTE35 to SCTE104  for carriage through an NDI workflow in order to disconnect from the strict PTS requirements and use a more relative timing mechanism.

 

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