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 totrue, 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.mp4file (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
.mp4file is closed cleanly, registered in BadgerDB, and the new hourly file begins with the new KeyFrame. - This guarantees that every stored
.mp4file 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_01Prometheus metric check:
promql
ruseon_recorder_active_writers{camera_id="cam_entrance_01"} == 1