Streamberry-OBS is a professional OBS Studio plugin that automatically discovers Streamberry devices on your network and provides ultra-low latency streaming with multiple protocol support.
🚀 Quick Start • 📦 Download • 📖 Documentation • 🐛 Report Bug • 💡 Feature Request
| 🎯 Feature | 📝 Description |
|---|---|
| 🔍 Auto-Discovery | Automatically finds Streamberry devices on your network (no manual IP entry!) |
| 🚀 Ultra-Low Latency | WebSocket protocol provides 50-150ms latency - perfect for gaming and live streaming |
| 🎭 5 Streaming Protocols | Choose the best protocol for your needs - WebSocket, HTTP H.264, MJPEG, RTSP, DASH |
| 🎬 Hardware Acceleration | H.264 hardware decoding when available for silky smooth playback |
| 📺 4K Support | Stream in stunning 4K resolution at 30fps - perfect for high-quality content |
| 🔄 Live Protocol Switching | Change protocols on-the-fly without restarting OBS |
| 📱 Multi-Device Support | Connect multiple Android devices simultaneously - perfect for multi-cam setups |
| 🎯 Pause/Resume | Smooth hide/show with PipeWire-style state management |
| 🛡️ Stable & Safe | Thread-safe operations, robust error handling, zero crashes |
| 🌐 Cross-Platform | Works seamlessly on Linux, macOS, and Windows |
| 🆓 100% Free & Open Source | No subscriptions, no limitations, forever free |
| 🎭 Protocol | 🔌 Port | ⚡ Latency | 🎯 Best For | 🌐 Compatibility |
|---|---|---|---|---|
| ⚡ WebSocket | 8080 | 50-150ms | Live streaming, gaming, real-time, 4K capable | ⭐⭐⭐⭐⭐ |
| 🎬 HTTP H.264 | 8081 | 100-300ms | Recording, high quality, 4K capable | ⭐⭐⭐⭐⭐ |
| 📸 MJPEG | 8081 | 200-500ms | Maximum compatibility | ⭐⭐⭐⭐⭐ |
| 📹 RTSP | 8554 | 150-400ms | Professional workflows, 4K lossless | ⭐⭐⭐⭐⭐ |
| 🌊 MPEG-DASH | 8081 | 300-1000ms | Adaptive bitrate streaming | ⭐⭐⭐⭐ |
💡 Pro Tip: Use WebSocket for lowest latency, RTSP for maximum compatibility and lossless 4K streaming
# Install dependencies
sudo pacman -S obs-studio qt6-base qt6-websockets ffmpeg curl openssl cmake gcc pkgconf
# Clone and build
git clone https://github.com/StreamBerryLabs/streamberry-obs.git
cd streamberry-obs
./build.sh
# Install plugin
sudo cp build/berrystreamcam.so /usr/lib/obs-plugins/# Install dependencies
sudo apt install obs-studio libqt6-dev qt6-websockets-dev libavcodec-dev \
libavutil-dev libswscale-dev libavformat-dev libcurl4-openssl-dev \
libssl-dev cmake build-essential pkg-config
# Clone and build
git clone https://github.com/StreamBerryLabs/streamberry-obs.git
cd streamberry-obs
./build.sh
# Install plugin
sudo cp build/berrystreamcam.so /usr/lib/obs-plugins/# Install dependencies
sudo dnf install obs-studio qt6-qtbase-devel qt6-qtwebsockets-devel \
ffmpeg-devel libcurl-devel openssl-devel cmake gcc-c++ pkgconfig
# Clone and build
git clone https://github.com/StreamBerryLabs/streamberry-obs.git
cd streamberry-obs
./build.sh
# Install plugin
sudo cp build/berrystreamcam.so /usr/lib64/obs-plugins/If you're using OBS Studio via Flatpak, use the dedicated Flatpak build:
Option 1: Using the build script (Recommended)
# Clone repository
git clone https://github.com/StreamBerryLabs/streamberry-obs.git
cd streamberry-obs
# Run Flatpak build script (handles everything automatically)
./build-flatpak.shOption 2: Manual Flatpak build
# Install flatpak-builder
sudo apt install flatpak-builder # Ubuntu/Debian
# or
sudo dnf install flatpak-builder # Fedora
# or
sudo pacman -S flatpak-builder # Arch
# Add Flathub repository
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Install OBS Studio Flatpak
flatpak install flathub com.obsproject.Studio
# Build and install plugin
flatpak-builder --force-clean --install --user \
build-flatpak \
com.obsproject.Studio.Plugin.BerryStreamCam.jsonOption 3: Install from .flatpakref (when available)
flatpak install berrystreamcam.flatpakrefFlatpak Troubleshooting:
- ✅ Verify OBS Flatpak is installed:
flatpak list | grep obs - ✅ Check plugin loads:
flatpak run com.obsproject.Studio --verbose - ✅ Network permissions are automatically granted for WebSocket connections
- ✅ Plugin location:
~/.var/app/com.obsproject.Studio/config/obs-studio/plugins/ - ✅ View logs:
journalctl --user -f | grep obs
# Install Homebrew (if not installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install dependencies
brew install obs qt6 ffmpeg curl openssl cmake
# Clone and build
git clone https://github.com/StreamBerryLabs/streamberry-obs.git
cd streamberry-obs
./build.sh
# Install plugin
mkdir -p "$HOME/Library/Application Support/obs-studio/plugins/"
cp -r build/berrystreamcam.plugin "$HOME/Library/Application Support/obs-studio/plugins/"- Install Visual Studio 2022 with C++ development tools
- Install CMake (3.16+)
- Install OBS Studio (30.0+)
- Install Qt 6
# Clone repository
git clone https://github.com/StreamBerryLabs/streamberry-obs.git
cd streamberry-obs
# Create build directory
mkdir build
cd build
# Configure (adjust paths as needed)
cmake .. -G "Visual Studio 17 2022" -A x64 ^
-DQt6_DIR="C:\Qt\6.5.0\msvc2019_64\lib\cmake\Qt6" ^
-DOBS_SOURCE_DIR="C:\obs-studio" ^
-DOBS_BUILD_DIR="C:\obs-studio\build"
# Build
cmake --build . --config Release
# Install (run as Administrator)
copy Release\berrystreamcam.dll "%ProgramFiles%\obs-studio\obs-plugins\64bit\"Download the Streamberry app from GitHub Releases or build from source.
Ensure your Android device and computer are on the same WiFi network or subnet.
- 🚀 Open OBS Studio
- ➕ Add Source: Click
+in the Sources panel - 🎬 Select "BerryStreamCam"
- 🔍 Wait for Discovery: Plugin automatically scans for devices (5-10 seconds)
- 📱 Select Your Device: Choose from the dropdown list
- ⚡ Choose Protocol: Select "WebSocket" for lowest latency
- ✅ Click OK: Stream starts automatically!
❌ Device Not Found?
- ✅ Check both devices are on same network
- ✅ Verify Streamberry app is running
- ✅ Try manual IP: Enter IP address in the "Manual IP" field
- ✅ Check firewall: Allow ports 8080, 8081, 8554
- ✅ Disable VPN on either device
- ✅ Restart your router if necessary
🎬 No Video Displayed?
- ✅ Check Android app shows "Connected" status
- ✅ Try different protocol (switch to HTTP H.264)
- ✅ Restart OBS Studio
- ✅ Check OBS logs: Help → Log Files → Current Log
- ✅ Verify camera permissions in Android app
- ✅ Try hiding and showing the source
⚡ High Latency?
- ✅ Switch to WebSocket protocol
- ✅ Use 5GHz WiFi instead of 2.4GHz
- ✅ Reduce resolution in Android app (720p recommended)
- ✅ Move closer to WiFi router
- ✅ Close bandwidth-heavy applications
- ✅ Use Quality of Service (QoS) on router
- Connection Type: Auto-Discovery or Manual IP
- Device: List of discovered Streamberry devices
- Manual IP Address: Enter IP when auto-discovery fails
- Protocol: Select streaming protocol
- Refresh Devices: Manually trigger device scan
| Requirement | Details |
|---|---|
| Network | Same local network/subnet |
| Ports | 8080 (WebSocket), 8081 (HTTP), 8554 (RTSP) |
| Bandwidth | 5-10 Mbps for 1080p@30fps, 20-30 Mbps for 4K@30fps |
| WiFi | 5GHz required for 4K, 5GHz recommended for 1080p, 2.4GHz for 720p |
| Firewall | Allow inbound on required ports |
For Lowest Latency (50-150ms):
- ✅ Use WebSocket protocol
- ✅ 720p @ 30fps
- ✅ 5GHz WiFi
- ✅ Close to router
For Best Quality:
- ✅ Use HTTP H.264 protocol
- ✅ 1080p @ 60fps or 4K @ 30fps
- ✅ Wired ethernet on PC
- ✅ 5GHz WiFi or wired ethernet for phone
- ✅ Hardware encoding on Android device
For Stunning 4K Streaming:
- ✅ Use HTTP H.264 or WebSocket protocol
- ✅ 4K (3840x2160) @ 30fps
- ✅ Gigabit ethernet on both devices (recommended)
- ✅ High-end Android device with hardware H.264 encoder
- ✅ Minimum 20-30 Mbps bandwidth
- ✅ Hardware decoding on PC (GPU acceleration)
For Maximum Compatibility:
- ✅ Use RTSP protocol
- ✅ 720p to 4K @ 30fps (RTSP supports lossless 4K streaming)
- ✅ Any network type
- ✅ Industry-standard protocol
- ✅ Compatible with all professional video software
For Lossless 4K Professional Streaming:
- ✅ Use RTSP protocol
- ✅ 4K (3840x2160) @ 30fps lossless
- ✅ Wired Gigabit ethernet (required for 4K)
- ✅ Professional-grade Android device
- ✅ 30-50 Mbps bandwidth for 4K lossless
- ✅ Industry-standard streaming protocol
- ✅ Perfect for professional broadcasting and production
# Install dependencies (see platform-specific instructions above)
# Clone repository
git clone https://github.com/StreamBerryLabs/streamberry-obs.git
cd streamberry-obs
# Build
./build.sh
# The plugin will be in build/berrystreamcam.so (Linux/macOS)
# or build/Release/berrystreamcam.dll (Windows)┌─────────────────────────────────────────────────────────────────────┐
│ OBS Studio │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ BerryStreamCam Plugin │ │
│ │ │ │
│ │ ┌────────────────┐ ┌─────────────────────────────────┐ │ │
│ │ │ Source Core │ │ Device Discovery │ │ │
│ │ │ │ │ │ │ │
│ │ │ - Properties │◄─────┤ - mDNS Scanner │ │ │
│ │ │ - Rendering │ │ - Port Probing (8080/81/54) │ │ │
│ │ │ - Threading │ │ - Auto-refresh (5s) │ │ │
│ │ └───────┬────────┘ └─────────────────────────────────┘ │ │
│ │ │ │ │
│ │ │ │ │
│ │ ┌───────▼──────────────────────────────────────────────────┐ │ │
│ │ │ Protocol Handlers │ │ │
│ │ │ │ │ │
│ │ │ ┌───────────────┐ ┌──────────────┐ ┌───────────────┐ │ │ │
│ │ │ │ WebSocket │ │ RTSP │ │ HTTP │ │ │ │
│ │ │ │ Handler │ │ Handler │ │ Handler │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ Port: 8080 │ │ Port: 8554 │ │ Port: 8081 │ │ │ │
│ │ │ │ Protocol: │ │ Protocol: │ │ Protocols: │ │ │ │
│ │ │ │ - JSON msgs │ │ - RTSP/RTP │ │ - Raw H.264 │ │ │ │
│ │ │ │ - Base64 │ │ - NAL units │ │ - MJPEG │ │ │ │
│ │ │ │ - H.264 │ │ - SDP │ │ - DASH │ │ │ │
│ │ │ └───────┬───────┘ └──────┬───────┘ └───────┬───────┘ │ │ │
│ │ └──────────┼──────────────────┼──────────────────┼─────────┘ │ │
│ │ │ │ │ │ │
│ │ └──────────────────┼──────────────────┘ │ │
│ │ │ │ │
│ │ ┌─────────────────────────────▼──────────────────────────┐ │ │
│ │ │ H.264 Decoder (FFmpeg) │ │ │
│ │ │ │ │ │
│ │ │ - Decodes H.264 NAL units │ │ │
│ │ │ - YUV → RGBA conversion │ │ │
│ │ │ - Hardware acceleration │ │ │
│ │ │ - Low-latency mode │ │ │
│ │ └─────────────────────────┬────────────────────────────────┘ │ │
│ │ │ │ │
│ │ ┌─────────────────────────▼────────────────────────────────┐ │ │
│ │ │ GPU Texture Upload │ │ │
│ │ │ │ │ │
│ │ │ - Create/update OBS texture │ │ │
│ │ │ - Direct GPU memory │ │ │
│ │ │ - Minimal CPU usage │ │ │
│ │ └───────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌───────────────────────────────────────────────────────────┐ │ │
│ │ │ User Interface (Qt) │ │ │
│ │ │ │ │ │
│ │ │ - Device list widget │ │ │
│ │ │ - Protocol selection │ │ │
│ │ │ - Connection status │ │ │
│ │ │ - Refresh button │ │ │
│ │ └───────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
│
WiFi Network
│
┌─────────────────────────────────────────────────────────────────────┐
│ Streamberry Android App │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐│
│ │ Streaming Servers ││
│ │ ││
│ │ ┌─────────────────┐ ┌──────────────┐ ┌───────────────────┐ ││
│ │ │ OBS Droid │ │ RTSP Server │ │ HTTP Server │ ││
│ │ │ WebSocket │ │ │ │ │ ││
│ │ │ Server │ │ - RTP/RTCP │ │ - DASH │ ││
│ │ │ │ │ - SDP │ │ - MJPEG │ ││
│ │ │ Port: 8080 │ │ │ │ - Raw H.264 │ ││
│ │ │ │ │ Port: 8554 │ │ - Player UI │ ││
│ │ │ /stream │ │ │ │ │ ││
│ │ │ /health │ │ /stream │ │ Port: 8081 │ ││
│ │ └─────────────────┘ └──────────────┘ └───────────────────┘ ││
│ └─────────────────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────────────┐│
│ │ mDNS Service ││
│ │ ││
│ │ Service Name: Streamberry-{IP} ││
│ │ Service Type: _streamberry._tcp.local ││
│ │ Published Port: 8080 ││
│ └─────────────────────────────────────────────────────────────────┘│
│ │
│ ┌─────────────────────────────────────────────────────────────────┐│
│ │ Video Encoding Pipeline ││
│ │ ││
│ │ Camera → Encoder → H.264 NAL Units → Servers ││
│ │ ││
│ │ - MediaCodec H.264 ││
│ │ - SPS/PPS extraction ││
│ │ - Annex-B format ││
│ │ - Real-time encoding ││
│ └─────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────┘
📊 Data Flow Diagrams
Android App OBS Plugin
───────────── ──────────
1. Start Server
(Port 8080) ────────────────────► Discover via mDNS
Probe /health endpoint
2. Client Connect ◄──────────────── WebSocket connect to
Send Hello msg ──────────────────► /stream endpoint
Parse capabilities
3. Encode Frame
(H.264 NAL)
↓
Convert to Annex-B
↓
Base64 encode
↓
Wrap in JSON
{
"type": "video_frame",
"pts": 123456,
"keyframe": true,
"data": "..."
} ────────────────────────────────► Parse JSON
Decode base64
Extract H.264
↓
H.264 Decoder
↓
YUV → RGBA
↓
GPU Texture
↓
OBS Render
4. Stats/Metadata ◄──────────────── Request stats (optional)
┌─────────────────────────────────────────────────────────────┐
│ OBS Main Thread │
│ │
│ - GUI events │
│ - Rendering │
│ - Texture updates │
└────────────────────────────────────────────────��────────────┘
│
│ spawn
▼
┌─────────────────────────────────────────────────────────────┐
│ Discovery Thread │
│ │
│ while (active) { │
│ scan_network(); // mDNS + port probing │
│ update_device_list(); │
│ sleep(5s); │
│ } │
└─────────────────────────────────────────────────────────────┘
User clicks "Connect"
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Streaming Thread │
│ │
│ connect_to_device(protocol); │
│ while (streaming) { │
│ frame = receive_frame(); // From protocol handler │
│ decode(frame); // H.264 decoder │
│ push_to_queue(rgba_data); // Thread-safe queue │
│ } │
└─────────────────────────────────────────────────────────────┘
│
│ Frame Queue
│ (Thread-safe)
▼
┌─────────────────────────────────────────────────────────────┐
│ OBS Rendering (Main Thread) │
│ │
│ frame = pop_from_queue(); │
│ upload_to_gpu_texture(frame); │
│ render_texture(); │
└─────────────────────────────────────────────────────────────┘
streamberry-obs/
├── CMakeLists.txt # Build configuration
├── build.sh # Build script
├── src/
│ ├── plugin-main.cpp # OBS plugin registration
│ ├── berrystreamcam-source.* # Main source implementation
│ ├── common.hpp # Shared types and constants
│ ├── discovery/ # Auto-discovery system
│ │ ├── device-discovery.* # Network scanning
│ │ └── mdns-scanner.* # mDNS/Bonjour
│ ├── protocols/ # Protocol handlers
│ │ ├── websocket-handler.* # WebSocket (Port 8080)
│ │ ├── http-handler.* # HTTP (Port 8081)
│ │ └── rtsp-handler.* # RTSP (Port 8554)
│ ├── decoder/ # Video decoding
│ │ └── h264-decoder.* # H.264/MJPEG decoder
│ └── ui/ # User interface
│ └── device-list-widget.* # Device selection UI
└── docs/ # Documentation
1. Add New Protocol:
// 1. Add to ProtocolType enum in common.hpp
enum class ProtocolType {
// ... existing
MY_NEW_PROTOCOL,
};
// 2. Create handler in src/protocols/
class MyProtocolHandler {
bool connect(const std::string& url);
void disconnect();
bool receive_frame(VideoFrame& frame);
};
// 3. Update device-discovery.cpp to detect protocol
// 4. Update UI in device-list-widget.cpp2. Improve Auto-Discovery:
// Modify src/discovery/device-discovery.cpp
// Add new scanning methods or improve existing ones# Build with tests enabled
mkdir -p build && cd build
cmake .. -DENABLE_TESTS=ON
make
# Run tests
ctest --output-on-failure// Scan network for devices (runs every 5 seconds)
std::vector<StreamDevice> devices = discovery_->scan_network();
// Check specific device
StreamDevice device;
bool found = discovery_->probe_device("192.168.1.100", device);// WebSocket Handler
WebSocketHandler ws;
ws.connect_to_server("ws://192.168.1.100:8080/stream");
VideoFrame frame;
if (ws.receive_frame(frame)) {
// Process frame
}
ws.disconnect_from_server();
// HTTP Handler
HttpHandler http;
http.connect("http://192.168.1.100:8081/stream.h264", ProtocolType::HTTP_RAW_H264);
if (http.receive_frame(frame)) {
// Process frame
}
http.disconnect();H264Decoder decoder;
decoder.initialize();
uint8_t* decoded_data;
int width, height;
if (decoder.decode_frame(encoded_data, encoded_size, &decoded_data, &width, &height)) {
// decoded_data contains RGBA pixels
}
decoder.shutdown();| Feature | BerryStreamCam | DroidCam | IP Webcam | Others |
|---|---|---|---|---|
| 🔍 Auto-Discovery | ✅ | ❌ | ❌ | ❌ |
| ⚡ Ultra-Low Latency | ✅ (50ms) | |||
| 🎭 Multiple Protocols | ✅ (5) | |||
| 📱 Multi-Device | ✅ | ❌ | ❌ | |
| 🔄 Live Switching | ✅ | ❌ | ❌ | ❌ |
| 🆓 Free & Open Source | ✅ | ❌ | ||
| 🎬 Hardware Decoding | ✅ | ❌ | ||
| 🌐 Cross-Platform | ✅ | |||
| 💪 Active Development | ✅ |
Legend: ✅ Fully Supported |
-
Enhanced Auto-Discovery
- mDNS/Bonjour service discovery (Linux: Avahi, macOS: native, Windows: DNS-SD)
- QR code scanning for instant connection
- Bluetooth Low Energy (BLE) discovery
- USB connection support (ADB)
- Remember previously connected devices
-
Audio Streaming
- Audio capture from Android microphone
- Audio sync with video
- Multiple audio sources (mic, system audio)
- Audio monitoring in OBS
-
Advanced Features
- PTZ (Pan-Tilt-Zoom) controls via touch gestures
- Multiple camera support (front/back switching)
- Custom resolution/bitrate selection
- Recording directly on Android device
- Overlay graphics (OSD) on Android
-
Performance
- Hardware encoding on Android (MediaCodec)
- Zero-copy memory transfers
- Multi-threaded decoding
- Adaptive bitrate streaming
- Network bandwidth optimization
-
Professional Features
- NDI protocol support
- SRT (Secure Reliable Transport)
- Virtual camera passthrough
- Multi-camera sync
- Timecode synchronization
-
User Experience
- One-click pairing
- Connection presets
- Custom overlays
- Stream health monitoring
- Automatic reconnection
-
Platform Expansion
- iOS support (iPhone/iPad)
- Linux phone support
- Raspberry Pi camera support
- Web browser source (WebRTC)
-
Cloud Features
- Remote device access (over internet)
- Cloud device registry
- Share device with team members
- Remote monitoring dashboard
|
C++17 |
Qt 6 |
OBS Studio |
FFmpeg |
CMake |
|
libcurl |
OpenSSL |
Linux |
macOS |
Windows |
Core Technologies:
- 🔷 C++17 - Modern C++ with RAII and smart pointers
- 🔷 Qt 6 - Cross-platform framework for networking and UI
- 🔷 FFmpeg - Industry-standard multimedia framework
- 🔷 CMake - Cross-platform build system
- 🔷 WebSockets - Real-time bidirectional communication
- 🔷 RTSP/RTP - Standard streaming protocols
- 🔷 H.264 - Industry-standard video codec
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 C++17 standards
- Use RAII for resource management
- Add error handling with try-catch
- Document public APIs with comments
- Test on multiple platforms
- Update README for new features
💰 Is BerryStreamCam really free?
Yes! BerryStreamCam is 100% free and open source under GPL-2.0 license. No hidden costs, no subscriptions, no premium features. Forever free!
📱 Which Android versions are supported?
The Streamberry Android app supports Android 7.0 (Nougat) and above. The plugin works with any device running the Streamberry app.
🎥 Can I use multiple cameras at once?
Absolutely! You can add multiple BerryStreamCam sources in OBS, each connected to a different Android device. Perfect for multi-cam productions!
🌐 Does it work over the internet?
Currently, BerryStreamCam requires both devices to be on the same local network. Internet streaming is planned for v2.0 using secure tunneling.
⚡ Which protocol should I use?
- WebSocket: Best for live streaming, gaming, real-time (50-150ms latency)
- HTTP H.264: Best for recording, high quality (100-300ms latency)
- RTSP: Best for professional workflows, OBS scenes (150-400ms latency)
- MJPEG: Best for maximum compatibility (200-500ms latency)
🔒 Is it secure?
BerryStreamCam operates on your local network only. All communication happens directly between your devices without any cloud servers or third-party services.
🎤 Does it support audio?
Audio streaming is planned for v1.1.0. Currently, only video is supported. You can use OBS's audio input capture as a workaround.
🐧 Which Linux distros are supported?
BerryStreamCam works on all major Linux distributions including:
- Arch Linux / Manjaro / Garuda
- Ubuntu / Debian / Linux Mint
- Fedora / RHEL / CentOS Stream
- openSUSE
- Gentoo
- And many more!
💻 What are the system requirements?
Minimum:
- OBS Studio 30.0+
- 4GB RAM
- Dual-core CPU
- WiFi or Ethernet connection
Recommended (1080p):
- OBS Studio 30.2+
- 8GB RAM
- Quad-core CPU with hardware H.264 decoding
- 5GHz WiFi or Gigabit Ethernet
For 4K Streaming:
- OBS Studio 30.2+
- 16GB RAM
- Hexa-core CPU or hardware H.264 decoder
- Gigabit Ethernet (recommended) or WiFi 6
- High-end Android device (Snapdragon 8 Gen 2+ or equivalent)
🔄 How do I update the plugin?
- Download the latest release from GitHub
- Stop OBS Studio
- Replace the old plugin file with the new one
- Restart OBS Studio
Or rebuild from source using ./build.sh for the latest development version.
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.
- OBS Studio - https://obsproject.com
- Qt Framework - https://www.qt.io
- FFmpeg - https://ffmpeg.org
- libcurl - https://curl.se
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: swadhinbiswas.cse@gmail.com
- Lines of Code: ~5,000+
- Files: 19 source files
- Protocols Supported: 5
- Max Resolution: 4K (3840x2160) @ 30fps
- Platforms: Linux, macOS, Windows
- Languages: C++ (95%), CMake (5%)
"BerryStreamCam works flawlessly! Latency is incredibly low, and setup was a breeze." - User
"Finally, a DroidCam alternative that's open source and actually works better!" - Streamer
"The auto-discovery feature is amazing. No more typing IP addresses!" - Content Creator
"Streaming in 4K at 30fps with barely any latency - this is next level! My production quality has gone through the roof!" - Professional Streamer
"I use 3 phones in 4K mode for my cooking channel. The multi-device support is incredible!" - Content Creator
Swadhin Biswas 💻 🎨 📖 🤔 |
Creator & Lead Developer
If you found BerryStreamCam useful, please consider:
⭐ Star this repo • 🍴 Fork it • 📢 Share with others
Built with 🎥 Camera Tech • ⚡ Real-time Streaming • 🔐 Open Source Spirit
© 2025 Swadhin Biswas. Licensed under GPL-2.0