# IPCam Orange Pi Dashboard — Architecture

## Thành phần

- IP Cameras (RTSP, H264)
- MediaMTX (proxy WebRTC + recorder + Control API)
- Backend FastAPI
  - MediaMTX API wrapper
  - Scheduler ghi hình theo lịch
  - Recording index API + serve file video
  - Lưu cấu hình (camera list + schedule)
- Frontend React
  - Live grid (WebRTC)
  - Playback (file list + HTML5 video)
  - Settings (camera + schedule)

## Luồng dữ liệu

- Live: Camera → MediaMTX → WebRTC → Browser
- Playback: Camera → MediaMTX → fMP4 trên đĩa → Backend serve → Browser

## API hợp đồng (mức tối thiểu)

- `GET /api/health`
- `GET /api/paths` (trạng thái stream từ MediaMTX)
- `GET /api/config` (camera + schedule)
- `POST /api/recording` (bật/tắt ghi hình ngay)
- `POST /api/scheduler/enabled` (bật/tắt scheduler)
- `POST /api/scheduler/schedule` (cập nhật lịch)
- `GET /api/recordings?camera=cam1&date=YYYY-MM-DD`
- `GET /videos/<camera>/<file>.fmp4`

