How Tos

Real Time streaming hacia Dolby Millicast

Emite con latencia extremo a extremo inferior al segundo — Real time encoding en el Live stream, contribución RTMP o Enhanced RTMP y distribución WebRTC de Dolby Millicast.

Lleva una emisión en directo por debajo de 500 ms de latencia glass-to-glass: C21 Live Encoder ejecuta la emisión sobre su pipeline de Real Time encoding y la contribuye por RTMP — o Enhanced RTMP para escenarios multitrack — a Dolby Millicast, cuya CDN WebRTC la distribuye a los espectadores con entrega sub-segundo. La combinación encaja con la interactividad en tiempo real: eventos en directo, deportes, apuestas online y subastas.

Tres piezas componen el flujo, todas configuradas desde C21 Live Control:

PiezaDóndeQué hace
Toggle Real time encodingEditor del Live streamEjecuta la emisión sobre el pipeline de contribución sub-segundo del encoder.
Destination RTMP o Enhanced RTMPConfiguration → DestinationsEmpuja la señal codificada al ingest de Millicast.
Provider Millicast WebRTC CDNEl campo Provider del DestinationAplica el comportamiento de entrega específico de Millicast (hint de buffer RTMP).

Antes de empezar

  • Una cuenta de Dolby Millicast con un publish token: el dashboard de Millicast proporciona la URL de publicación RTMP y la pareja stream name / token que necesita el Destination.
  • Una entrada amigable con la baja latencia — los Channels SDI, NDI o SRT mantienen ajustado el lado de contribución del presupuesto de latencia.
  • Un Encoding con H.264 + AAC — la base segura para la reproducción WebRTC de Millicast en navegadores y dispositivos.
  • Margen de red del host encoder al ingest de Millicast: subida sostenida al bitrate del Encoding, jitter bajo.

Vía UI

Crea el Destination Millicast

Navega: Configuration → Destinations → Add destination. Establece:

  • TypeRTMP para un push de un solo programa, o Enhanced RTMP para contribución multitrack (ver la sección siguiente).
  • ProviderMillicast WebRTC CDN.
  • URL / Stream name — el endpoint de publicación RTMP y el stream name de tu dashboard de Millicast (el token viaja en el stream name, como espera el ingest RTMP de Millicast).

En un Destination RTMP con provider Millicast, el editor expone el campo RTMP Buffer (en milliseconds, por defecto 200) — el hint de buffer del lado cliente que Millicast respeta en la entrega. Bájalo para arañar latencia; súbelo si los espectadores en redes pobres ven cortes.

Enlaza el Destination al Live stream

Añade el Destination (o un grupo de destinos que lo contenga) al Live stream que irá en tiempo real. Consulta Destinations.

Activa Real time encoding

Abre el Live stream en el editor y activa Real time encoding en la columna Options. El flag (real_time_encoding) se persiste en el Live stream y se muestra como Enabled en el panel de detalle del Live stream.

Arranca y verifica

Arranca el Live stream. En el dashboard de Millicast, abre el visor alojado del stream: la señal se reproduce con retardo sub-segundo. En la fila de On air, el indicador del Destination refleja la salud del push.

Enhanced RTMP — contribución multitrack

Donde el RTMP clásico lleva un programa de vídeo y uno de audio, Enhanced RTMP extiende el protocolo para publicar salidas multitrack — múltiples pistas de audio y códecs modernos — en una única sesión. Cires21 validó la implementación contra Dolby Millicast, así que el emparejamiento es operativo, no solo compatible sobre el papel.

Diferencias operativas frente al RTMP clásico:

  • Adaptativo. Enhanced RTMP es uno de los tipos de Destination adaptativos: cuando el Live stream lleva múltiples renditions, se publican todas (el RTMP clásico emite solo la calidad más alta).
  • Multi-audio. Las pistas de audio mapeadas del Live stream viajan en la misma sesión — sin un Destination paralelo por idioma.
  • Engancha al arrancar. Un Destination Enhanced RTMP añadido a un grupo de destinos con la emisión en el aire engancha en el siguiente arranque, no en runtime (el toggle en runtime devuelve 409 — ver Grupos de destinos).
  • RTMP Buffer. El hint RTMP Buffer se respeta solo en el tipo RTMP clásico.

Vía API

Crea el Destination con POST /c21apiv2/crud/publishingsPublishing.type acepta "RTMP" o "Enhanced RTMP" (el alias legacy ERTMP se acepta en escritura y se normaliza a Enhanced RTMP en lectura):

curl -X POST "https://<your-host>/c21apiv2/crud/publishings" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Millicast-RealTime",
    "type": "Enhanced RTMP",
    "settings_common": {
      "provider": "Millicast",
      "urls": { "primary": "rtmp://<millicast-ingest>/v2/pub" },
      "stream": "<streamName>?token=<publishToken>"
    }
  }'

Para un Destination RTMP clásico, settings_extra.rtmp_millicast_buffer_millisec lleva el hint de buffer (respetado solo cuando provider = Millicast). El flag Real time encoding forma parte de la configuración del Live stream — actívalo desde el editor del Live stream; después arranca el Live stream con normalidad (startLivestream).

Presupuesto de latencia

Los sub-500 ms extremo a extremo asumen cada salto afinado:

SaltoQué lo mantiene bajo
Contribución (fuente → encoder)Entrada SDI / NDI / SRT en la misma sede o un enlace de RTT bajo.
EncodeReal time encoding activado en el Live stream.
Ingest (encoder → Millicast)Subida estable, ingest de Millicast geográficamente cercano.
Distribución (Millicast → espectador)Entrega WebRTC — gestionada por Millicast; el hint RTMP Buffer intercambia estabilidad por latencia en el lado del ingest.

FAQ

Copyright © 2026