Skip to content

Functional characteristics

This page is the map of the whole product: what Catena does for an operator today and what it is going to do. It is a reference, not a tutorial — each capability is one line, and the pages of this manual describe the ones you can already use.

Catena has two layers, and they are licensed separately: you can take the delivery engine alone and add the subscriber service when you need it.

  • The delivery engine takes channels in, processes them, records the archive and serves viewers. If you already run a portal or middleware, this is the layer you connect to it.
  • The subscriber service turns those channels into a product: portals, packages, the guide, subscribers, and the apps they watch on.

How to read the status

Status Meaning
available Works in the current release, documented or being documented
in progress Being built right now — the screen or the API may be incomplete
planned Decided and on the roadmap, not started

No dates or version numbers are given here on purpose: a capability map that promises quarters goes stale faster than it gets read. Ask your account manager for timing.


The delivery engine

Ingest

Capability Status What it is
Sources over RTMP, RTSP, MPEG-TS (UDP and HTTP), HLS, M4F available The usual ways a channel arrives from a headend or a partner
Multicast ingest available Take SPTS straight off the operator network
SRT ingest available Take a feed over a lossy link, with a passphrase
Publishing point available The far side pushes into Catena instead of being pulled
Synthetic source available Built-in generator to prove the path before a real feed exists
Backup sources with priority available An ordered list; the channel moves to the next one when a source dies
Backup file available A clip goes to air when every source is down
Source quality thresholds available Timeouts, bitrate floor and ceiling, MPEG-TS continuity errors
Source state with a reason available Working, degraded or dead — and why, per source
MPTS ingest with program selection planned Take one multiplex and pick the programs out of it
DVB-C/T/S capture cards planned Channels taken straight off a cable, terrestrial or satellite tuner

Processing

Capability Status What it is
Transcoding to H.264 and H.265 available Bring any source to what viewers' devices actually decode
ABR ladder available Several renditions per channel: resolution, bitrate, GOP, resize strategy per rung
Track selection by id or by language available How each input is turned into an output
Per-track audio encoding available Different codec and bitrate per audio track
Thumbnails available Frames for seek previews and channel tiles, from keyframes or over HTTP
Automatic subtitles from speech in progress Speech recognition turns audio into a subtitle track
Subtitle handling: DVB, teletext, CEA-608 to WebVTT in progress Carry broadcast subtitles through to formats OTT players understand
Hardware transcoding: NVENC, Quick Sync planned GPU density for channel farms instead of CPU-only encoding
Deinterlace planned Interlaced broadcast feeds to progressive for OTT devices
Logo overlay and burned-in text planned Station bug and on-screen text, including a running clock
Loudness normalisation planned Bring channels to a common loudness instead of a manual gain knob
SCTE-35 markers planned Read splice markers and re-emit them across output protocols

Archive, catch-up and timeshift

Capability Status What it is
Archive recording available Record a channel with a depth and size limit
Archive across several disks available Several mount points per streamer, with mount checking and disk state
Archive playback by time range available Play any past interval by its UTC boundaries
Catch-up by programme planned The viewer picks a programme from the guide and it plays from its start
Startover and pause live planned Jump to the beginning of what is on now, and pause a live channel
Relative and absolute timeshift planned Play a fixed number of seconds behind live, or from a wall-clock moment
Time-zone shifted channel planned A separate "+2 hours" feed, read from the archive once and served to everyone
Network PVR planned Subscriber-requested recordings kept beyond the channel's own retention
Protected archive ranges planned Pin an interval so retention will not delete it
Archive replication between streamers planned A recording survives losing the machine that made it
Archive in S3 planned Push depth into object storage instead of local disks
SSD cache for hot archive planned Prime-time catch-up served off SSD without paying for an all-SSD archive

Delivery

Capability Status What it is
HLS and LL-HLS available The default way viewers watch, and its low-latency variant
DASH available The second manifest format, for devices that prefer it
MPEG-TS and fMP4 output available Plain transport for STBs and for other servers
Built-in player available Watch a channel from the console without setting up anything
CDN zones available Viewers are routed by their IP to the streamers of their zone
Load balancer available The player asks one address and is sent to the streamer that carries the channel
Multicast output planned Serve your own subscribers on a managed network by pushing channels into multicast groups
Thumbnail tracks in manifests planned Scrub previews in the player's timeline
Track filtering in the URL planned Ask for a specific subset of video, audio and subtitle tracks
Geo-aware routing planned Pick an edge by the viewer's geography, not only by their subnet
Smooth Streaming (MSS) planned Legacy device and PlayReady path

Access and protection

Capability Status What it is
Operator login and API keys available Credentials for the console and bearer keys for the management API
Join tokens and streamer keys available How a machine is admitted to the cluster and how it authenticates afterwards
Playback authorization backends in progress Catena asks your service whether a session may play; the screen exists, the API is being migrated
Signed playback links planned A hashed link with an expiry and an optional IP binding, checked without calling anyone
Several authorization sources at once planned Ask more than one backend in parallel; the first "yes" wins
Concurrent session limit planned Cap the streams one subscriber may run, and catch shared passwords
Geographic restrictions planned Enforce territorial rights on playback
Domain lock, CORS and IP lists planned Restrict where a stream may be embedded and who may request it
DRM: Widevine, PlayReady, FairPlay planned Studio-grade protection with keys from your DRM vendor over CPIX
DRM over archive and VOD planned The same protection on catch-up and on files, with key rotation

Advertising

Capability Status What it is
Server-side ad insertion planned Ads stitched into the stream, so ad blockers do not see a separate request
Insertion on SCTE-35 cues planned Replace the breaks the broadcaster already marks
Insertion on a schedule planned Breaks where the source carries no markers
Ad decision by your backend planned Which creative a given viewer sees is your system's call
Impression tracking planned Per-viewer records of what was actually shown

