Live video monetization needs accurate break signaling. LiveEdge® generates SCTE-35 splice commands through its REST API or translates SCTE-104 from SDI—so the cue is created at the encoder, not in a separate appliance at every venue.
LiveEdge® SCTE-35
Insert and transport cues with the encoded program
Why the Cue Belongs at the Source
Creating the cue at the edge means the same operational trigger can be associated with the encoded program before contribution and travel with supported MPEG-2 transport-stream outputs through distribution.
The trigger may come from a director, production automation, SCTE-104 on SDI, an API call, or software correlating external data with the event. Remote and automated operations do not require a master-control operator to originate every marker manually.
The cue can travel with the encoded program instead of being reconstructed later in the chain.
The same operational trigger can be built into local production, API, or Edge App automation.
Cue requests and device events support post-event analysis and an operational audit trail.
An SCTE-35 Data Encoder is created, configured, and attached to the transport-stream outputs that should carry the data.
LiveEdge® SCTE-35 Signal Paths
Videon separates the SCTE-35 data path from audio and video encoder profiles. Creating the Data Encoder alone does not place cues into every output—the operator selects which outputs carry the data.
An application sends a command to the LiveEdge device. The device creates the SCTE-35 splice_insert command and inserts it into the MPEG-2 TS output associated with the SCTE-35 Data Encoder. Process immediately or at a specified UTC time, with preroll and duration.
Beginning with LiveEdge device software 10.2.0, Videon can ingest supported SCTE-104 from the selected SDI input and translate it into SCTE-35 on the associated MPEG-2 TS output. Production automation stays responsible for the cue; the encoder handles compression and transport.
Select an input source when using SCTE-104 translation, add the Data Encoder as a data source on the desired output, save, and enable the output. The CDN, packager, or downstream system then receives SCTE-35 with the compressed contribution stream.
The API method is appropriate for a browser-based or cloud-based control interface, production automation, a custom application or Edge App, a physical control surface integrated through middleware, event data or business logic that calls the device API, and a Stream Deck operated through Bitfocus Companion.
SCTE-104 and SCTE-35 are industry standards designed for interoperable cue signaling. Customers should test workflows involving new SCTE-104 equipment with the complete signal path as far in advance of go-live as possible.
Data-Driven Markers
A marker does not require a button press. LiveEdge exposes SCTE-35 insertion through a REST API and runs containerized applications on the same platform that encodes the event. The Edge App receives data, applies customer-defined rules, and invokes the local SCTE-35 API when a condition is met.
Potential trigger inputs
LiveEdge provides the programmable execution environment and marker-insertion interface; it does not imply that every scoreboard connector, data provider, detection model, or business rule is included as a built-in feature.
Example
In a distributed sports workflow, a data provider sends a webhook when an official timeout begins. The same architecture can support richer rules, but one real-world event should produce one marker sequence—webhooks retry, feeds repeat state, and operators may press a control twice.
splice_commands endpoint.splice_insert command into the MPEG-2 transport stream.IF event.type == "official_timeout" AND event.status == "started" AND output.primary.state == "streaming" AND event.id has not already been processed THEN request splice_insert(preroll=4000 ms, duration=30000 ms) AND record event.id, request, response, and UTC timestamps
The Edge App should retain an event or correlation identifier and implement idempotency, debounce windows, and state-transition logic so one real-world event produces one marker sequence.
Edge Execution
Applications are deployed through LiveEdge Cloud. A sample SCTE-35 Ad Insertion Button is available as an example. A production automation container follows the same deployment model.
linux/arm64.docker buildx build \ --load \ --platform linux/arm64 \ --no-cache \ --progress=plain \ -t registry-account/liveedge-marker-automation:1.0.0 .
Running the automation on the edge means the final decision and API call can occur next to the encoder. A cloud service can still provide schedules, configuration, models, or data, but the Edge App can apply the rule locally once the necessary information is available. This can reduce control-path latency and allows customers to define degraded-mode behavior when cloud connectivity is interrupted.
For example, the application might cache the event schedule, continue processing a locally available scoreboard feed, queue audit records for later upload, and refrain from generating markers that require unavailable external validation. The correct behavior is determined by the customer's rights, monetization, and operational policies.
Credentials for data providers should be supplied through the approved deployment mechanism, scoped to the minimum required access, and kept out of the image and application logs. The container should validate incoming webhooks, authenticate API clients, restrict exposed ports, avoid privileged execution unless specifically required and approved, and reject stale or malformed events. An always restart policy is useful for an event listener that must recover automatically, but the application must persist or reconstruct enough state to avoid duplicating an event after recovery.
Explainable Automation
Every automated decision should be explainable after the event. In addition to LiveEdge device logs, the Edge App should record the source data, rule version, decision, exact SCTE-35 request, timestamps, and API response.
The record traces source data → automation rule → marker request → edge execution → downstream observation.
Trigger
The source data or event that triggered evaluation, plus the normalized event type and a stable event identifier.
Policy
The rule version that was evaluated and the relevant input and output health state at decision time.
Decision
Triggered, suppressed, rejected, duplicated, or failed—plus the exact SCTE-35 request parameters.
Evidence
UTC request and response timestamps, the device and output targeted, the LiveEdge API response or error, and any downstream confirmation with the same correlation identifier.
LiveEdge Cloud Visibility and Scale
LiveEdge Cloud provides centralized deployment, configuration, monitoring, and support for distributed LiveEdge devices. The same SCTE-35 workflow can be validated on one feed and then rolled out across many venues.
Prove Once
One input, one LiveEdge device, one automation container, one SCTE-35 Data Encoder, one contribution output, and the intended downstream packager or SSAI service. Use that feed to validate data source, rule logic, marker construction, preroll, duration, transport, downstream interpretation, logging, and recovery.
Deploy Many
A versioned linux/arm64 image, a standard encoder/output template, environment-specific venue and credential values, staged rollout, version tracking, and rollback. One design can run across hundreds of feeds; each instance still evaluates its local event before generating a marker.
Operate
LiveEdge Cloud distributes the application and configuration and shows exceptions. The Edge App still evaluates time-sensitive conditions locally and calls the local marker-insertion API. A timeout marker is generated only for the venue and feed where the qualifying timeout occurs.
What operators can review in Cloud
When an expected marker is missing, the team can check the source input, automation container, device configuration, active output, connectivity, clock synchronization, and downstream systems without immediately dispatching someone to the venue. Where a centralized per-marker view is required, the Edge App or an associated cloud service can publish structured event records that correlate feed, rule, request, acknowledgement, and SSAI result. LiveEdge Cloud supplies fleet health; marker-event analytics are a separate layer.
Supported Output Paths
Videon currently documents SCTE-35 support for MPEG-2 TS outputs. This is a transport-level capability. The LiveEdge device originates or transports the cue; the downstream platform remains responsible for translating and acting on it.
Contribution
SRT
MPEG-2 TS over SRT carries in-band SCTE-35 with the compressed program.
Contribution
Zixi
Supported transport-stream path for SCTE-35 delivery into distribution.
Network
Unicast
Point-to-point MPEG-2 TS output with attached SCTE-35 data.
Network
Multicast
MPEG-2 TS multicast contribution with in-band cue signaling.
Contribution
RTSP
Documented MPEG-2 TS output path for SCTE-35 transport.
An RTMP-only workflow should not be assumed to carry in-band SCTE-35 in the same way as MPEG-2 TS over SRT. If a production simultaneously sends an MPEG-2 TS/SRT contribution feed and an RTMP feed to a platform such as YouTube, the SCTE-35 signaling applies to the supported transport-stream path; the RTMP destination may require its own platform-specific ad trigger.
Downstream, a packager or SSAI platform can interpret SCTE-35 and express the opportunity in the delivery format. In HLS this may become EXT-X-CUE-OUT, EXT-X-CUE-IN, or EXT-X-DATERANGE. A DASH workflow may use an event stream or period boundary.
Configuration
The REST API is exposed on port 2020. Before creating a profile, an application should enumerate the existing Data Encoders. If the response already contains a Data Encoder whose codec is scte35, reuse its returned identifier—attempting to create a duplicate can return an HTTP 500 error.
GET http://[IP_ADDRESS]:2020/v2/encoders/data_encoders
POST http://[IP_ADDRESS]:2020/v2/encoders/data_encoders
Content-Type: application/json
{
"name": "SCTE-35 Data Encoder",
"codec": {
"value": "scte35",
"scte35": {
"splice_duration": 30000
}
}
}
splice_duration is expressed in milliseconds. In this example, the default opportunity duration is 30,000 milliseconds, or 30 seconds. The POST response returns the Data Encoder identifier needed for subsequent configuration and splice-command requests. JSON sent to the device must be valid JSON—comments used in documentation examples are not valid JSON and must be removed from actual requests.
PUT http://[IP_ADDRESS]:2020/v2/encoders/data_encoders/[DATA_ENCODER_ID]
Content-Type: application/json
{
"name": "SCTE-35 Data Encoder",
"codec": {
"value": "scte35",
"scte35": {
"splice_duration": 60000
}
}
}
Attach to a running output
Timed Insertion
To create a splice command, POST to the Data Encoder's splice_commands collection. During preroll, Videon reinserts the command every two seconds for redundancy, improving the probability that a downstream receiver observes the cue despite packet loss or a transient disruption.
POST http://[IP_ADDRESS]:2020/v2/encoders/data_encoders/[DATA_ENCODER_ID]/splice_commands
Content-Type: application/json
{
"process_time_utc": "2026-09-10T20:15:30.789Z",
"splice_command": {
"value": "splice_insert",
"splice_insert": {
"preroll_time_msec": 4000,
"duration_msec": 30000
}
}
}
process_time_utc specifies when the device processes the request. If omitted, the request is processed immediately.preroll_time_msec specifies the advance interval before the splice point. If omitted, Videon uses a four-second default.duration_msec specifies the expected opportunity duration. If omitted, the Data Encoder's configured splice_duration is used.UTC scheduling depends on accurate device time. Use NTP and monitor clock health. On supported products running version 12.1.0 or later, system time can be inspected and corrected through the local Web UI when NTP is unavailable. A manual change does not disable NTP; the clock may update again when the NTP service becomes reachable.
Operator Control
Videon publishes a Bitfocus Companion module and sample configuration for LiveEdge Max workflows. Production operators can use purpose-built controls instead of constructing REST requests during an event. The Companion connection points to the local address of the LiveEdge device and uses a configurable polling rate, with ten seconds documented as the default. The input channel must be selected for the SCTE-35 buttons. A Data Encoder must already exist, and a supported TS output must be enabled with that Data Encoder attached.
Cue Out
Inserts an Opportunity Start marker for the active SCTE-35 path.
Cue In
Inserts an Opportunity End marker to return to programming.
Cancel
Cancels active SCTE commands when the break should not proceed.
Splice 15
Inserts a 15-second splice from the control surface.
Splice 30
Inserts a 30-second splice from the control surface.
Splice 60
Inserts a 60-second splice from the control surface.
The published module and sample configuration are provided as-is, do not perform error checking, and do not themselves grant the required feature license. A Videon data license is required for SCTE-35 commands. A production control layer should expose positive acknowledgement, failure states, device reachability, active-output state, and—where possible—independent confirmation from the downstream receiver.
For SCTE-104 translation, the SCTE-35 Data Encoder is bound to the SDI input carrying the SCTE-104 messages. Videon's published cloud procedure specifies device firmware later than version 10.2.0 and Cloud Agent later than version 1.16.3. Current release requirements should always be checked before deployment.
Source-Side Evidence
After an event, rights holders, advertisers, engineering teams, and distribution partners may need to know whether an ad opportunity was requested, which device generated it, what preroll and duration were used, and why a downstream record disagrees with the source-side operation.
1. Business event
The scheduled break, game event, traffic instruction, or automation decision.
2. Control request
The REST, SCTE-104, Stream Deck, or application action that initiated the cue.
3. Edge execution
LiveEdge device logs, device identity, configuration, output state, and UTC timestamps.
4. Downstream
Confirmation from the receiver, packager, CDN, or SSAI platform that the SCTE-35 message was received and acted upon.
Debug information can be requested remotely from LiveEdge Cloud Control by selecting the device, opening Commands, selecting Download Logs, requesting new device logs, and downloading the resulting bundle. Correct UTC device time is essential because time drift can affect logs as well as other time-sensitive services.
A device log can establish that the device received or processed a request and show the surrounding operating context. It does not prove that a remote packager received every packet, interpreted the message correctly, requested an ad, or completed the replacement. Billing-grade reconciliation should combine LiveEdge logs with transport monitoring, downstream manifest inspection, SSAI decision logs, and player or delivery analytics.
{
"device_id": "venue-encoder-042",
"venue_id": "arena-west",
"input": "sdi-1",
"output": "srt-primary",
"event_type": "splice_insert",
"requested_at_utc": "2026-09-10T20:15:26.789Z",
"process_time_utc": "2026-09-10T20:15:30.789Z",
"preroll_time_msec": 4000,
"duration_msec": 30000,
"trigger_source": "production-automation",
"request_status": "accepted",
"downstream_status": "verified"
}
This is an audit-system data model, not a guaranteed Videon API response. The aggregation service should retain the original request, response, device-log references, downstream evidence, clock-health information, and a stable event identifier. Access and retention policies should follow the organization's commercial and compliance requirements.
End-to-End Validation
Before production deployment, test the complete workflow with the actual SCTE-104 source, LiveEdge configuration, contribution transport, downstream platform, and commercial requirements. AWS Elemental MediaPackage, for example, can process SCTE-35 in source content and produce corresponding markers in HLS, CMAF, and DASH outputs—but only if the origin or packager is configured correctly.
Production practices
For one event, an operator pressing a button may be sufficient. At hundreds or thousands of venues, cue generation should be treated as an observable, managed service.
Business Outcomes
Although ad insertion is the best-known SCTE-35 application, the signaling can support placement opportunities, program transitions, content segmentation, blackout logic, recording workflows, and downstream automation. The exact behavior is determined by the messages generated and the capabilities and configuration of the receiving platform.
LiveEdge handles the cue on the same edge platform that receives, encodes, and distributes the video. It can translate SCTE-104 or generate API-controlled SCTE-35 splice commands, attach the data to supported MPEG-2 TS outputs, deliver it over protocols such as SRT and Zixi, and retain logs for the operational audit trail.
For distributed sports, local broadcasting, FAST-channel contribution, and event production, the cue can move from a production action at the venue to downstream monetization and verification without a traditional broadcast plant at every location.
Technical references
Ready to Signal at the Edge
Whether you need REST API insertion, SCTE-104 translation, data-driven Edge Apps, or fleet-wide LiveEdge Cloud operations—we'll help you design and validate the workflow.