Camera → MediaMTX → recording / live / playback. Thời gian hiển thị theo múi giờ trình duyệt; API nhận Unix milliseconds.
| ID / stream path | Tên | RTSP source | RTSP restream | Trạng thái DB | Thao tác |
|---|
Camera luôn ingest và ghi hình. RTSP restream là URL đã lưu trong DB, backend tự tạo từ MEDIAMTX_RTSP_URL + ID camera. Đồng bộ MediaMTX chạy nền. Xoá camera đã có event sẽ bị backend từ chối (409).
Chưa chọn camera.
Tự mở live khi chọn camera. Bấm/kéo trên vùng xanh để xem lại recording.
Frame timestamp: chưa có
Kéo timeline để chọn mốc trong 10 phút gần nhất; bấm LIVE để về trực tiếp. Timeline và coverage tự cập nhật mỗi 5 giây. Playback dùng MP4 và tự chuyển tiếp sang khoảng còn recording tiếp theo.
Xoá toàn bộ chunk thuộc các khoảng được chọn, không cắt một phần file. Các chunk mới ghi thêm sẽ không tự được chọn. Camera vẫn tiếp tục ghi hình.
| Chọn | Bắt đầu | Kết thúc | Số giây | Chunks |
|---|
Đọc trực tiếp thư mục recordings/ đã mount; chỉ xem/tải. File đang ghi có thể chưa phát được. Khi dùng MediaMTX ở máy khác, danh sách local không phản ánh ổ đĩa máy đó.
| Đường dẫn | Kích thước | Modified |
|---|
Event được lưu trước, worker Celery xuất MP4 [t−3s, t+3s] và upload vào MINIO_BUCKET. Cần bật worker bằng uv run python -m app.worker_main. Path gửi lên chỉ là object key, không kèm bucket.
metadata.source_id phải trùng ID camera trong DB; metadata.video_save_path nằm ngang với frame_path. ID job được tạo theo cách của recorder cũ.
Chưa gửi.
| ID | Camera | Timestamp | Video save path |
|---|
Chọn “Chi tiết” để xem event và job.
Các event đã xuất clip và upload thành công (ready), được lưu trong DB. Video và ảnh đọc từ MinIO, độc lập với TTL recording 10 phút. Danh sách tự cập nhật mỗi 5 giây.
| Request ID | Camera | Thời gian event | Video save path |
|---|
Job của các event trên trang hiện tại; ID job trùng ID event. Chưa có API retry/cancel hay danh sách job độc lập.
| ID | Status | Created at | Attempts | Last note |
|---|