Cluster and resilience

Capability Status What it is
Streamer registry available Every machine, its state and its telemetry in one screen
Joining a streamer available A time-boxed window and a token instead of editing files
Automatic channel placement available Central decides which streamer runs which channel
Placement history and reasons available Why a channel is where it is, and what moved it
Recovery from a streamer loss available Channels of a dead machine are re-planned onto the survivors
Configuration delivery available Central holds the settings and tracks desired, synced and applied per streamer
Channel limit per streamer planned Cap how much one machine takes; zero keeps it in the cluster but empty
Database backup and restore planned A supported procedure instead of a hand-written pg_dump
Capacity planning guidance planned How much headroom a cluster needs to survive losing a machine

Observability and operation

Capability Status What it is
Dashboard available The whole installation on one screen: machines, channels, traffic, errors
Streamer telemetry available CPU, network, running channels, archive capacity, uptime, last contact
Live viewer sessions available Who is watching what, from which streamer, with filters and a force-close
Session history available Closed sessions with duration, bytes and the reason they ended
Built-in metrics server available Prometheus-compatible queries and a Grafana data source, without extra parts
Structured logs and traces available Machine-readable logs and OpenTelemetry traces for tracking a request
Retroview available Vendor cloud monitoring with long history and curated alerts
Log screen in the console planned Reading cluster logs without a shell
Alerts by email, Telegram, webhook planned Being told about a dead channel instead of noticing it
SNMP planned Integration with an existing NOC
Events and webhooks planned Push what happened into your systems, with retries
Player-side quality telemetry planned Rebuffering, start time and errors as the viewer's device sees them

The subscriber service

This layer is what turns a stream into a television product. Take it if you have no operator TV system; skip it and connect your own portal over the API if you already have one.

Portals and multi-tenancy

Capability Status What it is
Portal as a tenant planned Separate subscribers, channels and packages on shared infrastructure
Portal branding planned Logo and names used in the apps and the store listings
Own domain per portal planned Each brand answers on its own address
Own API key per portal planned Integrations are scoped to one tenant
One source, several portals planned The same feed serves several brands and is ingested once

Channels, packages and the guide

Capability Status What it is
Channel templates in progress Settings written once and applied to hundreds of channels
Channel catalogue planned Title, logo and guide binding on top of the technical stream
Packages planned Named bundles of channels — the thing a subscriber actually buys
Free packages planned Channels every subscriber gets without a subscription
Guide from XMLTV planned Import the schedule from your provider, refreshed automatically
Guide from the transport stream planned Take EPG out of DVB EIT when there is no XMLTV feed
Guide import diagnostics planned What was fetched, what changed, what failed and when
Programme API planned Query the schedule for apps and integrations

Subscribers and subscriptions

Capability Status What it is
Subscriber accounts planned The person who watches, and what they are entitled to
Login by phone and SMS code planned No passwords for the viewer
Registration on first login planned The account appears when someone first signs in, if you allow it
Playback token per subscriber planned What the streamer checks before letting a session play
Subscriptions to packages planned Access granted and revoked immediately
Blocking a subscriber planned Cut access without losing the account and its history
Trial and promotional periods planned Time-boxed access as a feature, not a cron script
Billing integration planned Your billing drives subscriptions over the API and webhooks

Viewer applications

Capability Status What it is
Android TV and set-top box app planned The main screen for an operator's subscribers
Web player for viewers planned Watching without installing anything
Operator branding planned The app carries your name, logo and store listing
Channel list with now and next planned What is on, and what is on after it
Catch-up from the guide planned Pick a past programme and watch it from the start

Analytics and audit

Capability Status What it is
Viewing sessions available The live and historical record of who watched what
Audience per channel planned Ranking and trends rather than raw sessions
Traffic per subscriber planned Bytes attributable to a subscriber, for billing
Operations audit log planned Who changed what, and when — including subscription changes

Operator staff and permissions

Capability Status What it is
Operator credentials available One login pair and API keys for the whole installation
Several staff accounts planned Named people instead of a shared password
Permission scopes planned Separate rights over infrastructure, content and subscribers

Integration

Capability Status What it is
Management API available Everything the console does, available to your systems
Connecting a third-party portal available Keep the portal you have and drive Catena over the API
OpenAPI schema and SDKs in progress Generated clients instead of hand-written HTTP calls
External channel provisioning planned Catena asks your service which channels should exist and matches it
Outbound webhooks planned Events pushed to your systems, with retries

What Catena does not do

These are deliberately outside the product. Naming them saves a discovery call:

  • Cameras, surveillance, exporting recordings and proxied viewing — connecting cameras (including reaching ones with no public address through an agent), cutting a piece of the archive out into an MP4 file, and proxying playback through the control server are Watcher.
  • WebRTC and NDI — publishing over WHIP, playback over WHEP, NDI ingest and the products built around them are Agora.
  • Baseband, sending channels onward and the DVB transport multiplex — SDI, ASI and ST-2110 ingest, pushing channels out to third parties over RTMP, SRT or MPEG-TS, and building an MPTS with SI/NIT/SDT tables and logical channel numbers are Mcaster. Catena keeps the two directions it needs for its own service: taking a feed in over SRT, and pushing out to multicast for its own subscribers.
  • Conditional access for broadcast — CAS and scrambling for cable and satellite estates. On a managed network, isolation and DRM cover the same ground differently.
  • Billing and tariffs — Catena knows who is entitled to what, never what it costs. Prices, invoices and payments live in your billing system, which drives Catena over the API.