How Tos

Broadcast radio as video

Run a radio Channel as a Live stream where the visual track is a programmable still or short clip, the audio is always the live feed, and the visual can be swapped without interrupting the audio.

Available in: UI · API

Use this how-to to broadcast a radio source (a Channel whose primary content is the audio feed) as a TV-style Live stream. The video track is a programmable still or short clip transcoded by the encoder; the audio track is always the live input. The visual can then be swapped through the day — a different background per programme — without ever interrupting the audio.

The feature combines two pieces:

  • The logo video codec on the Encoding, which transcodes a still image or short clip as H.264 video. See the Encoding profiles reference for the codec list.
  • The Keep input audio during blackout flag on the runtime Blackout operation, which generates the slate video-only and forwards the live audio of the input Channel untouched. See Black out or replace the program on a running Live stream for the full Blackout surface.

When to use this

When the Live stream's content is fundamentally audio — a radio programme, a music feed — but the deliverable is a TV-style signal that expects a video track. Typical pattern: a radio station broadcasts a continuous audio feed; the operator wants a different visual behind each segment of the programme, swapped without ever cutting the audio.

Prerequisites

  • A Channel whose live audio is reliable (SRT, Stream, or another audio-carrying Channel).
  • A user with the Operator or System Administrator role.
  • One or more media files (still images or short clips) uploaded as Assets with fileType: "files" — these are the visual tracks the encoder will swap between.

Via UI

Create an Encoding with the logo codec

In Encodings → Profiles, create a new Encoding. Set:

  • Video codec to logo.
  • Bitrate, Size width and FPS to the values the Destinations expect — a typical H.264 SD ladder works (for example 854×480 @ 25 fps, 1000 kbps).
  • Audio codec to your usual choice (mp4a for AAC); the audio is the live input of the Channel, and the encoder's audio settings control how it is packaged.

Save the Encoding.

Bind the Encoding to a Live stream

Create or edit a Live stream whose Source is the radio Channel and whose Encoding is the one created above. Configure the Destinations as usual.

Start the Live stream

Start it from the Live stream detail or from On air. The output carries the logo asset configured on the Encoding as the video track and the radio Channel's live audio as the audio track.

Swap the visual without interrupting the audio

Open On air, expand the row of the running Live stream, and switch to the Blackout tab:

  1. Pick File mode.
  2. Select the new visual asset (the still or clip you want to switch to).
  3. Tick Keep input audio during blackout.
  4. Submit.

The new visual lands on the output within a few seconds; the audio is uninterrupted. Repeat the operation any time you want to change the visual.

To return to the base logo configured on the Encoding, pick Live mode (which resumes the bound Encoding's default output).

Via API

The API flow mirrors the UI: configure the Encoding with video_codec = logo, then drive visual swaps via runtimeApplyBlackout with keep_input_audio = true.

Swap the visual; keep the live audio:

curl -X POST "https://<your-host>/c21apiv2/livestreams/<livestreamId>/runtimeOptions/blackout" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "File", "file": "afternoon_show.mp4", "keep_input_audio": true }'

Return to the configured logo (base visual):

curl -X POST "https://<your-host>/c21apiv2/livestreams/<livestreamId>/runtimeOptions/blackout" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "Live" }'

For the full API surface (body shape, response, error codes, idempotency on the keep_input_audio flag), see Black out or replace the program on a running Live stream and the Blackout subsection of the On air reference.

Verify

  • The Live stream's row on On air reflects the current Blackout mode and the active visual file.
  • A player consuming the published Destinations shows the new visual within a few seconds of the swap and reports no audio interruption.
  • A subsequent GET /c21apiv2/livestreams/{livestreamId}/status returns keep_input_audio: true in the blackout block while the swap is active.

FAQ

Copyright © 2026