StSupervisor  Version 1.0.8

Ground station STANAG 4609 stream monitor.


StSupervisor is a Ground Station STANAG 4609 stream monitoring service.

StSupervisor Web UI


  • Monitors a pre-configured list of multicast video streams (yaml configuration file)
  • Multiple UAV platforms (with multiple sensors each)
  • Timeout, Bitrate and Klv rate reporting
  • Low latency video preview
  • MISB 0601, 0102, 0903 live decoding
  • Stream parameters detection
  • User defined event triggers based on speed, altitude, location etc
  • MQTT messages for easy integration (InfluxDB, Grafana, etc)
  • Cross platform Windows/Linux. Easy setup - stand alone app / Docker
  • Desktop and mobile UI.

User Guide


StSupervisor uses 2 configuration files:

  • supervisor.yml - application configuration file
  • platforms.yml - platforms, sensors etc configuration file
These configuration files should be located (by default) in the **/config** folder. You can also provide a full path using –appConfig and –platformConfig options.

More on configuration:


To start stream monitoring run stsupervisor.exe (with or without additional command line arguments).


When launched without parameters, StSupervisor will look for supervisor.yml and platforms.yml in the current directory. You can use arbitrary files by supplying –appConfig and –platformConfig arguments. Also, some of the file parameters can be overwritten with the options shown in the Options table.

Command line options


Flag Name Description
–appConfig StSupervisor yaml configuration file. Default - supervisor.yml in root dir
–platformConfig Platforms yaml configuration file. Default - platforms.yml in root dir
–mqttBrokerHost Mqtt broker host url. If not provided, internal mqtt server will be launched
–mqttPort Mqtt broker port
–mqttWsPort Mqtt websocket broker port. Default 9001
–httpPort HTTP server port. Default 8090. Port to access the application.
–httpMonitorStartPort Channel HTTP port. Will start from this value and increment for each instance. Default - 4000
–wsVideoStreamStartPort Web socket video preview stream port. Will start from this value. Default - 9010
–nodeInfo Show NodeInfo string
–licenseFile License file
–licenseKey License Key
–printUsage Print args description (true/false)
-v –version Version
Comand line options will overwrite the correspoding configuration in yml files.

YAML configuration

Basic StSupervisor app configuration

Here is an example of the application configuration file:

# StSupervisor config
httpPort: 8090
# Mqtt section
brokerHost: tcp://localhost
internal: true # use (create) internal MQTT broker
port: 1883
wsPort: 9001
# influxdb section
host: # influxdb server address
port: 8086
database: telegraf
# Stream monitor config section
httpStartPort: 4000 # create stream monitor server starting from port 4000
wsVideoStreamStartPort: 9010 # create websocket starting from port 4000
bitrateReportingPeriod: 1000 # report bitrate every 1000 ms
metadataSampling: 1000 # sample metadata every 1000 ms
timeout: 1000 # report stream timeout after 1000 ms
noSignalAfter: 30000 # report no signal, and restart the monitor (this will allow to receive a different stream on this ip/port )
# licensing section
file: StSupervisor-Lenovo.lic
key: 022B9FA1-9500AD67-86CAD66D-2A459B66

Sensor presentation

StSupervisor presents stream info per sensor (video/data channel). One platform can carry multiple sensors.

Sensor presentation

Stream Info

StSupervisor performs stream parameter detection (on a first stream apearance). Press StreamInfo button in order to access this information.

Stream parameters detection


If STANAG MISB 0601.X metadata is present in the stream, StSupervisor will display it in real time (the sampling frequency can be configured). Press Klv telemetry button to access this information.

MISB 601 Klv metadata

The following standards are supported: -MISB601.X -MISB102.X -MISB903.4

Mqtt broker

If no broker host parameter provided, the StSupervisor will launch an internal broker. You can use any Mqtt broker (note, it must support websockets)

For example, to use Mosca Mqtt broker one can launch it with the following command:

mosca -v --port 1883 --http-port 9001 --http-bundle --http-static ./

Mqtt reporting

Stream Monitor sends events to Mqtt broker in the following format: applicationName/platformId/sensorId/event, where event has one of the following values:

event Description
state Current state
detection Stream detection results (JSON)
bitrate Current stream bitrate
custom events User defined events
config General configuration information - httpServer, wsVideoPreview
demoExpired Demo Expired

For example,


State events

Stream Monitor reports the following stream state events:

  • Unknown. This state will be reported when Stream Monitor goes offline (or not started yet) and therefore there is no info on the stream available.
  • Offline. Stream is not present.
  • Online. Stream is running.
  • Lost. Stream lost (not detected present for the period of time specified by –timeout. After that, the stream is considered as Offline.

You can view Event Timeline by pressing the State icon.

Stream Event Timeline

Bitrate and KlvPacket rate reporting

Stream Monitor periodically sends stream bitrate and STANAG Klv packet rate notifications that are presented as a real time chart. You can configure an update rate, if needed.

Stream and Packet rate chart

Alternatively, you can select another composed chart, like Bitrate and Stream Error Rate reporting.

Bitrate and Stream Error rate chart


Triggers are used to report events / issue commands when certain conditions are met. Stream Monitor will send Mqtt message with "trigger" topic and conditions payload when there is a match. Upon reporting, the trigger is removed from an internal queue.

The logic:

  • Event is fired when the conditions inside the trigger are true (logical AND)
  • Event is fired only once ( if armed state is true). After that, the armed state is set to false. You can reload triggers (Sensor Admin page)
Trigger event timeline

More on Triggers

Sensor Admin

Sensor admin allows you to perform administrative tasks on specific sensor.

Sensor Admin

Stream Calendar

Stream calendar shows the activity history.

Stream Calendar
The data is not stored locally with the application. You must configure the InfluxDB server address in supervisor.yml file in order to be able to collect this information.

HTTP Interface

StSupervisor contains the internal HTTP server, so it can be accessed over http.

More on Http Interface

Untitled 1

 Copyright 2019,    IMPLEOTV SYSTEMS LTD