Live stream¶
media.live.streams
Un live stream en Sapsan es un stream con nombre que reúne la captura de medios, su procesamiento y su entrega a los consumidores. Los medios llegan y se procesan a medida que aparecen nuevos fotogramas. El stream tiene una configuración y un estado actual. Bajo un mismo nombre puede haber:
- Vídeo — varias calidades.
- Audio — pistas en distintos idiomas.
- Subtítulos — pistas de texto.
Todos siguen siendo pistas del mismo stream.
En un servidor individual, el live stream gestiona el pipeline multimedia en ejecución. En central, el mismo stream se representa como un objeto del clúster: sus funciones pueden ejecutarse en varios servidores a la vez.
Stream en un servidor¶
Una instancia local del stream es un gestor del pipeline. Conecta los componentes de procesamiento, les proporciona la configuración y gestiona su ciclo de vida. La composición del pipeline depende de la configuración y del papel de este servidor en el servicio del stream.
| Componente | Función |
|---|---|
| Entrada | Recibe medios de una fuente o acepta una publicación. Gestiona la conexión, las reconexiones y la selección de la fuente de reserva. |
| Transcodificador | Decodifica y codifica los medios según la configuración del stream, generando los códecs y la escalera de calidades necesarios. |
| Procesamiento | Realiza el procesamiento configurado: extracción de subtítulos, generación de miniaturas y procesamiento de metadatos y eventos. Tareas como el reconocimiento de voz pueden trabajar sobre un archivo ya grabado. |
| Segmentador | Compone segmentos y segmentos parciales, y mantiene una ventana en directo para la entrega por segmentos. |
| Grabación DVR | Envía los segmentos preparados al subsistema de archivo y supervisa el estado de la grabación. |
| Pushes | Envían medios a los destinos configurados. Cada destino tiene su propio estado de conexión y reconexión. |
| Retransmisores y suscriptores | Reciben fotogramas o segmentos del stream para entregarlos a espectadores y otros servidores mediante los protocolos correspondientes. |
Los datos se distribuyen por varias ramas: el mismo resultado del procesamiento puede enviarse simultáneamente al archivo, a los pushes y a la entrega a espectadores. Cada espectador adicional no requiere una captura y transcodificación independientes. La entrega por segmentos lee los segmentos preparados, mientras que los protocolos de transmisión continua reciben un flujo de fotogramas o paquetes de transporte.
El gestor acepta los cambios de configuración, actualiza los componentes y recopila su estado. La reconexión de la entrada, la recuperación de un push y el reinicio del transcodificador forman parte del ciclo de vida del pipeline local. Cambiar parámetros o recuperar un componente puede interrumpir la parte correspondiente del procesamiento.
Más información sobre los componentes:
Stream del clúster en central¶
Central almacena la configuración general del stream: qué fuente capturar y qué funciones realizar. El operador la modifica mediante la API de central. El layouter determina qué streamers servirán el stream y con qué roles. Central genera y entrega a cada servidor la configuración de su parte del trabajo.
Así, un único stream del clúster tiene varias representaciones locales. El servidor de captura ejecuta el pipeline de captura y procesamiento. En el streamer DVR, el mismo stream recibe medios preparados para grabarlos. En un edge, atiende la entrega a espectadores y utiliza una caché cuando es necesario. Cada servidor realiza las funciones que le asigna su configuración.
| Nivel | Qué describe |
|---|---|
| Stream del clúster | La configuración general y el nombre del stream, que se mantienen cuando cambia su ubicación. |
| Asignación | Qué streamer desempeña un rol concreto: captura, grabación del archivo o entrega. |
| Instancia local | El pipeline que se ejecuta en el servidor con la configuración que ha recibido. |
La distribución permite utilizar varios servidores a la vez para distintas funciones de un mismo stream. Por ejemplo, la captura y la transcodificación pueden ejecutarse en un servidor con el hardware adecuado, el archivo puede grabarse en almacenamiento dedicado y la entrega puede atenderse desde edges cercanos a los espectadores. Los roles disponibles y sus reglas de asignación se describen en la ubicación de streams.
Ejemplo de distribución¶
El stream news tiene activadas la transcodificación y la grabación del archivo. Utiliza los siguientes servidores:
- Servidor A — captura: recibe la fuente y genera la escalera de calidades.
- Servidor B — grabación: recibe los medios preparados de A y graba el archivo.
- Servidores C y D — entrega: reciben los medios en directo de A, leen el archivo de B y atienden a los espectadores. Con la caché del archivo activada, las solicitudes repetidas pueden atenderse localmente.
El operador gestiona un único stream, news. En los servidores se ejecutan distintas partes de su procesamiento y entrega. Añadir un edge no requiere crear otro stream gestionado por el operador con un nombre diferente.
Cambios y fallos¶
Cuando cambia la ubicación, central entrega configuraciones actualizadas a los streamers afectados. El nombre y la configuración general del stream del clúster se mantienen; pueden cambiar el conjunto de instancias locales y las funciones que realizan.
La recuperación local y la reasignación en el clúster resuelven tareas diferentes. El propio streamer reconecta su entrada o cambia a una fuente de reserva configurada. El layouter decide trasladar el trabajo a otro servidor según el estado del clúster y las reglas de ubicación.
Si se pierde la conexión con central, un streamer que ya está en ejecución sigue utilizando la última configuración aplicada. La entrega de nuevos ajustes y la reasignación requieren un plano de control operativo. Los estados de los componentes y servidores individuales deben considerarse en conjunto: que un edge entregue los medios correctamente no confirma por sí solo que la grabación del archivo continúe en el streamer DVR.