Concepts
This page defines the core objects in C21 Live Control. Each entry maps 1:1 to an entity you see in the UI or in the public API. Where the navigation section and the entity name differ, both are given.
Live stream
A Live stream is the unit of broadcast: one Channel, one Encoding (or Encoding group), one Destination (or Destination group), executed on one Device for a bounded time window. The detail view shows the bound Source, Encoding and Destination fields, the runtime status (the Live streams list flags it with a coloured edge strip — grey / red when stopped, green when on air — and while on air the row also surfaces in the On air view), an Uptime counter and the runtime operations available while it is on air. A Live stream owns its bindings; when you stop it, the bindings stay saved so you can start it again later. While on air, the editor is locked.
Channel
A Channel is the upstream signal that feeds a Live stream. The navigation entry for the catalogue is Sources; the entity edited and returned by the API is a Channel. Channels expose a type field with the following set of values:
- File — a media file replayed continuously as a live signal.
- SDI — physical SDI input on a studio encoder.
- AES/EBU — standalone digital audio input.
- NDI — an NDI stream advertised on the local network; the editor can discover sources automatically or accept a manually-typed stream name.
- SRT — caller or listener mode, with optional encryption and configurable latency.
- Stream — IP pulls over HLS, RTMP, HTTP, RTP or UDP multicast (for example
udp://@239.0.0.1:1234or an HLS playlist URL). - Stream – C21 Live Cloud — push-mode ingest that terminates on the C21 Live Cloud platform. Three transport variants are accepted:
RTMP,SRTandUDP-R. - Youtube Live — pull from a Youtube Live channel.
Each Channel declares its URL, codec, resolution, frame rate, audio layout and any auth parameters. The detail view shows live probe data and a connection log.
Encoding
An Encoding is the encoding recipe applied to the Channel on its way out. The navigation entry for the catalogue is Encodings; the entity is an Encoding. It carries:
- Video settings — codec (
H.264,HEVC,VP9,AV1,MPEG-4,MPEG-2,LOGOfor overlays, orCopyfor passthrough), bitrate, frame rate, output width (height is derived from the source aspect ratio), aspect ratio, HDR mode (sdr,bt2020_sdr,hlg,hdr10— the UI picker presents these in three steps: SDR (BT.709) · BT.2020 (10-bit) · HDR (HLG or HDR10)) and codec-specific knobs such as the H.264 profile/level and the keyframe interval. - Audio settings — codec (
AAC,AAC+,OPUS,MP3,MPEG-Audio, orCopyfor passthrough), bitrate, channels (mono or stereo) and sample rate.
API consumers note: the OpenAPI schema exposes lowercase slugs for codecs (for example h264, hevc, mp4a); the UI displays the canonical forms above. The API accepts both.
Encoding group
An Encoding group is an ordered set of Encodings bundled into a multi-rate ladder. Binding an Encoding group to a Live stream gives the Destination every rung of the ladder at once; binding a single Encoding gives it a single-rate output.
Destination
A Destination is an outbound endpoint. The navigation entry for the catalogue is Destinations; the entity edited and returned by the API is a Destination. Destinations expose a type field with the following exact set of values:
- HLS / TS
- DASH
- CMAF
- RTMP
- Enhanced RTMP
- SRT
- STREAM (UDP / MPEG-TS output)
- SDIOUT (baseband SDI for OB / master control)
- Record (captures the broadcast to disk; the catalogue entry that produces a Recording)
Each Destination carries its endpoint (URL, multicast group or ingest target), its credentials (stream key, SRT passphrase, OAuth token, bearer token), a retry policy and — when applicable — a DRM configuration block.
Destination group
A Destination group is a named bouquet of Destinations activated together. Binding a Destination group to a Live stream is identical to binding a list of Destinations one by one, with two differences: the group is reusable across Live streams, and per-member state is rolled up into one indicator without losing the per-member drill-down.
Scheduler
The Scheduler is the calendar view (day / week / month / list) where Schedules are planned. It detects conflicts between Schedules that target the same encoder channel and offers a suggested resolution.
Schedule
A Schedule binds a Live stream to a start time, an end time, a Device and an optional recurrence rule (one-off, daily, weekly, workdays or weekend). It is the time-bound counterpart to a Live stream definition.
Recording
A Recording is the captured output of a Live stream stored for VOD. Recordings are produced by attaching a Record-type Destination to one of the Destination groups bound to the Live stream. Retention is configured on that Destination (in days). The UI lists Recordings under the Recordings section; the Recording Details panel exposes the bound Channel, the Quality captured, the Start timestamp, the End timestamp (or "Live" while the recording is still being written) and the Edit / Download / Delete actions.
The Recording editor opens any Recording on a timeline. The operator picks a Quality, sets one or more time intervals (Start / End), optionally aligns each cut to the nearest keyframe and chooses the output encoding (dash, hls or both). Submitting executes the cut and delivers the resulting clip.
Device
A Device is one C21 Live Encoder instance paired with the control plane. It carries a name, a location, a channel capacity, a hardware-acceleration backend and a health snapshot. A Live stream consumes one channel on one Device for the duration of the broadcast.
Device group
A Device group bundles Devices by role so the Scheduler and the Live stream editor can pick from a pool rather than a single unit. Grouping is also the basis of failover suggestions when an encoder is at capacity.
Asset
An Asset is a file managed by Live Control and reusable across Live streams. The Asset catalogue (the Assets section in the left rail) is partitioned into the following buckets:
- logos — image assets for corner bugs and watermarks.
- files — broadcast files (intros, slates, fallback loops).
- clips — clips produced from Recordings.
Logos are applied at runtime via the per-stream operations panel (runtimeApplyLogo); broadcast files can replace the running output via the runtime blackout / file action (runtimeApplyBlackout).
DRM provider
A DRM provider is a credentials catalogue entry. Managed under Integrations > DRM providers, each provider record carries a name, a SPEKE URL, the credentials used to authenticate against the upstream and a provider_type advertised by the server-side catalogue. Supported provider types today are AXINOM and EZDRM; the catalogue is server-driven and additional brands can be added without breaking the API contract.
DRM (on a Destination)
DRM is applied to a Live stream via the DRM block on each protected Destination. The block exposes:
active— whether DRM is enforced on this Destination.provider_id— the DRM provider to call for keys (one of the catalogued providers above).contentid— the content identifier registered with that provider.systems— the DRM systems to advertise on the manifest: any combination ofWidevine,PlayReadyandFairPlay.encryption_mode— eithercenc(Widevine + PlayReady on DASH and CMAF) orcbcs(FairPlay on CMAF, plus optional Widevine / PlayReady).
A Destination without DRM configured publishes clear. A DRM-protected Destination inherits the keys and rotation cadence the provider issues.
C21 Live Cloud account
A C21 Live Cloud account is the integration with the C21 Live Cloud platform — a remote service that provides cloud encoding capacity Live Control can dispatch to alongside on-prem encoders. The account is managed under Settings > Integrations > C21LiveCloud and validated against the upstream deploy service on demand. Once persisted, the account surfaces in the Device picker so the Operator can target a cloud encoder the same way as an on-prem one. Multiple accounts can coexist; the credentials field is write-only on the API.
MCP server
The MCP server is an integration of the product that exposes a curated toolset to any MCP-compatible AI agent or automation. The toolset is bounded by a server-side profile chosen at deployment time. The default profile on NOC deployments is voice, which exposes 25 tools — four end-to-end business workflows (start_livestream, stop_livestream, toggle_destination, update_destination_stream_key) plus twenty-one generated tools covering status queries, Schedule CRUD, runtime operations (logo, blackout, file loop), Asset discovery and source reconfiguration. Other profiles (readonly, operator, full) are available for different integration shapes. The source of truth for profile composition is src/mcp-server/profiles.py in the product repository.
Roles
The product defines two roles, both managed under the Users section:
- System Administrator — full access. Manages users, licences, integrations, DRM providers and the system surface.
- Operator — drives the day-to-day operator workflow: the On air view, Live streams, the Scheduler, Recordings.
The REST API and the MCP server authenticate as one of these two roles. API tokens are credentials issued to an existing user and inherit that user's role; they are not a separate role.