Streams API
En la interfaz de Astra, puedes gestionar las configuraciones de Stream y controlar su estado utilizando métodos HTTP API.
Configuración de Stream
Sección titulada «Configuración de Stream»{ "id": "...", "name": "...", "type": "...", "enable": true, "input": [""]}name- nombre del streamtype- tipo de streamsptsomptsenable-truesi el stream está habilitadoinput- lista de entradas del stream- otras opciones dependen de la configuración del stream.
Obtener configuración de Stream
Sección titulada «Obtener configuración de Stream»Solicitud: GET /api/stream-info/{id}
id- identificador único del stream
La respuesta será un JSON con la configuración del stream
Modificar configuración de Stream
Sección titulada «Modificar configuración de Stream»Solicitud: POST /control/
{ "id": "...", "cmd": "set-stream", "stream": { ... }}id- identificador único del streamstream- configuración del stream
Activar o desactivar Stream
Sección titulada «Activar o desactivar Stream»Encender o apagar el stream. Solicitud: POST /control/
{ "cmd": "toggle-stream", "id": "..."}id- identificador único del stream
Reiniciar Stream
Sección titulada «Reiniciar Stream»Solicitud: POST /control/
{ "cmd": "restart-stream", "id": "..."}id- identificador único del stream
Cambiar entrada activa
Sección titulada «Cambiar entrada activa»Elegir la entrada activa. Funciona solo para streams con los siguientes tipos de respaldo: passive o disable. Solicitud: POST /control/
{ "cmd": "set-stream-input", "id": "...", "input": "..."}id- identificador único del streaminput– número de entrada. La numeración comienza desde 1. Si la opción no está definida, se iniciará la siguiente entrada después de la entrada activa
La lista inputs del stream en Monitorización muestra qué entradas están en marcha.
Eliminar Stream
Sección titulada «Eliminar Stream»Solicitud: POST /control/
{ "cmd": "set-stream", "id": "...", "stream": { "remove": true }}id- identificador único del stream
Obtener estado del Stream
Sección titulada «Obtener estado del Stream»Estadísticas de un stream en ejecución, del módulo de monitorización. Solicitud: POST /control/ o GET /api/stream-status/{id} con el parámetro opcional ?t={time}. Ambos solo para control. Un observador recibe 404.
{ "cmd": "stream-status", "id": "a001", "t": 0}id- cadena, obligatorio. Identificador del stream: el campoiddel cuerpo o el segundo segmento de la ruta enGET /api/stream-status/{id}. El stream debe estar en ejecución.t- número, opcional. El campotdel cuerpo o el parámetro de consulta enGET.1(predeterminado) devuelve las estadísticas del último intervalo de monitorización completado,0la última muestra del analizador. Cualquier otro número responde con el errornot implemented. Una cadena numérica decimal se lee como su número; cualquier otro valor cuenta como1.
Ambos puntos de entrada responden con los mismos cuerpos.
El intervalo de monitorización es el ajuste tsdb_interval, 60 segundos si no está definido.
Respuesta:
{ "timestamp": 0, "instance": "...", "name": "...", "input_id": 1, "active": true, "onair": true, "sessions": 0, "bitrate": 0, "packets": 0, "pes_error": 0, "sc_error": 0, "cc_error": 0, "video_count": 1, "audio_count": 1}timestamp- hora Unix. Parat=1, el final del intervalo del reporte. Parat=0, la hora de la última muestra de la entrada de origen,0antes de la primera muestra o mientras ninguna entrada es el origeninstance- nombre de la instancia si está definido en Configuración → General → Nombre de la instancianame- nombre del streaminput_id- número de la entrada en el aire,1para la primera entrada.0en el reporte de intervalo de un stream inactivo y en un streammpts: su origen es la entrada0, la salida del multiplexactive-truesi el stream está activo, ofalsesi el stream funciona bajo demanda y está inactivoonair-truesi la entrada activa funciona sin erroressessions- número de sesiones activas en el streambitrate- bitrate del stream en Kbit/spes_error- número de paquetes PES inválidossc_error- número de paquetes TS encriptados. Si el stream está protegido con Conditional Access System (CAS), entoncessc_errorypes_errorserán mayores que 0. Si el stream se desencripta con una clave inválida, entoncessc_errorserá igual a 0 ypes_errorserá mayor que 0cc_error- contador de errores CC. Un error CC puede ser causado por pérdida o exceso de paquetesvideo_count- número de streams de videoaudio_count- número de streams de audio
En un stream mpts los valores son los de la salida del multiplex: onair es true, bitrate es la salida del multiplexor en Kbit/s, y los contadores de errores y de streams elementales son 0.
Respuestas de error, todas con estado 200:
{"stream-status": "er", "error": "stream id not defined"}- no hay una cadenaiden el cuerpo, o no hay identificador en la ruta. Un identificador que no se decodifica del URI cuenta como ausente.{"stream-status": "er", "error": "stream not found"}- no hay un stream en ejecución con ranura de monitorización para este identificador: identificador desconocido o vacío, stream desactivado o stream conno_event.{"stream-status": "er", "error": "not implemented"}-tes un número distinto de0y1.