33 lines
995 B
Markdown
33 lines
995 B
Markdown
# 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`
|
|
|