Lightweight RTSP/MJPEG stream health monitor for heterogeneous camera networks
1.1K
StreamPulse is a minimal Python-based microservice for monitoring the operational health of heterogeneous IP camera networks.
It was designed during the expansion of a mixed-infrastructure deployment consisting of low-cost consumer cameras (such as TP-Link Tapo) and custom Raspberry Pi camera nodes running MotionEye. As the number of independent devices increased, conventional NVR monitoring and simple ping checks became insufficient to confirm real video availability or client accessibility.
To address this, StreamPulse implements a two-part architecture:
Monitor Service – periodically connects to configured RTSP and MJPEG endpoints, captures a frame, and records the success or failure as a heartbeat log in an SQLite database. Web GUI Service – provides a Flask-based dashboard for configuration, visualization, and on-demand live frame verification. A simple YAML configuration defines each stream’s name and URL. Both the monitor and the GUI read from this configuration, ensuring lightweight synchronization without external dependencies.
SQLite is used as the database to minimize hardware requirements and enable deployment on single-board computers (Raspberry Pi, Orange Pi, etc.).
Content type
Image
Digest
sha256:fb485f69c…
Size
135.8 MB
Last updated
8 months ago
docker pull devprincekumar/streampulse:2.1.1-sla-ready