yashas / docs
Products

OpenStream

Turn an Android phone into a wireless camera source for OBS Studio.

What it is

OpenStream turns an Android phone into a camera and microphone source inside OBS Studio. The phone does the capture and hardware encoding, sends the media over your local Wi-Fi network, and a native OBS plugin receives it on the Windows PC.

This is useful for a second camera, a desk cam, a phone-on-a-tripod shot, or a multi-camera stream without running a cable across the room. There is no cloud relay in the normal setup: the phone and the OBS machine talk directly on the LAN.

Current status: Beta. The supported V1.0.1 path is the Android app plus the Windows OBS plugin over local Wi-Fi. USB transport is not part of this release.

Quick start

  1. Install the Android APK and the Windows openstream-obs-plugin-installer-windows-x64.exe, then restart OBS.
  2. Put the phone and PC on the same normal Wi-Fi network. 5 GHz or Wi-Fi 6 is recommended.
  3. In OBS, choose Sources → + → OpenStream V8 and name the camera slot.
  4. Open the Android app, allow camera/microphone access, and tap the slot it discovers.
  5. Open Docks → OpenStream Camera Control in OBS for lens, zoom, torch, labels, and reconnect controls.

If discovery cannot find the PC, use manual connection and enter the PC address shown by the plugin. Guest Wi-Fi, VPNs, and router client isolation commonly block discovery.

What you can do with it

  • Stream 1080p30, with a 720p30 fallback profile.
  • Switch between front, rear, ultrawide, and telephoto lenses when available.
  • Use pinch-to-zoom, torch control, and a black screen streaming overlay.
  • Run multiple phones by creating one stable camera slot per angle.
  • Flash the slot name on the phone so physical cameras are easy to identify.
  • Recover from short Wi-Fi drops using the plugin's reconnect hold.

How it works

Android Camera2 → MediaCodec AVC/H.264 + AAC → MPEG-TS → libsrt/SRT over Wi-Fi

Windows OBS ← native source plugin ← FFmpeg SRT receive/decode

Discovery uses UDP 51515; media uses SRT 9000; remote camera controls use HTTP 9001. These ports are intended for the local network, not the public internet.

Tech stack

PartTechnologyJob
Android appKotlin/Android, Camera2Capture, preview, camera selection
EncodingMediaCodecHardware AVC/H.264 video and AAC audio
TransportMPEG-TS, libsrt, SRTLow-latency delivery over Wi-Fi
OBS integrationNative OBS source/pluginMakes each phone a normal OBS source
Receive/decodeOBS bundled FFmpeg SRT supportConverts the stream back to frames/audio
PairingLAN UDP + phone HTTP serverDiscovery and remote controls
DistributionGitHub Releases + Cloudflare PagesDownloads and website

Defaults and tuning

SettingDefaultNotes
Resolution1920×1080Full HD target
Frame rate30 fpsKeeps heat and backlog reasonable
Video codecAVC/H.264Hardware surface encoder
Bitrate12 MbpsTry 8–12 Mbps before changing anything else
SRT latency120 ms80–200 ms is a useful range

If the phone runs hot or the feed stutters, use 720p30 and lower the bitrate. Stable Wi-Fi matters more than chasing a tiny latency number.

Compatibility and limits

  • Android 10+ with Camera2 and hardware MediaCodec support is expected.
  • The OBS host is currently Windows x64 with OBS Studio 32.2.1 and bundled FFmpeg SRT support.
  • Devices must see each other on the same LAN/subnet.
  • Camera behavior differs between manufacturers and lenses.
  • USB transport and USB camera sources are not supported in V1.0.1.

Troubleshooting

No slot appears: check subnet, VPN, Windows Firewall, guest-network isolation, and the plugin restart. Use manual IP entry as a fallback.

Slot appears but no video: confirm the source is enabled, the media port is open, and try 720p30. Restarting OBS after installing the plugin is important.

Delayed or glitchy feed: use 5 GHz/Wi-Fi 6, move closer to the access point, lower bitrate, and increase SRT latency slightly.

Phone is hot: use the black screen mode, 720p30, a lower bitrate, and keep the phone ventilated. Camera capture plus encoding is real work for a phone.

Build from source

The repo has separate Android and OBS plugin projects. On Windows, build the Android debug APK with:

cd android
./gradlew.bat :app:assembleDebug

The APK is in android/app/build/outputs/apk/debug/app-debug.apk. Build the plugin with ./build_plugin.bat; set OPENSTREAM_SKIP_INSTALL=1 to package without installing. Release signing variables and the SRT smoke test are documented in the repo.

On this page