Destinations

Destinations

Configura dónde se publican los Live streams — tipos de Destination, proveedores CDN, DRM, rutas de backup y URL de reproducción.

Qué es un Destination

Destinations es la sección del menú lateral que cataloga los endpoints de salida. La entidad subyacente es un Destination — el objeto que manipula la API y que edita el editor. Los dos términos aparecen juntos: la acción de la barra es "Add destination", y el editor edita un Destination.

Un Destination es independiente del Live stream que lo consume: el mismo Destination puede reutilizarse en muchos Live streams, y un Live stream puede emitir a muchos Destinations — directamente o a través de un Destination group.

Cómo funciona

Define

Pulsa Add destination y elige el type del Destination. El resto del formulario depende del tipo elegido — URL de endpoint o grupo multicast, credenciales, ajustes de segmento para HLS / DASH / CMAF, etc.

Enlaza

Enlaza el Destination a un Live stream desde el editor de Live streams — elígelo bajo el campo Destination. Alternativamente, agrupa varios Destinations en un Destination group y enlaza el grupo.

Monitoriza

El estado en runtime del Destination aparece en la fila del Live stream enlazado en On air como una flecha coloreada en el entrypoint Destination; el estado por rendition se muestra como un indicador por peldaño del Encoding group enlazado.

Tipos de Destination

Publishing.type expone un enum cerrado. Las etiquetas canónicas de la API son:

TipoNotas
HLS / TSManifest HLS con segmentos MPEG-TS.
DASHManifest DASH.
CMAFManifest CMAF para entrega DASH / HLS unificada.
RTMPPush RTMP a cualquier URL de ingest RTMP.
Enhanced RTMPPush Enhanced-RTMP para contribución multitrack.
SRTPush SRT (caller) a un listener SRT partner.
STREAMMPEG-TS sobre UDP o RTP, usado para distribución multicast legacy.
SDIOUTFeed SDI baseband para OB o master control.
RecordCaptura el broadcast a disco y produce una grabación.

DRM no es un tipo separado de Destination — es el bloque drm sobre un Destination DASH o CMAF (ver DRM en un Destination abajo).

Proveedores de CDN y entrega

El campo settings_common.provider de un Destination nombra el CDN o la plataforma de entrega a la que apunta el destination. El provider es informativo para algunos tipos y operativamente significativo para otros (notablemente Millicast, donde el provider habilita el hint rtmp_millicast_buffer_millisec; y C21 Live Cloud, donde el provider junto con la cuenta enlazada vincula el Destination a una cuenta C21 Live Cloud registrada).

El catálogo completo de providers está expuesto por GET /c21apiv2/publishing/providers (operationId getPublishingProviders); la matriz de compatibilidad por tipo de la UI vive en publishingProviders en el store de la app de Vue, expresada como listas de exclusión notFor.

Provider (valor de provider)PropósitoTipos de Destination compatibles
AkamaiEntrega por Akamai CDN.DASH, HLS / TS, CMAF, RTMP, SRT, STREAM.
C21 Live CloudLa plataforma gestionada cloud de Cires21. El Destination queda enlazado a una cuenta C21 Live Cloud registrada.DASH, HLS / TS, CMAF, RTMP, SRT, STREAM.
Generic CDNCualquier CDN no listado por nombre. La entrada catch-all.Todos los tipos de Destination.
Millicast (Millicast WebRTC CDN)Fanout WebRTC de Millicast para entrega sub-segundo. El hint rtmp_millicast_buffer_millisec del Destination solo se aplica con provider Millicast.RTMP, Enhanced RTMP.
TransparentCDNEntrega por TransparentCDN.DASH, HLS / TS, CMAF, RTMP, SRT, STREAM.
TwitchIngest a Twitch. RTMP es el ingest canónico.RTMP, Enhanced RTMP.
Unified Streaming (Interface-1)Origen Unified Streaming vía contrato Interface-1.CMAF.
YoutubeIngest a YouTube Live. RTMP es el ingest canónico.HLS / TS, RTMP, SRT, STREAM.
MediaCopilotContribución HLS de un Live stream hacia un Entrypoint de MediaCopilot Live. Requiere una cuenta MediaCopilot contratada vía Cires21. Consulta Contribuir una señal en directo a MediaCopilot Live.Solo HLS / TS.

Configuración por tipo

El resto de esta sección recorre cada tipo de Destination, los bloques settings_* que aplican y las interacciones de DRM / backup / TTL.

HLS / TS

