Emitir radio como vídeo
Available in: UI · API
Usa este how-to para emitir una fuente de radio (un Channel cuyo contenido principal es el audio) como un Live stream estilo TV. La pista de vídeo es una imagen o clip corto programable que el encoder transcodea; la pista de audio es siempre el directo de entrada. La pista visual se puede ir cambiando a lo largo del día — un fondo distinto por programa — sin interrumpir el audio nunca.
La feature combina dos piezas:
- El codec de vídeo
logodel Encoding, que transcodea una imagen estática o un clip corto como vídeo H.264. Consulta la referencia de Encoding profiles para el listado de codecs. - El flag Keep input audio during blackout en la operación de runtime Blackout, que genera el slate vídeo-only y reenvía el audio en directo del Channel sin tocar. Consulta Hacer blackout o sustituir el programa de un Live stream para la superficie completa de Blackout.
Cuándo usar esto
Cuando el contenido del Live stream es fundamentalmente audio — un programa de radio, un feed musical — pero el entregable es una señal estilo TV que espera una pista de vídeo. Patrón típico: una emisora de radio difunde un feed de audio continuo; el operador quiere una pista visual distinta por cada segmento del programa, sustituida sin cortar el audio nunca.
Prerrequisitos
- Un Channel cuyo audio en directo es fiable (SRT, Stream u otro Channel que transporte audio).
- Un usuario con rol Operator o System Administrator.
- Uno o más ficheros de medios (imágenes estáticas o clips cortos) subidos como Assets con
fileType: "files"— son las pistas visuales entre las que el encoder alternará.
Via UI
Crea un Encoding con el codec logo
En Encodings → Profiles, crea un Encoding nuevo. Configura:
- Video codec a
logo. - Bitrate, Size width y FPS a los valores que esperan los Destinations — una escala H.264 SD típica vale (por ejemplo 854×480 @ 25 fps, 1000 kbps).
- Audio codec según el habitual (
mp4apara AAC); el audio es el directo del Channel, y los ajustes de audio del encoder controlan cómo se empaqueta.
Guarda el Encoding.
Enlaza el Encoding a un Live stream
Crea o edita un Live stream cuya Source sea el Channel de radio y cuyo Encoding sea el creado arriba. Configura los Destinations como de costumbre.
Arranca el Live stream
Arráncalo desde el detalle del Live stream o desde On air. La salida lleva el logo asset configurado en el Encoding como pista de vídeo y el audio en directo del Channel de radio como pista de audio.
Sustituye la imagen sin interrumpir el audio
Abre On air, expande la fila del Live stream en emisión y cambia a la pestaña Blackout:
- Elige el modo File.
- Selecciona el nuevo asset visual (la imagen o clip al que quieras cambiar).
- Marca Keep input audio during blackout.
- Envía.
La nueva imagen aparece en la salida en unos segundos; el audio sigue sin interrupción. Repite la operación cada vez que quieras cambiar la imagen.
Para volver al logo base configurado en el Encoding, elige el modo Live (que reanuda la salida por defecto del Encoding enlazado).
Via API
El flujo por API es el mismo que por UI: configura el Encoding con video_codec = logo, y luego dispara las sustituciones visuales con runtimeApplyBlackout y keep_input_audio = true.
Sustituir la imagen; conservar el audio en directo:
curl -X POST "https://<tu-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 }'
Volver al logo configurado (imagen base):
curl -X POST "https://<tu-host>/c21apiv2/livestreams/<livestreamId>/runtimeOptions/blackout" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "mode": "Live" }'
Para la superficie API completa (body, respuesta, códigos de error, idempotencia sobre el flag keep_input_audio), consulta Hacer blackout o sustituir el programa de un Live stream y la subsección Blackout de la referencia de On air.
Verificar
- La fila del Live stream en On air refleja el modo Blackout actual y el fichero visual activo.
- Un reproductor consumiendo los Destinations publicados muestra la nueva imagen en unos segundos tras el swap y no reporta corte de audio.
- Un
GET /c21apiv2/livestreams/{livestreamId}/statusposterior devuelvekeep_input_audio: trueen el bloque de blackout mientras el swap está activo.
FAQ
keep_input_audio = true, así que solo se sustituye el vídeo — el encoder lee el audio en directo del Channel y lo reenvía sin tocar. Para una fuente de radio el audio en directo es todo el programa; preservarlo es el punto entero.logo como un video codec válido — es H.264 por debajo. La grabación lleva el mismo par V+A que va a los Destinations.keep_input_audio = true (que cuenta como transición real para la idempotencia, no un skip).Source Synchronized Encoding (SSE) — redundancia bit-idéntica
Ejecuta dos encoders contra la misma fuente para que un packager o CDN pueda hacer failover por segmento entre los dos entrypoints sin discontinuidad en el manifest.
Proteger un Live stream con multi-DRM
Registra un DRM provider y asócialo a un Publishing — desde la UI, desde la API o ambas.