SCTE-35 Insertion
Zixi supports SCTE-35 Insertion on Inputs using the API (speak to your account rep for access to broadcaster API documentation)
The SCTE-35 payload must be pre-formed by the customer and encoded as base-64 or hex to be inserted.
SCTE-35 options can be enabled by using ?advanced=1 option when logging into broadcaster GUI in version 17+.
To insert SCTE-35 (version 19+)
Setup
On supported inputs, select Support SCTE-35 injection:

Enter a PID number for SCTE-35 injection (or leave as Auto to match existing SCTE-35 PID):

Select Remove old SCTE-35 packets to clear out existing packets:

Designate an appropriate timeout interval when searching for NULL packet to replace with the SCTE-35 packet to maintain PCR accuracy in CBR streams. If no NULL Packet is detected by the time the timeout is reached, the SCTE-35 will be inserted anyway breaking PCR Accuracy momentarily. (if stream is VBR, set this to 0). The value is in cycle ticks, so 90,000 = 1000 ms, 180,000 = 2000 ms, etc.

Insertion:
Use the API to insert desired SCTE-35 payload encoded as Base64 or Hex.
- Sign-in: use the same username and password as the Broadcaster's web interface, sent as HTTP basic authentication. No separate API account is needed.
- POST to ?add_stream_scte.json?stream=<stream-id>&scte=<base64-scte35-payload>
To insert SCTE-35 (pre version 19)
Setup
On supported inputs, select Support SCTE-35 injection:

Enter a PID number for SCTE-35 injection (or leave as Auto to match existing SCTE-35 PID):

Select Remove old SCTE-35 packets to clear out existing packets:

Designate an appropriate timeout interval when searching for NULL packet to replace with the SCTE-35 packet to maintain PCR accuracy in CBR streams. If no NULL Packet is detected by the time the timeout is reached, the SCTE-35 will be inserted anyway breaking PCR Accuracy momentarily. (if stream is VBR, set this to 0). The value is in cycle ticks, so 90,000 = 1000 ms, 180,000 = 2000 ms, etc.
Insertion:
Use the API to insert desired SCTE-35 payload encoded as Base64 or Hex.
- Sign-in: use the same username and password as the Broadcaster's web interface, sent as HTTP basic authentication. No separate API account is needed.
- POST to ?add_stream_scte.json?stream=<stream-id>&scte=<base64-scte35-payload>
Good to know
- SCTE-35 injection must be turned on for the input, with an SCTE-35 PID. Otherwise the API call fails.
- The message is inserted on the input, before the stream is passed on, so every output and recording of that input carries it.
- SCTE-35 settings, including the insertion PID, are saved in the input's configuration. If that configuration is lost or replaced, set them again.
- Each API call inserts once, into the live stream. Inserted messages are not saved in the configuration.