Real Time streaming hacia 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:
| Pieza | Dónde | Qué hace |
|---|---|---|
| Toggle Real time encoding | Editor del Live stream | Ejecuta la emisión sobre el pipeline de contribución sub-segundo del encoder. |
| Destination RTMP o Enhanced RTMP | Configuration → Destinations | Empuja la señal codificada al ingest de Millicast. |
| Provider Millicast WebRTC CDN | El campo Provider del Destination | Aplica 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,NDIoSRTmantienen 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:
- Type — RTMP para un push de un solo programa, o Enhanced RTMP para contribución multitrack (ver la sección siguiente).
- Provider — Millicast 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/publishings — Publishing.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:
| Salto | Qué lo mantiene bajo |
|---|---|
| Contribución (fuente → encoder) | Entrada SDI / NDI / SRT en la misma sede o un enlace de RTT bajo. |
| Encode | Real 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
Cross-links
- Destinations — los tipos RTMP y Enhanced RTMP y el catálogo de providers.
- Opciones del Live stream — donde aparece el flag Real time encoding.
- On air — salud en runtime del push.
Emitir radio como vídeo
Emite un Channel de radio como un Live stream donde la pista visual es una imagen o clip corto programable, el audio es siempre el directo, y la imagen se puede sustituir sin interrumpir el audio.
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.