Broadcast radio as video
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
logovideo 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 (
mp4afor 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:
- Pick File mode.
- Select the new visual asset (the still or clip you want to switch to).
- Tick Keep input audio during blackout.
- 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}/statusreturnskeep_input_audio: truein the blackout block while the swap is active.
FAQ
keep_input_audio = true, so only the video is replaced — the encoder reads the live audio from the input Channel and forwards it untouched. For a radio source the live audio is the entire programme; preserving it is the whole point.logo as a valid video codec — it is H.264 underneath. The Recording carries the same V+A pair that goes to the Destinations.keep_input_audio = true (which counts as a real transition for idempotency, not a skip).Source Synchronized Encoding (SSE) — bit-identical redundancy
Run two encoders against the same source so a packager or CDN can fail one entrypoint over to the other on a per-segment basis without manifest discontinuity.
Protect a Live stream with multi-DRM
Register a DRM provider and attach it to a Publishing — through the UI, through the API, or both.