A vendor-neutral Android application for discovering and streaming from ONVIF-compliant IP cameras on your local network.
- Auto-Discovery: Finds ONVIF cameras using WS-Discovery (UDP Multicast)
- Secure Authentication: WS-UsernameToken with PasswordDigest
- Low-Latency Streaming: RTSP over TCP with optimized buffering
- Responsive Grid: Adaptive layout for multiple camera feeds
- Fullscreen Mode: High-quality main-stream viewing
┌─────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ ┌─────────────┐ ┌────────────────┐ ┌──────────────┐ │
│ │ GridScreen │ │ FullscreenView │ │ AuthDialog │ │
│ └─────────────┘ └────────────────┘ └──────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ ViewModel │ │
│ └──────┬──────┘ │
└─────────────────────────┼───────────────────────────────┘
│
┌─────────────────────────┼───────────────────────────────┐
│ Domain Layer │
│ ┌──────▼──────┐ │
│ │ Repository │ │
│ └──────┬──────┘ │
└─────────────────────────┼───────────────────────────────┘
│
┌─────────────────────────┼───────────────────────────────┐
│ Data Layer │
│ ┌─────────────┐ ┌─────▼─────┐ ┌──────────────────┐ │
│ │ Discovery │ │ ONVIF │ │ Player Manager │ │
│ │ Service │ │ Client │ │ (Media3) │ │
│ └─────────────┘ └───────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘
| Component | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose |
| Streaming | AndroidX Media3 (ExoPlayer) |
| Networking | OkHttp |
| DI | Hilt |
| Architecture | MVVM + Clean Architecture |
- Android 8.0 (API 26) or higher
- Local network with ONVIF-compliant cameras
- Camera credentials (username/password)
./gradlew assembleDebug- Launch the app and tap "Discover Cameras"
- Wait for cameras to appear in the grid
- Tap a camera to enter credentials
- View streams in the grid or tap fullscreen
INTERNET- Network communicationACCESS_WIFI_STATE- Wi-Fi statusCHANGE_WIFI_MULTICAST_STATE- UDP multicast for discoveryACCESS_NETWORK_STATE- Network connectivity
Compatible with all ONVIF Profile S cameras including:
- Hikvision
- Dahua
- Axis
- Amcrest
- Reolink
- And many more...
MIT License - See LICENSE file for details.