API de flujo

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

Los parámetros configurables son similares a los utilizados en la configuración de la interfaz Astra, puede leer más en los artículos pertinentes sobre la configuración de estos parámetros. Más información

Configuración del flujo

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

Obtener la configuración de Stream

Versión: 2021-04-12 o posterior

Petición: GET /api/stream-info/{id}

  • id - identificador único de flujo

En respuesta será JSON con la configuración del flujo

Modificar la configuración de Stream

Petición: POST /control/

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

Alternar flujo

Activar/desactivar el flujo. Solicitar: POST /control/

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

::spoiler{title="Ejemplo"} Puede activar o desactivar el flujo ejecutando el siguiente comando:

curl \
    -X POST \
    -user login \
    -d '{"cmd":"toggle-stream", "id":"a001"}' \
    http://server:8000/control/

en caso de que Astra regrese con éxito:

{ "toggle-stream": "ok" }

::

Reiniciar Stream

Petición: POST /control/

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

::spoiler{title="Ejemplo"} Puede reiniciar stream lanzando el siguiente comando:

curl \
    -X POST \
    -user login \
    -d '{"cmd":"restart-stream", "id":"a001"}' \
    http://server:8000/control/

en caso de que Astra regrese con éxito:

{ "restart-stream": "ok" }

::

Entrada activa del interruptor

Elija la entrada activa. Sólo funciona para flujos con los siguientes tipos de copia de seguridad: passive o disable. Petición: POST /control/

{
    "cmd": "set-stream-input",
    "id": "...",
    "input": "..."
}
  • id - identificador único de flujo
  • input - número de entrada. La numeración empieza por 1. Si la opción no está definida, se iniciará la siguiente entrada después de la entrada activa.

::spoiler{title="Ejemplo"} Puede cambiar la entrada de flujo lanzando el siguiente comando:

curl \
    -X POST \
    -user login \
    -d '{"cmd":"set-stream-input", "id":"a001", "input": 2}' \
    http://server:8000/control/

en caso de que Astra regrese con éxito:

{ "set-stream-input": "ok" }

::

Borrar flujo

Petición: POST /control/

{
    "cmd": "set-stream",
    "id": "...",
    "stream": {
        "remove": true
    }
}
  • id - identificador único de flujo

Obtener el estado del flujo

Versión: 2021-04-12 o posterior

Petición: GET /api/stream-status/{id}

  • id - identificador único de flujo

Parámetros de consulta opcionales: GET /api/stream-status/{id}?t={time}

  • time - por defecto es 1 - estadísticas de última hora. 0 - estadísticas del último segundo (estado actual del flujo).

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 del informe, para t=0 es una hora actual
  • instance - nombre de la instancia si se ha definido en Configuración -> General -> Nombre de la instancia
  • name - nombre del flujo
  • input_id - identificador de la entrada activa. por ejemplo, si la primaria funciona bien será 1. si la corriente cambió a la entrada de copia de seguridad será el número de esta entrada
  • active - true si el flujo está activo, o false si el flujo funciona a demanda e inactivo
  • onair - true si la entrada activa funciona sin errores
  • sessions - número de sesiones activas en el flujo
  • bitrate - tasa de bits del flujo en Kbit/s
  • pes_error - número de paquetes PES no válidos
  • sc_error - número de paquetes TS codificados. Si el flujo está protegido con el Sistema de Acceso Condicional (CAS), entonces sc_error y pes_error será mayor que 0. Si el flujo se descifra con una clave no válida, entonces sc_error será igual a 0 y pes_error será mayor que 0
  • cc_error - Contador de errores CC. Los errores de CC pueden deberse a la pérdida de paquetes o a un exceso de
  • video_count - número de secuencias de vídeo
  • audio_count - número de secuencias de audio