integrate webcam support with real-time detection
This commit is contained in:
59
GEMINI.md
Normal file
59
GEMINI.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Media Analyzer
|
||||
|
||||
## Project Overview
|
||||
|
||||
This project is a real-time video streaming and AI analysis platform. It ingests RTMP video streams, processes them with computer vision AI models, and provides live analysis results through a responsive web dashboard.
|
||||
|
||||
The architecture is based on microservices and includes:
|
||||
|
||||
* **Backend**: A Django application that handles video stream management, AI processing, and WebSocket communication for real-time updates.
|
||||
* **Frontend**: An Angular single-page application that provides a user interface for stream viewing and analysis visualization.
|
||||
* **AI Processing**: A Python-based analysis engine that uses various adapters for different types of analysis, such as object detection, logo detection, and motion analysis. The engine can be configured to run locally, on a remote LAN worker, or in the cloud.
|
||||
* **Streaming**: An NGINX server with the RTMP module ingests video streams and converts them to HLS for web playback.
|
||||
* **Infrastructure**: The entire platform is containerized using Docker and can be deployed with Docker Compose for development or Kubernetes for production.
|
||||
|
||||
## Building and Running
|
||||
|
||||
### Docker Compose (Development)
|
||||
|
||||
To run the application in a development environment, use Docker Compose:
|
||||
|
||||
```bash
|
||||
# Start all services
|
||||
docker compose up
|
||||
|
||||
# Run migrations (in a separate terminal)
|
||||
docker compose --profile tools up migrate
|
||||
```
|
||||
|
||||
The application will be accessible at the following URLs:
|
||||
|
||||
* **Frontend**: `http://localhost:4200`
|
||||
* **Backend API**: `http://localhost:8000`
|
||||
* **RTMP Stream**: `rtmp://localhost:1935/live`
|
||||
* **HLS Stream**: `http://localhost:8081/hls`
|
||||
|
||||
### Kubernetes (Production-like)
|
||||
|
||||
To deploy the application to a Kubernetes cluster, you can use the provided scripts:
|
||||
|
||||
```bash
|
||||
# Build and push images to a local registry
|
||||
./k8s/build-for-ctlptl.sh
|
||||
|
||||
# Deploy to Kubernetes
|
||||
kubectl apply -k k8s/overlays/development
|
||||
|
||||
# Check deployment status
|
||||
kubectl get pods -n media-analyzer
|
||||
|
||||
# Access the application via port forwarding
|
||||
kubectl port-forward service/frontend -n media-analyzer 4200:80
|
||||
```
|
||||
|
||||
## Development Conventions
|
||||
|
||||
* **Backend**: The backend is a Django application. Follow Django best practices for development.
|
||||
* **Frontend**: The frontend is an Angular application. Follow Angular best practices for development.
|
||||
* **AI Processing**: The AI processing engine is designed to be extensible. To add a new analysis capability, create a new adapter and integrate it with the `AnalysisEngine`.
|
||||
* **Testing**: The project includes a `test_unified_ai.py` file, which suggests that there is a testing framework in place. Run existing tests and add new ones when making changes.
|
||||
Reference in New Issue
Block a user