Install C21 Live Encoder
What you install
The C21 Live Encoder product. The installer brings up the encoding engine, auto-detects the hardware drivers the host needs and configures the systemd units that keep the encoder running.
The encoder is headless — it has no UI of its own; it is always controlled remotely from a C21 Live Control instance via the Devices section.
Before you start
Verify the host meets the prerequisites described in Prepare the host. Minimum:
- Ubuntu 24.04 LTS, kernel ≥ 6.8, x86_64
- 4 cores / 8 GiB RAM / 50 GiB free on
/ - HTTPS egress to
get.cires21.comand Docker Hub - Time synced, public DNS resolution
- Ports
80,443,8484free and, if you plan to pair it with Control, reachable from the IP / subnet of the Control host
Steps
1. Run the one-liner installer
curl -fsSL https://get.cires21.com/liveencoder | sudo bash
The installer:
- Verifies the host requirements.
- Auto-detects the hardware (GPU, capture cards, ASI, NICs) and offers to install the matching drivers.
- Installs Docker if needed and pulls the encoder image set.
- Configures the systemd unit and starts the service.
- When a kernel upgrade is required to load a driver, the installer reboots the host and resumes the installation automatically after the reboot.
If you plan to pair this encoder with a Control instance immediately and do not need the hardware detector (for example, on a cloud VM without capture cards), append --skip-drivers -y at the end:
curl -fsSL https://get.cires21.com/liveencoder | sudo bash -s -- --skip-drivers -y
2. Get the host fingerprint
To request the license, get the fingerprint with:
sudo liveencoder license info
The output includes:
C21 Live Encoder — License binding info
========================================
Host fingerprint: ac8933aa237c9efd017598081c7a10d1
License file: /opt/data/config/license.txt
Current license: (not installed)
Required product slots: C21LiveEncoder, Multi Publishing Points (optional), UDP Recovery (optional)
Send the Host fingerprint to your Cires21 representative along with the product slots your contract covers.
3. Install the license
Cires21 will send you a license.txt file:
[C21LiveEncoder]
Expiration=31-12-3000
Quantity=2
Key=<key-1>
[Multi Publishing Points]
Expiration=31-12-3000
Quantity=4
Key=<key-2>
Install it:
sudo liveencoder license install /path/to/license.txt
sudo liveencoder restart
sudo liveencoder license verify
license verify prints each slot with status: true. The service log confirms activation:
INFO [license] License for 2 channels found
INFO [license] License for 4 Publishing Points found
4. Pair with a Live Control instance
Once the encoder is installed and licensed, register it with an existing Live Control instance. From the Control UI:
- Open Devices → Add device.
- Fill in the fields:
UI field Value Alias Display name for the encoder. Server IP LAN IP of the encoder (the API persists it as ip_address).Enabled Leave it active for normal operation. Register username The encoder's built-in admin user ( admin).Register password The adminpassword — see the note below to read or rotate it. - Save. Control handshakes with the encoder, retrieves a remote token and persists it. The Device row appears with
registration_status: registeredandauthed: true.
The Encoder ships with a single admin user, admin. On the encoder host, liveencoder credentials show prints the username to enter here plus the host fingerprint, and liveencoder credentials reset generates a strong password and prints it once — run it before registering if you do not already know the password.
The encoder credentials are one-time, used only at registration. Once the remote token is obtained, the encoder authenticates with that token; rotating the encoder credentials again is a re-registration flow.
Supported platform
| Operating system | Ubuntu 24.04 LTS, x86_64 |
| Kernel | ≥ 6.8 |
| Permissions | root or sudo |
| CPU (minimum / recommended) | 4 cores / 8+ cores |
| RAM (minimum / recommended) | 8 GiB / 16+ GiB |
| Disk (minimum / recommended) | 50 GiB / 200+ GiB (Recordings storage) |
| Network ports | 80, 443, 8484 available on the host |
Docker is installed automatically if it is not already present.
Installer flags
| Flag | Effect |
|---|---|
--unattended, -y, --yes | Non-interactive mode. |
--version <X> | Install a specific version. |
--check-only | Verify requirements without installing. |
--upgrade | Upgrade an existing installation. |
--uninstall | Remove the installation. |
--drivers <set> | Driver subset to install (see table below). |
--skip-drivers | Skip driver detection / installation. |
--skip-gpu-check | Skip the GPU check. |
--skip-docker-images | Do not pull the Docker images in this run. |
--asi-source <ppa|source> | How to install the AudioScience ASI driver. |
--blackmagic-version <v> | Blackmagic DeckLink driver version. |
--nic-drivers | Install NIC drivers (Broadcom + Mellanox DOCA-OFED). |
--keep-data | On uninstall, preserve the data. |
--remove-data | On uninstall, remove the data. |
--debug | Verbose logs. |
--help, -h | Print the flag list. |
Environment variables
| Variable | Effect |
|---|---|
PRODUCT_VERSION | Pin a specific version. |
ENCODER_DOWNLOAD_URL | Override the tarball CDN. |
ASI_METHOD | ASI driver install method. |
BLACKMAGIC_VERSION | Blackmagic driver version. |
UNATTENDED=1 | Non-interactive mode. |
DEBUG=1 | Verbose logs. |
Hardware drivers
The installer auto-detects the available hardware and offers to install the corresponding driver. Each driver is independent — install only what the deployment needs.
| Driver | Purpose |
|---|---|
| Blackmagic DeckLink | SDI capture for SDI Channels. |
| NVIDIA GPU | Hardware NVENC encoding — required for HDR encoding (hevc + hdr_mode != sdr). |
| NVIDIA Container Toolkit | Exposes the GPU to the encoder containers. |
| AudioScience ASI | DVB-ASI capture. |
| Broadcom NIC + Mellanox DOCA-OFED | Required on Supermicro H12SSW-NT hosts; activated with --nic-drivers. |
| NETINT Quadra VPU | Alternative hardware encoder — also supports HDR encoding. |
On hosts without multimedia hardware (for example cloud VMs), all detectors are skipped cleanly. Pass --skip-drivers to skip even the detection phase if you want a faster, quieter install.
Network ports
The encoder binds:
- 80/tcp — Apache HTTP (API).
- 443/tcp — Apache HTTPS (API).
- 8484/tcp —
c21publisher(delivery of outputs).
Loopback only: 11234, 11235 (c21publisher control), 25 (exim4 — internal mail delivery).
When you pair the encoder with a Control, restrict inbound ports 80 / 443 / 8484 to the IP or subnet of the Control host via ufw (see Prepare the host).
Day-to-day operations
The liveencoder CLI is installed alongside the engine. Always run it with sudo.
sudo liveencoder status # Service status + GPU + active streams
sudo liveencoder start
sudo liveencoder stop
sudo liveencoder restart
sudo liveencoder logs [-f] [-n N] # Tail
sudo liveencoder version # CLI version + encoder binary version
sudo liveencoder backup [name]
sudo liveencoder restore <file>
sudo liveencoder gpu # GPU status via nvidia-smi (NVIDIA-only)
sudo liveencoder streams # Active FFmpeg / SRT processes
sudo liveencoder config [show|edit|path]
sudo liveencoder support # Generate a support bundle for Cires21
sudo liveencoder update [version] # `--check`, `--no-backup`, `--force`
sudo liveencoder uninstall # `--force`, `--remove-data`, `--keep-data`
sudo liveencoder license info # Host fingerprint + status
sudo liveencoder license install <file>
sudo liveencoder license verify
sudo liveencoder credentials show # Registration username + fingerprint + password state
sudo liveencoder credentials reset # Generate a strong admin password (printed once)
liveencoder backup produces encrypted files at /var/backups/c21/system/<name>.tar.gz with a 7-day retention.
Cross-links
- Prepare the host — DNS, NTP, ufw, swap before the install.
- Install C21 Live Control — the Control instance the encoder pairs with.
- Updates — update flow for the encoder.
- Licenses — the
C21LiveEncoderlicense (per-host) and the optional add-ons. - Devices — Devices section reference; this is where the registered encoder lands.
- Encodings — Color & HDR fieldset; HDR requires a GPU (NVIDIA NVENC) or a VPU (Netint Quadra) on the encoder.