Recordings
Recordings is the playback screen at /playback, listed as NVR → Recordings in the sidebar. It groups recorded footage by camera and by day so you can find and play a recording quickly. Viewing it requires the recordings.view permission. The Upload (cloud) actions and the Cloud Upload Status panel are superuser-only.

What you can do here
- Browse recordings grouped by camera, then expanded by day.
- See per-camera and per-day duration and start time summaries.
- Play a day’s footage in the built-in player (HLS with automatic MP4 fallback).
- Queue a day for cloud upload (superuser).
- Track uploads live in the Cloud Upload Status panel (superuser).
At the top, a summary line shows the totals — number of recordings, total duration, and number of cameras. Click Refresh any time to reload the list.
Browse and play a recording
- Each camera appears as a collapsible row showing its name, the number of days with footage, and total duration. (If there’s only one camera, it expands automatically.)
- Click a camera row to expand it. Each day is listed with its date, total duration, and the time recording Started (e.g.
Started 08:14). - Click Play on a day to open the player. OpenNVR requests an HLS playback session for that day’s time range and streams it; if HLS can’t start, it falls back to the day’s MP4 automatically.
In the player
The playback window opens over the page with the camera name, date, and duration in its header. The video controls include:
- Play / Pause
- Back 10s and Forward 10s skip buttons
- Volume (with mute)
- Snapshot — save a still frame
- Speed — via the settings (gear) menu:
0.5x,1x,1.5x,2x - Fullscreen
Close the player with the ✕ in its header. Closing it also releases the HLS playback session on the server.
[!NOTE] Playback needs the Media Server (MediaMTX) running. If it’s offline, the page shows a Playback server offline banner, the day’s button reads Offline instead of Play, and opening it shows a Media Source Disconnected message — the recording files still exist and will play once the server is back.
Queue a day for cloud upload
[!WARNING] This action is superuser-only and requires a cloud recording server to be configured. In offline deployments it is unavailable.
- Expand a camera and find the day you want.
- Click Upload on that day’s row. OpenNVR queues that day’s recording files for cloud upload and reports how many files were queued (and how many missing files were skipped).
- The button briefly shows Queueing…, then Queued.
Cloud Upload Status
When a cloud server is configured and there’s upload activity, a Cloud Upload Status panel appears above the camera list (superuser only). It shows:
- Queue, Completed, and Failed counts.
- A progress bar (animated while the upload worker is running).
- The name of the file currently Uploading, when one is active.
The panel polls every few seconds while you’re on the page and pauses while a recording is open in the player.
[!NOTE] This page lists footage a day at a time per camera. Finer, session-level browsing with a drag-to-select timeline lives in the AI Engine’s Select Recording browser, used when picking footage to run a model against — see AI Engine.
📸 Screenshots to capture
Add these under opennvr-site/public/screenshots/:
recordings-overview.png— the Recordings page with the summary line and at least one collapsed camera row.recordings-camera-expanded.png— a camera expanded to show its per-day rows with Play (and Upload for a superuser).recordings-player.png— the playback window open, showing the video controls.recordings-cloud-upload.png— the Cloud Upload Status panel mid-upload (superuser).