Features
Everything below is in the current release. Every feature is also documented in the built-in Help.
Cameras
- Records the camera's RTSP stream directly. Adding a camera by a plain RTSP URL, for cameras without ONVIF, is coming soon.
- Automatic setup for ONVIF cameras: discovery (WS-Discovery) and capability probing (Profiles S/T/G/M), with optional daily re-probing.
- Main and Sub stream selection, per-stream enable and rename, H.264 and HEVC, with audio.
- Multi-lens cameras are split into one camera per lens.
- Vendor integrations matched automatically by make and model (for example, Dahua / Amcrest smart events).
- Groups for sites, buildings, and floors.
Recording
-
One Windows-service recorder node per machine, with as many nodes as you need. Recording is
ffmpeg -c copy, so no re-encoding. - Recording modes: Continuous, Motion, Schedule, and Event, set globally or per camera, with pre/post-roll.
- Retention set globally, per node, and per camera, plus per-camera quotas and a disk watermark backstop.
- An optional archive volume (SMB share or USB drive) that receives aged-out footage instead of deleting it.
- Recording failover to a backup node, and a maintenance mode.
- Self-updating nodes: each build is approved once, and then every node installs it.
- Nodes keep recording through a server or database outage, even across a reboot.
Detection & events
- Server-side motion detection with polygon zones or a mask grid.
- Camera events over ONVIF, with user-defined event tag rules and timeline colors.
- Built-in AI object detection (YOLOX, D-FINE, or your own ONNX model) on NVIDIA, AMD, Intel, or CPU, or an external HTTP inference service.
- Live bounding boxes, object badges on live tiles, and a cropped snapshot for every detected object.
- Object tracking (ByteTrack), confidence scores, optional high-resolution snapshots, and a Slice mode that tiles wide or panoramic cameras so small objects are still detected.
AI hardware
AI detection is optional and set per camera. A node without it still records, and still uses server motion, camera events, and vendor integrations. The node picks a backend at startup:
| Hardware | Backend | Needed on the node |
|---|---|---|
| NVIDIA GPU | CUDA (falls back to DirectML) | CUDA Toolkit 12.x and cuDNN 9.x. TensorRT 10.x is optional, for extra speed. |
| AMD / Intel GPU | DirectML | A current GPU driver |
| No GPU | CPU | Nothing |
Models are never bundled. The built-in YOLOX models are downloaded from the server on first use, and you can drop any
.onnx model onto a node. 5–7 fps per camera is enough for accurate detection and tracking.
Tested hardware
LarisVMS has been run in real environments on:
- Windows: Windows 11, Windows Server 2022, and a Windows Server 2022 guest VM on Hyper-V 2022 with RTX 2070 GPU passthrough
- Recording storage: NVMe, Hyper-V virtual disks (on NVMe), a Windows Storage Pool passed through to a Hyper-V VM, and SMB file shares
- AMD Ryzen 7 5800X3D
- Intel Core i5-12600K, including object detection on its integrated GPU via DirectML
- NVIDIA GeForce RTX 2070: the main testing GPU and a dedicated recording node (DirectML, CUDA, and TensorRT FP32)
- NVIDIA GeForce RTX 4080 Super (DirectML, CUDA, and TensorRT FP16)
Viewing
- Saved camera-wall views with drag-and-drop layout, a fullscreen kiosk mode, and rotation.
- Adaptive live streaming that uses Sub streams for small tiles.
- Synchronized multi-camera playback on a zoomable timeline, with preview thumbnails and 1/32× to 32× speed. Switch any live tile to playback in place.
- Multi-camera exports, bookmarks, and a snapshots browser.
- Basic PTZ controls.
- Video relayed through the server, through media proxies, or sent directly from node to browser.
- A phone-friendly layout, installable as an app from Chrome on Android or Safari on iOS, with pinch-to-zoom on timelines and in fullscreen.
- Dark mode.
On your phone
The whole interface works in a phone browser, with the sidebar behind the ☰ button. To install it as an app, open it in Chrome on Android and choose Install app from the ⋮ menu, or in Safari on iOS choose Share → Add to Home Screen. It opens full screen, under your branding name. Installing needs a certificate the phone trusts; see Use it on your phone.
Administration
- Roles, a permissions matrix, and per-camera/group access control, with auto-expiring role assignments and PTZ priority between roles.
- Optional Microsoft Entra ID sign-in.
- Alert rules that watch a camera or node, sent by email (SMTP, Microsoft Graph, Gmail), webhook, ntfy, Pushover, Slack, and Teams.
- Audit log, system logs, scheduled database backups, and a health dashboard with per-camera fps, bitrate, and reconnects.
- API keys for automation, and a monitoring status endpoint.
- IP allow lists, an optional separate port for video traffic, and secrets encrypted at rest.
- Branding: app name, colors, font, and logo.
- Built-in Help with documentation for every feature.
Known limitations
- Windows only, for both the server and the recorder nodes.
- Cameras are currently added through ONVIF. Adding a camera by a plain RTSP URL is coming soon.
- Privacy-mask burn-in and camera-side motion zones can be configured, but are disabled pending fixes.
- Bounding boxes from the camera's own analytics aren't shown; only LarisVMS's own detection draws boxes.
- PTZ and Entra ID sign-in haven't been tested against real hardware or a real tenant.
- Active Directory integration is in the works.
- Some features listed may have placeholders (webhooks, Teams/Slack integration)
- Basic email functionality should work with SMTP. Graph API email has not been tested yet
Found something else? Please open an issue.