OpenStream is a multi-platform streaming plugin that provides robust, low-latency streaming capabilities for desktop applications and mobile platforms.
Key Features:
- 🔴 Live Streaming: Stream directly from your application
- 🎯 Multi-Platform: Desktop (Windows, macOS, Linux) and mobile support
- ⚡ Low Latency: Optimized for real-time streaming
- 🔧 Plugin Architecture: Easy integration with existing applications
- 📱 Mobile Support: Full Android support
- CMake 3.15+
- C++17 compatible compiler
- For Android: Android NDK
- For Desktop: Qt 6.0+ (optional)
./build_plugin_linux.shbuild_plugin.batcd android
./gradlew buildOpenStream/
├── obs-plugin/ # OBS Studio plugin implementation
├── android/ # Android application and libraries
├── website/ # Documentation website
├── tools/ # Build and utility tools
├── tests/ # Test suites
└── README.md
OpenStream provides a clean C++ API for integration:
#include "openstream/openstream.h"
// Initialize streaming
OpenStream::StreamConfig config;
config.bitrate = 5000; // 5 Mbps
config.fps = 60;
config.resolution = {1920, 1080};
auto stream = OpenStream::CreateStream(config);
stream->Start();OpenStream provides a comprehensive OBS Studio plugin for streaming integration. Install the plugin to enable streaming features within OBS.
- Build the plugin using the scripts above
- Copy the plugin to your OBS plugins directory
- Restart OBS to load the plugin
The Android version provides native streaming capabilities with minimal latency.
Go live directly from your phone to Twitch, YouTube, Kick, Facebook, custom RTMP(S), or custom SRT. No PC is required. OBS mode remains the default.
- Open the app and select IRL Live (Beta).
- Pick a platform, paste your stream key and any required server URL, and choose a quality. For custom SRT, enter the full SRT URL instead of a stream key.
- Tap Go Live. Streaming continues with the screen locked.
- Tap Stop in the app or the streaming notification to end the stream.
The default is 720p at 30 fps with about 3.5 Mbps video, 2-second keyframes, and AAC audio at 128 kbps. Auto-reconnect, adaptive bitrate, and network handover help keep the stream running as mobile connectivity changes.
This mode is beta. It supports one destination at a time and H.264 video only. Chat, OAuth sign-in, and SRTLA bonding are not supported. Custom SRT is unencrypted: this beta's SRT library has no encryption, so URLs with passphrase= are rejected; use a stream ID and a trusted network or ingest. YouTube and Kick may require setup in their streaming dashboards before you can go live.
cd android
./gradlew build
# Output: android/app/build/outputs/apk/We welcome contributions! Please:
- 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
# Clone the repository
git clone https://github.com/YashasVM/OpenStream.git
cd OpenStream
# Install dependencies
./build_plugin_linux.shcd tests
./run_tests.shBuild fails with CMake error:
- Ensure CMake 3.15+ is installed
- Clear build directory and retry:
rm -rf build && ./build_plugin_linux.sh
OBS plugin not detected:
- Check plugin installation path
- Verify file permissions on plugin files
- Restart OBS completely
OpenStream is optimized for:
- Minimal CPU usage (<10% on modern hardware)
- Sub-100ms latency for reliable streaming
- Support for 1080p @ 60fps streaming
- Concurrent stream handling with multiple outputs
MIT License - See LICENSE file for details
For issues, feature requests, or questions:
- Open an issue on GitHub
- Check existing documentation in
/website - Review the contributing guidelines
- Join our community discussions
OpenStream is built with community support and contributions from developers worldwide.