Ir al contenido

Streams API

En la interfaz de Astra, puedes gestionar las configuraciones de Stream y controlar su estado utilizando métodos HTTP API.

{
"id": "...",
"name": "...",
"type": "...",
"enable": true,
"input": [""]
}
  • name - nombre del stream
  • type - tipo de stream spts o mpts
  • enable - true si el stream está habilitado
  • input - lista de entradas del stream
  • otras opciones dependen de la configuración del stream.

Solicitud: GET /api/stream-info/{id}

  • id - identificador único del stream

La respuesta será un JSON con la configuración del stream

Solicitud: POST /control/

{
"id": "...",
"cmd": "set-stream",
"stream": { ... }
}
  • id - identificador único del stream
  • stream - configuración del stream

Encender o apagar el stream. Solicitud: POST /control/

{
"cmd": "toggle-stream",
"id": "..."
}
  • id - identificador único del stream

Solicitud: POST /control/

{
"cmd": "restart-stream",
"id": "..."
}
  • id - identificador único del stream

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 stream
  • input – 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.

Solicitud: POST /control/

{
"cmd": "set-stream",
"id": "...",
"stream": {
"remove": true
}
}
  • id - identificador único 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 campo id del cuerpo o el segundo segmento de la ruta en GET /api/stream-status/{id}. El stream debe estar en ejecución.
  • t - número, opcional. El campo t del cuerpo o el parámetro de consulta en GET. 1 (predeterminado) devuelve las estadísticas del último intervalo de monitorización completado, 0 la última muestra del analizador. Cualquier otro número responde con el error not implemented. Una cadena numérica decimal se lee como su número; cualquier otro valor cuenta como 1.

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. Para t=1, el final del intervalo del reporte. Para t=0, la hora de la última muestra de la entrada de origen, 0 antes de la primera muestra o mientras ninguna entrada es el origen
  • instance - nombre de la instancia si está definido en Configuración → General → Nombre de la instancia
  • name - nombre del stream
  • input_id - número de la entrada en el aire, 1 para la primera entrada. 0 en el reporte de intervalo de un stream inactivo y en un stream mpts: su origen es la entrada 0, la salida del multiplex
  • active - true si el stream está activo, o false si el stream funciona bajo demanda y está inactivo
  • onair - true si la entrada activa funciona sin errores
  • sessions - número de sesiones activas en el stream
  • bitrate - bitrate del stream en Kbit/s
  • pes_error - número de paquetes PES inválidos
  • sc_error - número de paquetes TS encriptados. Si el stream está protegido con Conditional Access System (CAS), entonces sc_error y pes_error serán mayores que 0. Si el stream se desencripta con una clave inválida, entonces sc_error será igual a 0 y pes_error será mayor que 0
  • cc_error - contador de errores CC. Un error CC puede ser causado por pérdida o exceso de paquetes
  • video_count - número de streams de video
  • audio_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 cadena id en 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 con no_event.
  • {"stream-status": "er", "error": "not implemented"} - t es un número distinto de 0 y 1.