System Components
Meridian VMS is composed of several components that work together to provide continuous video recording, live streaming, and AI-powered detection. Each component runs as a managed service on the host operating system.
Management Server
Section titled “Management Server”The management server is the central hub of the deployment. It hosts the web interface, the API, the database, and the messaging infrastructure.
Web Interface
Section titled “Web Interface”A modern, responsive browser-based application that provides all operator and administrator functionality:
- Dashboard — System-wide statistics, camera health overview, and recent activity.
- Live View — Real-time camera streams with configurable grid layouts, saved views, and PTZ control.
- Playback — Timeline-based recorded footage review with scrubbing, zoom, and multi-camera synchronised playback.
- Events — Browsable feed of AI detection events with thumbnails, filtering by camera, type, time range, and detection zone.
- Alarms — Alarm management with definitions, standard operating procedures (SOPs), escalation workflows, and lifecycle tracking.
- Heatmaps — Visual heat overlays showing detection density per camera over configurable time periods.
- Settings — System configuration including cameras, servers, locations, users, roles, AI detection, alarm definitions, and notification channels.
REST API
Section titled “REST API”The API powers the web interface and serves as the integration point for external systems. Key functional areas include:
- Authentication and user management
- Hierarchical location management
- Camera configuration and status
- Live stream proxying
- Recorded playback and timeline queries
- Event and alarm management
- Dashboard statistics
- Saved camera layouts
- Detection heatmap data
The API also provides the endpoints that recording servers use for registration, heartbeat reporting, segment indexing, and event submission.
Database
Section titled “Database”The relational database stores all persistent application state. See Data Management for details on what data is stored and how it is organised.
Messaging
Section titled “Messaging”A messaging layer provides real-time push communication from the management server to recording servers. When an administrator makes a configuration change (such as adding, removing, or modifying a camera), the change is pushed to the affected recording server immediately. This eliminates the need to restart services when configuration changes.
Recording Server
Section titled “Recording Server”Each recording server is responsible for video ingestion, storage, and optionally AI detection for its assigned cameras. A deployment can have one or many recording servers.
Stream Relay
Section titled “Stream Relay”The stream relay ingests RTSP streams from IP cameras and makes them available to all downstream consumers on the recording server. It serves several critical purposes:
- Connection management — Many IP cameras have strict limits on concurrent RTSP connections. The relay ensures only one connection is made to each camera, regardless of how many consumers need the stream.
- WebRTC live streaming — The relay provides WebRTC endpoints for sub-second latency live viewing in browsers.
- Consistent local source — All recording, detection, and streaming processes connect to the relay rather than directly to cameras, providing a single point of stream management.
Recording Engine
Section titled “Recording Engine”The recording engine runs one process per camera, capturing the stream from the local relay and writing it to disk as time-based segments. Key characteristics:
- Stream copy only — The original camera bitstream is written directly to disk with no transcoding. This preserves full quality and uses minimal CPU.
- Configurable segment duration — Segments are typically 10 minutes long, aligned to wall-clock boundaries for predictable organisation.
- Automatic indexing — Completed segments are automatically reported to the management server for inclusion in timeline and playback queries.
- Self-healing — If a recording process fails, it is automatically restarted with exponential backoff to handle transient camera or network issues.
AI Detection Engine
Section titled “AI Detection Engine”An optional component that runs GPU-accelerated object detection on camera streams. The detection engine:
- Captures frames from the stream relay at a configurable rate.
- Runs inference using a trained model on the GPU.
- Filters results by configurable detection zones and object classes per camera.
- Posts detection events and heatmap data to the management server.
- Runs as a separate process, fully isolated from the recording pipeline to ensure detection issues never impact recording.
See the AI Detection documentation for full details on detection capabilities, zones, and configuration.
Local API
Section titled “Local API”A lightweight service on each recording server that serves segment files for playback and provides health information. The management server proxies playback requests to this service, so clients never need direct access to recording servers.
Reverse Proxy
Section titled “Reverse Proxy”In production deployments, a reverse proxy (such as nginx) sits in front of the management server to handle TLS/SSL termination and serve the web interface. This is configured as part of the deployment process.
Service Summary
Section titled “Service Summary”| Component | Role | Runs On |
|---|---|---|
| Management API and Web UI | Central control, configuration, playback, events | Management Server |
| Database | Persistent storage for all metadata and configuration | Management Server |
| Messaging | Real-time push communication to recording servers | Management Server |
| Recording Daemon | Stream capture, segmentation, indexing, health monitoring | Each Recording Server |
| Stream Relay | RTSP ingestion, WebRTC live streaming | Each Recording Server |
| AI Detection Engine | GPU-accelerated object detection (optional) | Each Recording Server |
| Local API | Segment file serving and health reporting | Each Recording Server |
Network Ports
Section titled “Network Ports”The following ports must be accessible for the system to function:
| Port | Protocol | Direction | Purpose |
|---|---|---|---|
| 443 (or 80) | HTTPS/HTTP | Clients to Management | Web interface and API access |
| 8554 | TCP | Cameras to Recorder | RTSP stream ingestion |
| 8889 | TCP/UDP | Clients to Recorder (via Management) | WebRTC live streaming |