StreamBerry-Cam turns your Android device into a professional wireless camera for OBS Studio with ultra-low latency streaming, multiple protocol support, and advanced camera controls.
๐ Quick Start โข ๐ฆ Download โข ๐ Documentation โข ๐ OBS Plugin โข ๐ Report Bug
| ๐ฏ Feature | ๐ Description |
|---|---|
| ๐ฅ Professional Camera Controls | Manual ISO, shutter speed, focus, white balance, and zoom |
| ๐ Ultra-Low Latency | 50-150ms latency with WebSocket protocol |
| ๐ญ 5 Streaming Protocols | WebSocket, HTTP H.264, MJPEG, RTSP, MPEG-DASH |
| ๐บ 4K Support | Stream up to 4K (3840x2160) @ 30fps |
| ๐จ Real-time Filters | Cartoon, Sketch, Vintage, Oil Painting effects |
| ๐ LUT Support | Load custom color grading LUTs |
| ๐ฌ HDR Streaming | High Dynamic Range video capture |
| ๐ฏ AI Face Tracking | Automatic focus tracking with ML Kit |
| ๐ Auto-Discovery | mDNS service for automatic device discovery |
| ๐ฑ Multi-Camera | Switch between front/back cameras on-the-fly |
| โก Hardware Encoding | H.264 hardware acceleration with MediaCodec |
| ๐๏ธ Camera Presets | Save and load custom camera settings |
| ๐ Multi-Protocol Server | All protocols running simultaneously |
| ๐ 100% Free & Open Source | No subscriptions, no ads, forever free |
| ๐ญ Protocol | ๐ Port | โก Latency | ๐ฏ Best For | ๐ Quality |
|---|---|---|---|---|
| โก WebSocket (OBS Droid) | 8080 | 50-150ms | Live streaming, gaming, real-time | โญโญโญโญโญ |
| ๐ฌ HTTP H.264 | 8081 | 100-300ms | Recording, high quality, 4K | โญโญโญโญโญ |
| ๐ธ MJPEG | 8081 | 200-500ms | Maximum compatibility | โญโญโญโญ |
| ๐น RTSP | 8554 | 150-400ms | Professional workflows, lossless 4K | โญโญโญโญโญ |
| ๐ MPEG-DASH | 8081 | 300-1000ms | Adaptive bitrate streaming | โญโญโญโญ |
๐ก Pro Tip: Use WebSocket for lowest latency, RTSP for professional lossless 4K streaming
Option 1: GitHub Releases (Recommended)
# Download latest release
https://github.com/StreamBerryLabs/StreamBerry-Cam/releases/latestOption 2: Build from Source
# Clone repository
git clone https://github.com/StreamBerryLabs/StreamBerry-Cam.git
cd StreamBerry-Cam/android
# Build debug APK
./gradlew assembleDebug
# Build release APK
./gradlew assembleRelease
# APK location:
# Debug: android/app/build/outputs/apk/debug/app-debug.apk
# Release: android/app/build/outputs/apk/release/app-release.apk- Android Version: 7.0 (Nougat) or higher (API 26+)
- RAM: 2GB minimum, 4GB+ recommended for 4K
- Storage: 100MB free space
- Camera: Hardware H.264 encoder recommended
- Network: WiFi or mobile hotspot
Download and install StreamBerry-Cam APK on your Android device.
Allow camera, microphone, and network permissions when prompted.
- ๐ฑ Open StreamBerry-Cam
- ๐ Connect to WiFi (same network as your computer)
- ๐ฅ Tap "Start Streaming"
- ๐ Note your device IP (displayed on screen)
- ๐ฅ๏ธ Open OBS Studio with BerryStreamCam Plugin
- โ Add Source โ Select your device โ Start streaming!
Manual Controls:
- ISO: 100-3200 (device dependent)
- Shutter Speed: 1/8000s to 1s
- Focus: Auto, Manual, Continuous, Macro
- White Balance: Auto, Manual, Daylight, Cloudy, Tungsten, Fluorescent
- Zoom: 1x to 10x digital zoom
- Flash: Off, On, Auto, Torch
Advanced Features:
- HDR Mode: High Dynamic Range capture
- OIS/EIS: Optical and Electronic Image Stabilization
- Exposure Compensation: -3 to +3 EV
- Focus Tracking: AI-powered face detection and tracking
Apply stunning visual effects in real-time:
- ๐ญ Cartoon Filter: Comic book style effect
- โ๏ธ Sketch Filter: Pencil drawing effect
- ๐ท Vintage Filter: Retro film look
- ๐ผ๏ธ Oil Painting Filter: Artistic painting effect
- ๐ LUT Support: Load custom .cube LUT files
Filter Controls:
- Adjustable intensity (0-100%)
- Real-time preview
- Save filter preferences
- Combine with camera settings
Choose the perfect quality for your needs:
| Preset | Resolution | FPS | Bitrate | Use Case |
|---|---|---|---|---|
| 1080p30 | 1920x1080 | 30 | 6 Mbps | Default, balanced quality |
| 720p60 | 1280x720 | 60 | 8 Mbps | Smooth motion, gaming |
| 1080p60 | 1920x1080 | 60 | 12 Mbps | Professional quality |
| 4K30 | 3840x2160 | 30 | 25 Mbps | Ultra HD, recording |
- Front/Back Camera: Switch seamlessly during streaming
- External Cameras: Support for USB cameras (OTG)
- Camera Switching: Hot-swap without disconnecting
Connection Info:
- Device IP: Automatically displayed
- WebSocket:
ws://[IP]:8080/stream - HTTP H.264:
http://[IP]:8081/stream.h264 - MJPEG:
http://[IP]:8081/mjpeg - RTSP:
rtsp://[IP]:8554/stream - DASH:
http://[IP]:8081/dash/manifest.mpd - Web Player:
http://[IP]:8081/
mDNS Service:
- Service Name:
Streamberry-[IP] - Service Type:
_streamberry._tcp.local - Auto-discovery enabled
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ StreamBerry-Cam Android App โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Camera Pipeline โ โ
โ โ โ โ
โ โ Camera2 API โ Image Processing โ H.264 Encoder โ โ
โ โ โ โ โ โ โ
โ โ Manual Filters/LUT MediaCodec โ โ
โ โ Controls Effects Hardware โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Streaming Pipeline โ โ
โ โ โ โ
โ โ - Frame distribution โ โ
โ โ - Protocol multiplexing โ โ
โ โ - SPS/PPS extraction โ โ
โ โ - Format conversion (Annex-B) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Multi-Protocol Servers โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โWebSocket โ โ RTSP โ โ HTTP Server โ โ โ
โ โ โ Server โ โ Server โ โ - DASH โ โ โ
โ โ โ โ โ โ โ - MJPEG โ โ โ
โ โ โPort 8080 โ โPort 8554 โ โ - Raw H.264 โ โ โ
โ โ โโโโโโโโโโโโ โโโโโโโโโโโโ โ - Web Player โ โ โ
โ โ โ Port 8081 โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ mDNS Service โ โ
โ โ โ โ
โ โ - Auto-discovery broadcasting โ โ
โ โ - Service registration โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
WiFi Network
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ OBS Studio (Desktop) โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ BerryStreamCam OBS Plugin โ โ
โ โ โ โ
โ โ - Auto-discovery โ โ
โ โ - Protocol selection โ โ
โ โ - H.264 decoding โ โ
โ โ - GPU rendering โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Core Technologies:
- Kotlin - Modern Android development
- Jetpack Compose - Declarative UI framework
- Camera2 API - Advanced camera controls
- MediaCodec - Hardware H.264 encoding
- Ktor - Async HTTP/WebSocket servers
- Coroutines - Async/concurrent programming
- Koin - Dependency injection
Key Libraries:
- ML Kit - Face detection and tracking
- TensorFlow Lite - AI/ML processing
- Room - Local database
- DataStore - Preferences storage
- Timber - Logging framework
โ
Use WebSocket protocol
โ
720p @ 30fps
โ
5GHz WiFi
โ
Close to router
โ
Disable filters and effects
โ
Use HTTP H.264 or RTSP protocol
โ
1080p @ 60fps or 4K @ 30fps
โ
Wired ethernet on PC
โ
5GHz WiFi for phone
โ
Hardware encoding enabled
โ
Use RTSP or HTTP H.264 protocol
โ
4K (3840x2160) @ 30fps
โ
Gigabit ethernet (recommended)
โ
High-end device (Snapdragon 8 Gen 2+)
โ
20-30 Mbps bandwidth
โ
Hardware decoding on PC
โ
Keep device plugged in during streaming
โ
Lower resolution/framerate
โ
Disable unnecessary features
โ
Use airplane mode + WiFi only
โ
Reduce screen brightness
Prerequisites:
- Android Studio Hedgehog (2023.1.1) or later
- JDK 17
- Android SDK 34
- Kotlin 1.9.20
Build Steps:
# Clone repository
git clone https://github.com/StreamBerryLabs/StreamBerry-Cam.git
cd StreamBerry-Cam
# Open in Android Studio
# File โ Open โ Select 'android' folder
# Or build via command line
cd android
./gradlew assembleDebug
# Install on connected device
./gradlew installDebugStreamBerry-Cam/
โโโ android/
โ โโโ app/
โ โ โโโ src/main/kotlin/com/example/streamberry/
โ โ โ โโโ MainActivity.kt
โ โ โ โโโ StreamberryApplication.kt
โ โ โ โโโ camera/
โ โ โ โ โโโ CameraManager.kt
โ โ โ โ โโโ DeviceCapabilities.kt
โ โ โ โ โโโ CameraPresetStorage.kt
โ โ โ โโโ streaming/
โ โ โ โ โโโ StreamingManager.kt
โ โ โ โ โโโ StreamingPipeline.kt
โ โ โ โ โโโ ObsDroidServer.kt
โ โ โ โ โโโ http/HttpServer.kt
โ โ โ โ โโโ rtsp/RtspServer.kt
โ โ โ โโโ video/
โ โ โ โ โโโ VideoEncoder.kt
โ โ โ โ โโโ H264FormatConverter.kt
โ โ โ โโโ audio/
โ โ โ โ โโโ AudioProcessingPipeline.kt
โ โ โ โโโ effects/
โ โ โ โ โโโ CartoonFilterEffect.kt
โ โ โ โ โโโ SketchFilterEffect.kt
โ โ โ โ โโโ VintageFilterEffect.kt
โ โ โ โ โโโ OilPaintingFilterEffect.kt
โ โ โ โ โโโ LUTEffect.kt
โ โ โ โโโ ai/
โ โ โ โ โโโ FaceDetector.kt
โ โ โ โโโ network/
โ โ โ โ โโโ MdnsService.kt
โ โ โ โโโ ui/
โ โ โ โ โโโ screens/
โ โ โ โ โโโ viewmodels/
โ โ โ โ โโโ theme/
โ โ โ โโโ di/
โ โ โ โโโ AppModule.kt
โ โ โโโ build.gradle.kts
โ โโโ build.gradle.kts
โโโ README.md
# Unit tests
./gradlew test
# Instrumented tests
./gradlew connectedAndroidTest
# Lint checks
./gradlew lintโ App Crashes on Startup
- โ Grant all required permissions
- โ Check Android version (7.0+)
- โ Clear app data and cache
- โ Reinstall the app
- โ
Check device logs:
adb logcat | grep Streamberry
๐ Cannot Connect from OBS
- โ Both devices on same WiFi network
- โ Check firewall settings
- โ Verify IP address is correct
- โ Try manual IP entry in OBS plugin
- โ Restart WiFi router
- โ Disable VPN on both devices
๐ฅ No Video Stream
- โ Camera permission granted
- โ Check "Start Streaming" is enabled
- โ Try different protocol
- โ Restart the app
- โ Check device supports H.264 encoding
- โ Lower resolution/framerate
โก High Latency
- โ Switch to WebSocket protocol
- โ Use 5GHz WiFi
- โ Reduce resolution to 720p
- โ Move closer to router
- โ Close other apps
- โ Disable filters and effects
๐ Battery Drains Quickly
- โ Keep device plugged in
- โ Lower resolution/framerate
- โ Reduce screen brightness
- โ Disable unnecessary features
- โ Use airplane mode + WiFi
WebSocket (OBS Droid Protocol):
ws://[DEVICE_IP]:8080/stream
ws://[DEVICE_IP]:8080/health
HTTP Endpoints:
http://[DEVICE_IP]:8081/stream.h264 # Raw H.264 stream
http://[DEVICE_IP]:8081/mjpeg # MJPEG stream
http://[DEVICE_IP]:8081/dash/manifest.mpd # MPEG-DASH
http://[DEVICE_IP]:8081/ # Web player
RTSP:
rtsp://[DEVICE_IP]:8554/stream
Message Format:
{
"type": "video_frame",
"pts": 123456789,
"dts": 123456789,
"keyframe": true,
"codec": "h264",
"data": "base64_encoded_h264_data"
}Audio Frame:
{
"type": "audio_frame",
"pts": 123456789,
"codec": "aac",
"samples": 1024,
"data": "base64_encoded_aac_data"
}Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Kotlin coding conventions
- Use Jetpack Compose for UI
- Add KDoc comments for public APIs
- Write unit tests for new features
- Test on multiple Android versions
- Update README for new features
-
Audio Streaming
- Microphone audio capture
- Audio sync with video
- Multiple audio sources
-
Enhanced Discovery
- QR code pairing
- Bluetooth LE discovery
- USB connection (ADB)
-
Advanced Camera
- RAW image capture
- Burst mode
- Time-lapse recording
-
Cloud Features
- Remote access over internet
- Cloud recording
- Multi-device sync
-
Professional Tools
- Waveform monitor
- Vectorscope
- False color
- Zebra stripes
| Protocol | Average Latency | Jitter | Packet Loss |
|---|---|---|---|
| WebSocket | 75ms | ยฑ25ms | <0.1% |
| HTTP H.264 | 180ms | ยฑ50ms | <0.5% |
| RTSP | 220ms | ยฑ60ms | <0.3% |
| MJPEG | 350ms | ยฑ100ms | <1.0% |
| Metric | Value |
|---|---|
| CPU Usage | 15-25% |
| RAM Usage | 200-400 MB |
| Battery Drain | ~20%/hour |
| Network | 6-8 Mbps |
| Storage | 100 MB |
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.
- OBS Studio - https://obsproject.com
- Kotlin - https://kotlinlang.org
- Jetpack Compose - https://developer.android.com/jetpack/compose
- Ktor - https://ktor.io
- ML Kit - https://developers.google.com/ml-kit
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- OBS Plugin: BerryStreamCam Plugin
- Email: swadhinbiswas.cse@gmail.com
Swadhin Biswas ๐ป ๐จ ๐ ๐ค |
Creator & Lead Developer
If you found StreamBerry-Cam useful, please consider:
โญ Star this repo โข ๐ด Fork it โข ๐ข Share with others
Built with ๐ฑ Android โข ๐ฅ Camera2 API โข โก Real-time Streaming โข ๐ Open Source Spirit
ยฉ 2025 Swadhin Biswas. Licensed under GPL-2.0