Manifest HLS con segmentos MPEG-TS.

  • Providers compatibles: todos los que no excluyen HLS / TS — en la práctica Akamai, C21 Live Cloud, Generic CDN, TransparentCDN, Youtube, MediaCopilot.
  • settings_extra.hls: segments (número), duration (duración del segmento), ad_duration, max_ad_duration, absolute_path, keep_dvr (solo CMAF; aquí se ignora).
  • Cifrado estático AES-128: settings_extra.aes.{active, key, iv, key_url} activa AES-128 clear-key.
  • DRM: no soportado en HLS / TS en v1 — usa CMAF para entrega protegida en el ecosistema Apple.
  • URLs de backup: una ruta secundaria opcional configurable mediante settings_common.urls.backup_server / settings_common.urls.backup cuando el CDN receptor soporte dual ingest.
MediaCopilot Live (provider = MediaCopilot). Un Destination cuyo provider sea MediaCopilot contribuye el feed HLS en directo a un tenant de MediaCopilot en tiempo real. Los campos Username / Password del editor se renombran a Access Key ID / Secret Access Key, obtenidos del tenant de MediaCopilot. El Live stream enlazado queda limitado a una sola pista de audio y a ninguna pista de subtítulos. Aunque es HLS en el cable, un Destination MediaCopilot se comporta como salida de un solo programa: cuando el Live stream lleva múltiples renditions, solo se contribuye la calidad más alta — MediaCopilot procesa un activo, no una escalera adaptativa. Consulta Contribuir una señal en directo a MediaCopilot Live para el flujo de extremo a extremo.

DASH

Manifest DASH.

  • Providers compatibles: Akamai, C21 Live Cloud, Generic CDN, TransparentCDN.
  • settings_extra.dash: min_buffer_time (segundos), time_shift_buffer_depth (segundos), minimum_update_period (segundos).
  • DRM: soportado vía el bloque drm. La combinación típica es systems = ["Widevine", "PlayReady"] con encryption_mode = cenc.

CMAF

Manifest CMAF para entrega unificada DASH / HLS.

  • Providers compatibles: Akamai, C21 Live Cloud, Generic CDN, TransparentCDN, Unified Streaming (Interface-1).
  • settings_extra.hls: segments, duration, absolute_path, keep_dvr (preserva la ventana DVR previa entre reinicios; solo CMAF).
  • DRM: soportado vía el bloque drm. CMAF es el único tipo que soporta FairPlay (systems = ["FairPlay"] con encryption_mode = cbcs, o un CMAF Widevine + PlayReady en cenc para el ecosistema no-Apple).

RTMP

Push RTMP a una URL de ingest externa.

  • Providers compatibles: Akamai, C21 Live Cloud, Generic CDN, Millicast, TransparentCDN, Twitch, Youtube.
  • settings_common: stream (nombre de stream), urls.primary, urls.backup opcional, username, password.
  • Stream backup name: backup_stream_name más use_stream_backup_name = true. Cuando el flag está activo, el serializer almacena el par como <stream>#<backup> dentro de settings_common.stream; las lecturas separan las dos mitades automáticamente.
  • Hint Millicast: rtmp_millicast_buffer_millisec solo se aplica cuando provider = Millicast.
  • DRM: no aplicable.

Enhanced RTMP

Push Enhanced-RTMP para contribución multitrack.

  • Providers compatibles: Generic CDN, Millicast, Twitch.
  • settings_common: mismo shape que RTMP.
  • DRM: no aplicable.

Para el flujo sub-segundo extremo a extremo contra Dolby Millicast — Real time encoding más contribución RTMP / Enhanced RTMP — consulta Real Time streaming hacia Dolby Millicast.

SRT

Push SRT (caller) a un listener SRT partner.

  • Providers compatibles: todos los que no excluyen SRT — Akamai, C21 Live Cloud, Generic CDN, TransparentCDN, Youtube.
  • settings_common: urls.primary, urls.backup opcional.
  • settings_extra.srt: latency (milisegundos), encryption (AES-128, AES-192 o AES-256; el servidor almacena la longitud entera de la clave en bytes), passphrase. El passphrase se redacta para bearer tokens no System Administrator — las lecturas devuelven ***REDACTED***.
  • DRM: no aplicable.

STREAM

MPEG-TS sobre UDP o RTP. El store publishingProtocols de la UI expone udp:// y rtp:// como los protocolos que un Destination STREAM acepta. Un tercer protocolo, udpr:// (UDP-R), se ofrece cuando la instancia lleva la licencia C21LiveDeploy.

  • Providers compatibles: todos los que no excluyen STREAM — Akamai, C21 Live Cloud, Generic CDN, TransparentCDN, Youtube.
  • settings_common: urls.primary, urls.backup opcional.
  • ttl: entero 0–255, solo se aplica en este tipo.
  • DRM: no aplicable.

