FlotillasGPS - Sistema completo de monitoreo de flotillas GPS

Sistema completo para monitoreo y gestion de flotas de vehiculos con:
- Backend FastAPI con PostgreSQL/TimescaleDB
- Frontend React con TypeScript y TailwindCSS
- App movil React Native con Expo
- Soporte para dispositivos GPS, Meshtastic y celulares
- Video streaming en vivo con MediaMTX
- Geocercas, alertas, viajes y reportes
- Autenticacion JWT y WebSockets en tiempo real

Documentacion completa y guias de usuario incluidas.
This commit is contained in:
FlotillasGPS Developer
2026-01-21 08:18:00 +00:00
commit 51d78bacf4
248 changed files with 50171 additions and 0 deletions

View File

@@ -0,0 +1,377 @@
# Configuracion de Video Streaming
Guia para configurar camaras y video streaming en FlotillasGPS.
## Arquitectura de Video
```
Camaras en Vehiculos Servidor Dashboard/App
| | |
[Dashcam] --RTSP--> [MediaMTX] --WebRTC--> [Navegador]
[DVR] --RTSP--> | --HLS----> [App Movil]
[Cam IP] --RTSP--> |
|
[Grabaciones]
/opt/flotillas/videos/
```
## Tipos de Camaras Soportadas
### 1. Dashcams con RTSP
Marcas recomendadas:
- **Viofo** (A129, A139) - Excelente calidad, WiFi
- **BlackVue** (DR900X, DR750X) - Premium, Cloud opcional
- **Thinkware** (U1000, Q800) - Buena integracion
Requisitos:
- Soporte RTSP
- Conexion WiFi o Ethernet
- Alimentacion 12V continua
### 2. DVR Vehiculares
Para flotas comerciales:
- **Hikvision Mobile DVR** - 4/8 canales
- **Dahua Mobile DVR** - Industrial
- **Howen** - Economico
Caracteristicas:
- Multiples canales (interior, exterior, lateral)
- Almacenamiento local SD/HDD
- 3G/4G integrado
### 3. Camaras IP Genericas
Cualquier camara con:
- Protocolo RTSP u ONVIF
- Resolucion minima 720p
- Alimentacion PoE o 12V
### 4. Celular como Dashcam
La app FlotillasGPS puede usar la camara del celular:
- Sin costo adicional
- Calidad depende del celular
- Consume bateria y datos
---
## Configuracion de Camaras
### Obtener URL RTSP
Formato tipico:
```
rtsp://usuario:password@IP:puerto/stream
```
Ejemplos por marca:
| Marca | URL RTSP |
|-------|----------|
| Hikvision | `rtsp://admin:pass@IP:554/Streaming/Channels/101` |
| Dahua | `rtsp://admin:pass@IP:554/cam/realmonitor?channel=1&subtype=0` |
| Viofo | `rtsp://IP:554/live/ch00_0` |
| Generic | `rtsp://IP:554/stream1` |
### Verificar Stream
Antes de agregar al sistema, probar con VLC o ffprobe:
```bash
# Con ffprobe
ffprobe rtsp://admin:pass@192.168.1.100:554/stream1
# Con VLC
vlc rtsp://admin:pass@192.168.1.100:554/stream1
```
### Agregar Camara en el Dashboard
1. Ir a detalle del vehiculo > pestaña **Video**
2. Click **+ Agregar camara**
3. Completar:
- **Nombre**: Ej. "Frontal", "Interior"
- **Posicion**: Frontal, Trasera, Interior, Lateral izq/der
- **Tipo**: RTSP, ONVIF
- **URL Stream**: URL RTSP completa
- **Usuario/Password**: Si requiere autenticacion
4. Click **Probar conexion**
5. Si funciona, click **Guardar**
---
## Configuracion de MediaMTX
### Configuracion Basica
El archivo `/etc/mediamtx/mediamtx.yml` ya viene configurado. Opciones importantes:
```yaml
# WebRTC (para dashboard web)
webrtc: yes
webrtcAddress: :8889
webrtcAllowOrigin: '*'
# HLS (para app movil y compatibilidad)
hls: yes
hlsAddress: :8888
hlsSegmentDuration: 1s
hlsSegmentCount: 3
```
### Agregar Camara Manualmente
Si necesitas agregar una camara directamente:
```bash
# Via API de MediaMTX
curl -X POST http://localhost:9997/v2/config/paths/add/cam_vehiculo1_frontal \
-H "Content-Type: application/json" \
-d '{
"source": "rtsp://admin:pass@192.168.1.100:554/stream1",
"sourceOnDemand": true,
"sourceOnDemandStartTimeout": "10s",
"sourceOnDemandCloseAfter": "10s"
}'
```
### Verificar Streams Activos
```bash
# Listar paths
curl http://localhost:9997/v2/paths/list
# Ver estado de un path
curl http://localhost:9997/v2/paths/get/cam_vehiculo1_frontal
```
---
## Conexion de Red
### Opcion 1: Router 4G en Vehiculo
```
[Camara] --Ethernet/WiFi--> [Router 4G] --Internet--> [Servidor]
```
Configuracion:
1. Router 4G con IP publica o VPN
2. Port forward del puerto RTSP al servidor
3. O usar VPN para conexion segura
Routers recomendados:
- Teltonika RUT240/RUT955
- Mikrotik LtAP
- Sierra Wireless
### Opcion 2: Camara con 4G Integrado
Camaras con SIM integrada:
- Hikvision DS-2CD6425G1
- Dahua IPC-HFW4X31E-SE
Ventaja: Sin router adicional
Desventaja: Mas costoso, SIM por camara
### Opcion 3: VPN Site-to-Site
```
[Vehiculo] --VPN--> [Servidor]
|
[Camara con IP local]
```
Configuracion:
1. Router en vehiculo con cliente VPN (WireGuard/OpenVPN)
2. Servidor con servidor VPN
3. Acceso a camara via IP de VPN
---
## Grabacion de Video
### Tipos de Grabacion
1. **Continua**: Graba todo el tiempo
2. **Por eventos**: Solo cuando hay alertas
3. **Manual**: Iniciada por el operador
4. **Programada**: En horarios especificos
### Configuracion de Grabacion
En el dashboard, por camara:
- **Grabar continuo**: Si/No
- **Grabar eventos**: Si/No
- **Calidad continuo**: Baja/Media/Alta
- **Calidad eventos**: Media/Alta
- **Pre-evento**: Segundos antes del evento (buffer)
- **Post-evento**: Segundos despues del evento
- **Solo con motor encendido**: Si/No
### Almacenamiento
Estimacion de espacio:
| Calidad | Bitrate | Por hora | Por dia (10h) |
|---------|---------|----------|---------------|
| Baja (480p) | 1 Mbps | 450 MB | 4.5 GB |
| Media (720p) | 2 Mbps | 900 MB | 9 GB |
| Alta (1080p) | 4 Mbps | 1.8 GB | 18 GB |
Para 20 vehiculos con grabacion continua 720p:
- Por dia: 180 GB
- Por mes: 5.4 TB
Recomendacion:
- Grabacion continua solo en horario laboral
- O solo grabacion por eventos
### Retencion
Configurar en **Configuracion** > **Retencion de datos**:
- Videos continuos: 7-14 dias
- Videos de eventos: 30-90 dias
Script de limpieza automatica:
```bash
# Ejecutar diariamente via cron
find /opt/flotillas/videos -name "*.mp4" -mtime +30 -delete
```
---
## Ver Video en el Dashboard
### Video en Vivo
1. Ir a **Video** > **En Vivo**
2. Seleccionar layout (1, 2x2, 3x3)
3. Click en celda para seleccionar camara
4. Controles:
- **Pantalla completa**: Expandir
- **Captura**: Tomar screenshot
- **Grabar**: Iniciar grabacion manual
### Video Sincronizado con Viaje
1. Ir a **Viajes** > seleccionar viaje > **Replay**
2. El video se sincroniza con la posicion en el mapa
3. Usar timeline para navegar
### Buscar Grabaciones
1. Ir a **Video** > **Grabaciones**
2. Filtrar por:
- Vehiculo
- Camara
- Fecha/hora
- Tipo (continua, evento, manual)
3. Click para reproducir
4. Descargar si es necesario
---
## Eventos de Video
### Deteccion Automatica
El sistema puede detectar eventos basados en:
- **Datos de GPS**: Frenado brusco, aceleracion, impacto
- **Sensores de camara**: G-sensor integrado
- **Alertas del sistema**: Al generar alerta, marca el video
### Configurar Deteccion
En **Configuracion** > **Video** > **Eventos**:
- Umbral de frenado brusco: -0.5 G
- Umbral de aceleracion: 0.4 G
- Umbral de impacto: 2.0 G
### Revisar Eventos
1. Ir a **Video** > **Eventos**
2. Lista de eventos con severidad
3. Click para ver clip
4. Marcar como revisado
5. Agregar notas
---
## Solucion de Problemas de Video
### Camara no conecta
1. Verificar URL RTSP es correcta
2. Verificar credenciales
3. Verificar conectividad de red
4. Probar con ffprobe:
```bash
ffprobe -v error rtsp://admin:pass@IP:554/stream
```
### Video con lag alto
Posibles causas:
- Ancho de banda insuficiente
- Servidor sobrecargado
- Bitrate muy alto
Soluciones:
- Reducir calidad en camara
- Usar sub-stream (menor resolucion)
- Verificar conexion de datos del vehiculo
### Video se corta frecuentemente
Posibles causas:
- Conexion 4G inestable
- Timeout de conexion
Soluciones:
- Aumentar timeouts en MediaMTX
- Configurar reconexion automatica
- Usar buffering mas largo
### No se guardan grabaciones
Verificar:
```bash
# Espacio en disco
df -h /opt/flotillas/videos
# Permisos
ls -la /opt/flotillas/videos
# Logs de MediaMTX
journalctl -u mediamtx -f
```
---
## Seguridad
### Autenticacion
- URLs RTSP internas no expuestas a internet
- Acceso a video solo via dashboard autenticado
- Tokens temporales para streams
### Encriptacion
- RTSP puede usar RTSPS (SSL)
- WebRTC usa DTLS (encriptado por defecto)
- HLS puede usar HTTPS
### Mejores Practicas
1. No exponer puertos de video directamente a internet
2. Usar VPN para acceso remoto a camaras
3. Cambiar credenciales default de camaras
4. Actualizar firmware de camaras regularmente