Data Management
Meridian VMS uses a relational database to store all system configuration, metadata, and operational data. Video recordings are stored as files on each recording server’s local disk — the database stores only the index and metadata, not the video itself.
Data Categories
Section titled “Data Categories”Location Hierarchy
Section titled “Location Hierarchy”Meridian VMS organises cameras into a hierarchical location tree with four levels:
- Region — Top-level geographic grouping (e.g., a country or province).
- City — A city or metropolitan area within a region.
- Area — A district, neighbourhood, or campus within a city.
- Site — A specific physical location where cameras are installed.
Cameras and recording servers are assigned to sites. The hierarchy supports operations at any level — for example, viewing all cameras across an entire region, or aggregating statistics for a city.
This tree structure is used consistently throughout the system for navigation, access control, and reporting.
Camera Configuration
Section titled “Camera Configuration”Each camera record stores:
- Display name and location assignment
- Connection details for the camera’s video stream
- Recording server assignment
- Whether recording and AI detection are enabled
- Current operational status (recording, error, or offline)
- Stream properties (resolution, frame rate, bitrate) detected from the camera
- Retention period (how long recordings are kept before automatic deletion)
Recording Index
Section titled “Recording Index”The recording index is the critical link between the database and the video files on disk. For every completed recording segment, the system stores:
- Which camera produced it
- Which recording server holds the file
- The start and end timestamps
- The file size
This index powers the playback timeline, enabling the system to quickly locate the exact segments needed for any time range on any camera. It is also used for storage reporting and retention management.
Detection Events
Section titled “Detection Events”When AI detection is enabled, the system stores events with:
- The camera and time of detection
- The type of object detected (person, vehicle, etc.)
- Confidence score
- Which detection zone the object was in (if zones are configured)
- A reference to a thumbnail image
- The associated recording segment for clip extraction
Events can be browsed, filtered, and used to trigger alarms.
Alarm System
Section titled “Alarm System”The alarm subsystem stores:
- Alarm definitions — Rules that define what triggers an alarm, including detection types, time profiles, affected cameras, standard operating procedures, and escalation levels.
- Alarm instances — Active and historical alarms with their full lifecycle: trigger time, acknowledgement, investigation notes, and closure reason.
- Categories and close reasons — Configurable classification for alarm categorisation and closure.
Users and Access Control
Section titled “Users and Access Control”The system supports role-based access control:
- Users — Accounts with authentication credentials and profile information.
- Roles — Named permission sets that control which pages and actions a user can access.
- Location assignments — Roles can be scoped to specific locations in the hierarchy. A user with a role scoped to a particular site can only see cameras and data within that site and its children.
System Configuration
Section titled “System Configuration”System-wide settings are stored centrally, including:
- AI detection parameters
- Notification channel configurations (Telegram, Discord, email, webhook)
- Saved camera grid layouts for the Live View page
- ONVIF-discovered devices pending camera creation
Video Storage
Section titled “Video Storage”Video recordings are stored as segment files on each recording server’s local disk. The management server’s database contains only the index — a lightweight record for each segment that allows the system to locate and serve the correct files during playback.
This design means:
- No shared storage required — Each recording server uses its own local disks. There is no need for SAN, NAS, or network-attached storage.
- Scalable capacity — Adding storage is as simple as adding disks to a recording server or adding another recording server.
- Recordings stay local — Video data never transits the network except during playback. This minimises bandwidth usage and latency.
Retention
Section titled “Retention”Recordings are automatically deleted after a configurable retention period. Retention can be set at the system level (applying to all cameras) or overridden per camera for different retention requirements.
An automated cleanup task runs periodically on each recording server, removing expired segments from disk and updating the database index accordingly.
Backup Considerations
Section titled “Backup Considerations”- Database — The database should be backed up regularly using standard database backup tools. It contains all system configuration and is essential for system recovery.
- Video recordings — Recordings are large and typically not backed up in full. The retention system manages their lifecycle automatically. Critical footage can be exported as clips through the web interface.
- Configuration files — Server configuration files should be included in your backup strategy.