A comprehensive, open-source solution for managing multi-screen video streaming systems with support for SRT protocol, Docker containerization, and real-time client management.
This system enables organizations to create and manage video walls, digital signage networks, and multi-display streaming setups using recycled or heterogeneous displays. It's designed to be scalable, reliable, and easy to deploy across different hardware configurations.
- Multi-Screen Streaming: Stream video content across multiple displays simultaneously
- SRT Protocol Support: Low-latency, reliable video streaming using SRT protocol
- Client Management: Real-time monitoring and control of streaming clients
- Group Management: Organize displays into logical groups for coordinated streaming
- Video Management: Upload, validate, and manage video content
- Docker Integration: Containerized deployment for easy scaling and management
- Real-time Monitoring: Live status updates and performance metrics
- Error Handling: Comprehensive error management and logging system
- Load Balancing: Distribute streaming load across multiple servers
- Failover Support: Automatic recovery and redundancy
- API-First Design: RESTful API for integration with external systems
backend/
├── app_config.py # Application configuration
├── flask_app.py # Main Flask application
├── blueprints/ # Modular route handlers
│ ├── client_management/ # Client registration and monitoring
│ ├── streaming/ # Video streaming endpoints
│ ├── group_management/ # Display group operations
│ ├── video_management/ # Video file handling
│ └── docker_management/ # Container orchestration
├── services/ # Business logic services
└── endpoints/ # API endpoint definitions
frontend/
├── src/
│ ├── core/ # Core application components
│ ├── features/ # Feature-specific components
│ │ ├── ClientsTab/ # Client management interface
│ │ ├── StreamsTab/ # Streaming control interface
│ │ └── VideoFilesTab/ # Video file management
│ └── shared/ # Shared components and utilities
│ ├── ui/ # Reusable UI components
│ ├── API/ # API client and utilities
│ └── ErrorSystem/ # Error handling system
client/
├── client.py # Main client application
├── requirements.txt # Python dependencies
└── setup_client.sh # Automated setup script
- Backend Server: Deploy the Flask backend with Docker support
- Frontend Interface: Access the React-based management interface
- Client Devices: Install Python clients on Raspberry Pi or other devices
- Clients connect to the server and register their display capabilities
- Server assigns unique identifiers and tracks client status
- Clients report their hardware specifications and streaming capabilities
- Upload video files through the web interface
- System validates video format and creates streaming configurations
- Content is organized into playlists and schedules
- Create streaming groups by selecting displays and content
- Configure streaming parameters (quality, protocol, synchronization)
- Start streaming with real-time monitoring and control
- Real-time status updates for all clients and streams
- Performance metrics and error reporting
- Remote control capabilities for troubleshooting
- Python 3.8+: Core application logic
- Flask: Web framework and API server
- Gunicorn: Production WSGI server
- Docker: Containerization and deployment
- FFmpeg: Video processing and streaming
- SRT Protocol: Low-latency video streaming
- React 18: Modern UI framework
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- Vite: Fast build tool and dev server
- Shadcn/ui: High-quality component library
- Python 3.8+: Cross-platform compatibility
- Requests: HTTP client for server communication
- FFmpeg: Video playback and streaming
- Raspberry Pi OS: Optimized for embedded displays
- Python 3.8+
- Docker and Docker Compose
- Node.js 18+ (for frontend development)
- FFmpeg installed on client devices
cd backend
pip install -r requirements.txt
python flask_app.pycd frontend
npm install
npm run devcd client
chmod +x setup_client.sh
./setup_client.sh- Backend API Documentation: Detailed API endpoints and configuration
- Frontend Development Guide: Component architecture and development
- Raspberry Pi Setup Guide: Complete client setup instructions
- Project Documentation: Research papers and technical documentation
- Shopping malls and retail environments
- Corporate lobbies and meeting rooms
- Transportation hubs and public spaces
- Control rooms and monitoring centers
- Event venues and entertainment spaces
- Educational institutions and training facilities
- Conference rooms and presentation spaces
- Exhibition halls and trade shows
- Home theater and gaming setups
- Documentation: Check the docs folder for detailed guides
- Issues: Report bugs and feature requests on GitHub
- Community: Join discussions in our community forums
- Email: Contact the development team for enterprise support