SDIOUT

Feed SDI baseband enrutado a la tarjeta SDI de salida de un Device encoder.

  • settings_sdiout: format (uno de los formatos SDI estándar — familias NTSC, PAL, 1080p / 1080i / 720p), encoder (FK al Device propietario de la tarjeta SDI), slot (número de slot SDI en ese Device), channels (número de canales de audio en la salida).
  • Providers: SDI es enrutado local; la matriz de provider CDN no aplica.
  • DRM: no aplicable.

Record

Captura el broadcast a disco y produce una grabación.

  • settings_recording.remotefolder: FK a un RemoteFolder registrado.
  • settings_recording.delete_after: retención en días. El encoder multiplica el valor por 24 para derivar la ventana de purga en horas.
  • Providers: Record es captura local; la matriz de provider CDN no aplica.
  • DRM: no aplicable.

DRM en un Destination

DRM no es un tipo separado de Destination; es el bloque drm sobre un Destination DASH o CMAF. El bloque lleva:

CampoNotas
activeBooleano. Activa la protección.
provider_idFK a un DRM provider validado. Consulta DRM workflow.
contentid≤ 100 caracteres, único por Destination. El identificador que el proveedor upstream espera en las peticiones de claves.
systemsArray de Widevine, PlayReady, FairPlay.
encryption_modecenc o cbcs. Derivado de systems por el servidor — cualquier miembro FairPlay fuerza cbcs; en otro caso cenc. Los clientes pueden omitirlo en escritura; el servidor lo recalcula.

Dos restricciones vienen directamente del esquema:

  • HLS / TS no soporta DRM en v1. Usa CMAF para entrega protegida en el ecosistema Apple.
  • Política de interoperabilidad: FairPlay no puede combinarse con Widevine o PlayReady en el mismo Destination. Divide en dos Destinations — un CMAF / cbcs / FairPlay para Apple y un DASH o CMAF / cenc / Widevine + PlayReady para el resto.

Para el flujo extremo a extremo consulta DRM workflow; para el CRUD de proveedores consulta DRM providers.

URLs de backup y stream backup name

Los tipos que empujan stream (RTMP, Enhanced RTMP, SRT, STREAM, y HLS / TS / DASH / CMAF cuando se alimentan a un origen dual-ingest) aceptan un destino secundario opcional mediante settings_common.urls.backup_server y settings_common.urls.backup.

Cuando el destino espera un nombre de stream secundario, establece backup_stream_name y use_stream_backup_name = true; el serializer almacena el par como <stream>#<backup> dentro de settings_common.stream y la API los devuelve separados.

En runtime, el Operator puede alternar independientemente el estado primary / backup por Destination mediante runtimeTogglePublishings — consulta la pestaña Destinations del panel de runtime en On air. Para destinos cuya URL de backup esté vacía (Record, SDIOUT, STREAM sin backup), primary es el toggle on/off y backup es un no-op.

URL de reproducción

Campo opcional del Destination en el que el operador puede guardar la URL de reproducción correspondiente a esa salida. No la calcula el producto — la persiste tal cual la introduce el cliente para tenerla a mano (compartirla con consumidores, pegarla en un reproductor de prueba o referenciarla desde otra integración). Persistida en settings_common.urls.player.

Opciones comunes

OpciónNotas
NameNombre visible reutilizado por UI, API y logs.
DescriptionDescripción libre opcional.
TypeUno de los tipos de Destination anteriores.
ProviderUno de los valores de getPublishingProviders. La compatibilidad contra type la impone la matriz anterior.
Settings (common)Stream name, URLs primary / backup, username / password — según el tipo.
Settings (extra)Parámetros específicos del tipo agrupados por familia: hls, dash, srt, aes.
DRMBloque opcional sobre Destination DASH / CMAF.
TTLIP TTL para paquetes UDP / RTP — solo aplica con type = STREAM.
Backup stream nameNombre de stream secundario; persistido junto al primario como se describe arriba.

Las credenciales (stream keys, passphrases SRT, usuarios y contraseñas RTMP, credenciales de DRM providers) se almacenan cifradas. Los Operators solo ven valores enmascarados en la UI; los valores completos no se devuelven nunca por la API.

En el editor de Destination los campos se agrupan visualmente en dos fieldsets: Basic data (Name, Type) y Destination configuration (Provider, Stream name, Primary server, Primary URL, Backup server, Username, Password). Los campos Backup server, Username y Password solo se renderizan para tipos que aceptan credenciales.

FAQ

Copyright © 2026