Skip to content

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.

The management server is the central hub of the deployment. It hosts the web interface, the API, the database, and the messaging infrastructure.

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.

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.

The relational database stores all persistent application state. See Data Management for details on what data is stored and how it is organised.

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.

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.

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.

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.

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.

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.

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.

ComponentRoleRuns On
Management API and Web UICentral control, configuration, playback, eventsManagement Server
DatabasePersistent storage for all metadata and configurationManagement Server
MessagingReal-time push communication to recording serversManagement Server
Recording DaemonStream capture, segmentation, indexing, health monitoringEach Recording Server
Stream RelayRTSP ingestion, WebRTC live streamingEach Recording Server
AI Detection EngineGPU-accelerated object detection (optional)Each Recording Server
Local APISegment file serving and health reportingEach Recording Server

The following ports must be accessible for the system to function:

PortProtocolDirectionPurpose
443 (or 80)HTTPS/HTTPClients to ManagementWeb interface and API access
8554TCPCameras to RecorderRTSP stream ingestion
8889TCP/UDPClients to Recorder (via Management)WebRTC live streaming