Vcam CCTV Analyzer
Continuous RTSP CCTV monitor with motion detection and cross-channel summaries.
"Hours of CCTV footage, two minutes of attention. The service decides which one of those is yours."
Why it exists.
If you have multiple CCTV cameras and the time it takes to watch them, you don't have a problem. If you don't have that time, you have a different problem: catching the moments that matter without staring at static footage all day.
Vcam is a self-hosted service that watches multiple RTSP CCTV channels around the clock. It detects motion per channel, writes per-channel event logs as it goes, and produces a single combined cross-channel summary every two hours. The summary is the human-facing artefact — short, scannable, and the only thing you need to read most of the time.
Built in Python with OpenCV. Camera credentials live in a YAML config that pulls from .env so they never enter source control. Designed to run on a small box at the location it's monitoring — a Raspberry Pi or any always-on machine — and survive long stretches without supervision.
The surface.
Multi-channel RTSP ingestion
Connects to any number of camera streams configured per channel.
Continuous motion detection
Runs per channel with independent state. Motion events are timestamped on the originating stream.
Per-channel event logs
Every detection writes a record keyed to the originating channel. Easy to review one camera at a time.
Combined cross-channel summary every 2 hours
A single rolled-up artefact across all monitored streams — the file you actually open.
Env-driven secure config
Credentials in .env, never in source. YAML config wires camera streams cleanly.
Under the hood.
Worth knowing.
- Self-hosted by design — runs on a Raspberry Pi or any always-on machine at the location being monitored.
- No web UI; the daily artefact is the summary file.