Change video storage directory from /storage to /mnt/nfs_share

- Update StorageConfig default base_path in core/config.py
- Update base_path and camera storage_paths in config.json and config.compose.json
- Update Docker Compose volume mounts to use /mnt/nfs_share
- Update start_system.sh to create /mnt/nfs_share directory
- Update convert_avi_to_mp4.sh to use new NFS path
- Update all documentation files to reflect new storage paths
- Videos now stored on NFS server at 192.168.1.249:/mnt/nfs_share/
This commit is contained in:
salirezav
2025-10-14 16:28:00 -04:00
parent e675423258
commit 98c93f9e0e
17 changed files with 48 additions and 50 deletions

View File

@@ -196,7 +196,7 @@ GET /cameras/{camera_name}/config
{
"name": "camera1",
"machine_topic": "blower_separator",
"storage_path": "/storage/camera1",
"storage_path": "/mnt/nfs_share/camera1",
"exposure_ms": 0.3,
"gain": 4.0,
"target_fps": 0,
@@ -306,7 +306,7 @@ GET /storage/stats
**Response**: `StorageStatsResponse`
```json
{
"base_path": "/storage",
"base_path": "/mnt/nfs_share",
"total_files": 150,
"total_size_bytes": 5368709120,
"cameras": {

View File

@@ -20,7 +20,7 @@ This document shows the exact current configuration structure of the USDA Vision
}
},
"storage": {
"base_path": "/storage",
"base_path": "/mnt/nfs_share",
"max_file_size_mb": 1000,
"max_recording_duration_minutes": 60,
"cleanup_older_than_days": 30
@@ -39,7 +39,7 @@ This document shows the exact current configuration structure of the USDA Vision
{
"name": "camera1",
"machine_topic": "blower_separator",
"storage_path": "/storage/camera1",
"storage_path": "/mnt/nfs_share/camera1",
"exposure_ms": 0.3,
"gain": 4.0,
"target_fps": 0,
@@ -70,7 +70,7 @@ This document shows the exact current configuration structure of the USDA Vision
{
"name": "camera2",
"machine_topic": "vibratory_conveyor",
"storage_path": "/storage/camera2",
"storage_path": "/mnt/nfs_share/camera2",
"exposure_ms": 0.2,
"gain": 2.0,
"target_fps": 0,
@@ -121,7 +121,7 @@ This document shows the exact current configuration structure of the USDA Vision
### Storage Settings
| Field | Value | Description |
|-------|-------|-------------|
| `base_path` | `"/storage"` | Root storage directory |
| `base_path` | `"/mnt/nfs_share"` | Root storage directory |
| `max_file_size_mb` | `1000` | Maximum file size (1GB) |
| `max_recording_duration_minutes` | `60` | Maximum recording duration |
| `cleanup_older_than_days` | `30` | Auto-cleanup threshold |
@@ -144,7 +144,7 @@ This document shows the exact current configuration structure of the USDA Vision
| **Basic Settings** | | |
| `name` | `"camera1"` | Camera identifier |
| `machine_topic` | `"blower_separator"` | MQTT topic to monitor |
| `storage_path` | `"/storage/camera1"` | Video storage location |
| `storage_path` | `"/mnt/nfs_share/camera1"` | Video storage location |
| `exposure_ms` | `0.3` | Exposure time (milliseconds) |
| `gain` | `4.0` | Camera gain multiplier |
| `target_fps` | `0` | Target FPS (0 = unlimited) |
@@ -176,7 +176,7 @@ This document shows the exact current configuration structure of the USDA Vision
|---------|-------|--------------------------|
| `name` | `"camera2"` | Different identifier |
| `machine_topic` | `"vibratory_conveyor"` | Different MQTT topic |
| `storage_path` | `"/storage/camera2"` | Different storage path |
| `storage_path` | `"/mnt/nfs_share/camera2"` | Different storage path |
| `exposure_ms` | `0.2` | Faster exposure (0.2 vs 0.3) |
| `gain` | `2.0` | Lower gain (2.0 vs 4.0) |
| `wb_red_gain` | `1.01` | Different red balance (1.01 vs 0.94) |

View File

@@ -78,7 +78,7 @@ const videoUrl = `/api/videos/${videoId}/stream`;
{
"name": "camera1",
"machine_topic": "blower_separator",
"storage_path": "/storage/camera1",
"storage_path": "/mnt/nfs_share/camera1",
"exposure_ms": 0.3,
"gain": 4.0,
"target_fps": 0,

View File

@@ -100,7 +100,7 @@ const CameraConfigForm = () => {
{
"name": "camera1",
"machine_topic": "blower_separator",
"storage_path": "/storage/camera1",
"storage_path": "/mnt/nfs_share/camera1",
"exposure_ms": 0.3,
"gain": 4.0,
"target_fps": 0,

View File

@@ -41,7 +41,7 @@ GET /cameras/{camera_name}/config
{
"name": "camera1",
"machine_topic": "blower_separator",
"storage_path": "/storage/camera1",
"storage_path": "/mnt/nfs_share/camera1",
"exposure_ms": 0.3,
"gain": 4.0,
"target_fps": 0,

View File

@@ -65,7 +65,7 @@ The current config.json for camera1 includes:
{
"name": "camera1",
"machine_topic": "blower_separator",
"storage_path": "/storage/camera1",
"storage_path": "/mnt/nfs_share/camera1",
"exposure_ms": 1.0,
"gain": 3.5,
"target_fps": 0,

View File

@@ -61,7 +61,7 @@ The current config.json for camera2 includes:
{
"name": "camera2",
"machine_topic": "vibratory_conveyor",
"storage_path": "/storage/camera2",
"storage_path": "/mnt/nfs_share/camera2",
"exposure_ms": 0.5,
"gain": 0.3,
"target_fps": 0,

View File

@@ -57,8 +57,8 @@ This system integrates MQTT machine monitoring with automated video recording fr
3. **Setup Storage Directory**:
```bash
sudo mkdir -p /storage
sudo chown $USER:$USER /storage
sudo mkdir -p /mnt/nfs_share
sudo chown $USER:$USER /mnt/nfs_share
```
## Configuration
@@ -79,7 +79,7 @@ Edit `config.json` to configure your system:
{
"name": "camera1",
"machine_topic": "vibratory_conveyor",
"storage_path": "/storage/camera1",
"storage_path": "/mnt/nfs_share/camera1",
"exposure_ms": 1.0,
"gain": 3.5,
"target_fps": 3.0,
@@ -117,7 +117,7 @@ The system provides a REST API on port 8000:
- `GET /machines` - All machine states
- `POST /cameras/{name}/start-recording` - Manual recording start
- `POST /cameras/{name}/stop-recording` - Manual recording stop
- `GET /storage/stats` - Storage statistics
- `GET /mnt/nfs_share/stats` - Storage statistics
- `WebSocket /ws` - Real-time updates
### Dashboard Integration
@@ -131,7 +131,7 @@ The system is designed to integrate with your existing React + Vite + Tailwind +
## File Organization
```
/storage/
/mnt/nfs_share/
├── camera1/
│ ├── camera1_recording_20250726_143022.avi
│ └── camera1_recording_20250726_143155.avi