Skip to content

Per-Camera Recording Configuration & Policies ​

RUSEON Core allows fine-grained recording settings per individual camera, giving administrators complete control over retention periods, disk allocation, and segment durations.


1. Enabling Recording on a Camera ​

Recording can be toggled via the Web Dashboard or REST API:

json
{
  "id": "cam_entrance_01",
  "recording_enabled": true,
  "retention_days": 30,
  "segment_duration": "1h"
}
  • recording_enabled: When set to true, the camera's Ring Buffer automatically registers a subscriber channel for the fMP4 Archiver.
  • retention_days: Overrides the global retention limit specifically for this camera. (e.g., retain security gate footage for 30 days while parking lot footage is retained for 7 days).
  • segment_duration: Duration of each individual .mp4 file (default: 1h).

2. KeyFrame-Aligned File Segmentation ​

The archiver never cuts a video file mid-GOP:

  • When the configured segment_duration (e.g., 1 hour) elapses, the recorder waits for the next incoming KeyFrame (I-Frame).
  • The current .mp4 file is closed cleanly, registered in BadgerDB, and the new hourly file begins with the new KeyFrame.
  • This guarantees that every stored .mp4 file is immediately decodable without missing leading frame references.

3. Monitoring Recording Activity ​

Verify that a camera is actively writing video:

bash
# Check recording status via CLI
ruseon-cli archive status --camera cam_entrance_01

Prometheus metric check:

promql
ruseon_recorder_active_writers{camera_id="cam_entrance_01"} == 1

Released under the MIT License.