constatus

Constatus

Constatus monitors, converts, transforms, filters and multiplexes video-feeds. Feeds like IP-cameras, “video4linux”-devices, pixelflut, VNC-servers, Raspberry Pi-cameras, etc. It is an NVR (network video recorder) with special features.

features

compiling

Debian/Ubuntu

You may need libboost-system-dev, see the ‘FAQ’ section at the bottom.

RPM systems:

libgwavi is since version 4.3 not used anymore; you can remove it from your computer if you ony installed it for constatus.

How to use

The program is configured via a text-file. It is processed by libconfig and thus uses that format.

Take a look at the example: constatus.cfg (and the others under examples/). constatus.cfg contains explanations for each and every configuration option.

Constatus can monitor multiple video-sources in 1 instance. For that you have:

instances = ( { … }, { … }, … )

Each instance adds a new { … } section. In such a section one can add multipe interfaces. For example one source, one or more motion-trigger or audio-triggers, one or more http-servers (web-servers) and one or more targets (named “stream-to-disk” altough this can also be network-servers and gstreamer-pipeliens).

Constatus can apply filters in almost every phase. If you add it in the “source”, then this applies to the whole chain. Filters are executed in the order in which they are found on the configuration-file.

As said, constatus can have multiple streamers, filters, etc.; the only drawback is that it uses more cpu. Having available multiple cpus/cores/threads is an advantag for constatus.

Each item has an id. This id can be referred to by other parts of the configuration. You can leave it empty if you like.

If it is unclear what the “selection-bitmap” masks, then try adding it to an “apply-mask” stream-writer or http-server filter. That way you can see which part of the image is masked off.

Apart from the instances where you can define http-servers there is also a global-http-server which allows you to view all instances in one place.

“maintentance” configures the database-connection. Altough it is called maintentance, this database-connection is also used to store the dashboard configuration (each http-user (or 1 for all if no authentication is configured) can put one or more video-sources on one overview page).

“views” are for combinging multiple video-sources into one view. For example the “source-switch” shows multiple sources in a round-robin way, “all” shows them in a mosaic-view and “pip” as picture-in-picture.

“guis” show sources in a window (on your desktop - when running Constatus on e.g. a laptop).

“announcers” announce sources on the local network. It uses SSDP/UPnP/DLNA for that. They are then visible in VLC/windows explorer on systems in the same LAN.

Read README.rest to get to know how the REST interface works.

Check docs/ to see example configuration-files.

Use motion-to-constatus.py to convert a motion configuration file to a constatus configuration file - this requires the libconf package, see https://pypi.python.org/pypi/libconf

This program contains the “Cruft Regular Font”, found to be in the public domain (from http://www.publicdomainfiles.com/show_file.php?id=13501609932993).

FAQ

TIPS

SUPPORT

TO-DO

(C) 2017-2023 by Folkert van Heusden mail@vanheusden.com, Constatus is released under the MIT license