Files
media-analyzer/def/README.md
2025-08-25 04:03:28 -03:00

2.7 KiB
Raw Blame History

Media Analyzer

Real-time video streaming and AI analysis platform that demonstrates modern cloud-native architecture and machine learning integration. The system ingests RTMP video streams (from sources like OBS), processes them with computer vision AI models, and provides live analysis results through a responsive web dashboard.

Features

  • Video Ingestion: Accept RTMP streams and convert to HLS for web playback
  • AI Processing: Real-time object detection (YOLO) and scene analysis (CLIP) on video segments
  • Live Dashboard: Angular frontend with WebSocket-powered real-time analysis overlays
  • Scalable Architecture: Kubernetes-deployed microservices with configurable processing modes
  • Cloud Integration: GCP services integration while maintaining platform agnostic design

Tech Stack

  • Backend: Django + Django Channels, PostgreSQL, Redis, Celery
  • AI/ML: OpenCV, YOLO, CLIP, Whisper (Hugging Face Transformers)
  • Frontend: Angular 17+ with HLS.js video player and Canvas overlays
  • Infrastructure: Docker containers, Kubernetes, NGINX
  • Streaming: FFmpeg for RTMPHLS conversion, WebSocket for real-time data

Quick Start

Option 1: Docker Compose (Development)

# Start all services
docker compose up

# Run migrations (in separate terminal)
docker compose --profile tools up migrate

# Access the application
# Frontend: http://localhost:4200
# Backend API: http://localhost:8000
# RTMP Stream: rtmp://localhost:1935/live
# HLS Stream: http://localhost:8081/hls

Option 2: Kubernetes (Production-ready)

# Build and push images to 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 via port forwarding
kubectl port-forward service/frontend -n media-analyzer 4200:80

Architecture

  • Django Backend: Main API server with WebSocket support for real-time communication
  • Celery Workers: Distributed task processing for AI analysis (logo detection, visual analysis)
  • PostgreSQL: Primary database for application data and analysis results
  • Redis: Cache and message broker for Celery tasks
  • Angular Frontend: Single-page application with real-time video analysis overlays
  • NGINX RTMP: Stream ingestion server for OBS and other RTMP sources

Development

The system supports both local development with hot reload and production deployment:

  • Development: Uses Angular dev server and Django development server
  • Production: Uses nginx for static files and optimized Docker images

Demo

Stream video from OBS Studio to rtmp://localhost:1935/live and watch real-time AI analysis in the web dashboard with live object detection overlays.