Why set it up this way
Your phone sends its camera and microphone to OBS on your computer at home. OBS turns that into your finished stream and sends it to your platform.
- Your computer does the heavy lifting. Scenes, overlays and alerts all run at home.
- If your phone drops out, OBS keeps the stream up. You don't have to pay for a drop protection service.
- OBS can send your stream to more than one platform.
This guide uses Tailscale, a separate app that connects your phone to your home computer privately, including on mobile data. Other setups can work too.
What you need
- An Android phone running Android 10 or newer.
- A computer that can run OBS Studio 28 or newer. It has to stay on and awake while you stream.
1. Install the apps
On your phone:
On your computer:
- OBS Studio
- Tailscale for Windows, macOS or Linux
New to OBS?
The first time you open OBS it may offer its Auto-Configuration Wizard. You can cancel it for now.
2. Connect your phone and computer with Tailscale
Use the same Tailscale account on both.
Using another VPN? Turn it off on the phone and the computer first. Android only runs one VPN at a time, so Tailscale and another VPN can't be on together.
On your phone
- Open Tailscale and tap Get Started.
- Android asks to set up a VPN connection. Allow it. Android shows this warning for every VPN app.
- Sign in. If Tailscale opens your browser for this, go back to the Tailscale app when you're done.
- Check that Tailscale says it is connected.
On your computer
- Open Tailscale and sign in with the same account.
- Check that it says it is connected.
Check that the two can really see each other
Tailscale can say it is connected while the other device has dropped off. The sure check is on the computer. Open Command Prompt on Windows, or a terminal on Linux, and run:
tailscale status
On a Mac, run /Applications/Tailscale.app/Contents/MacOS/Tailscale status in Terminal.
Your phone should be in the list without the word offline. If it says offline, turn Tailscale off and on in the phone's Tailscale app, or restart the phone, and run the command again.
Can't find Tailscale on your computer?
On Windows, Tailscale is an icon near the clock. If you can't see it, click the small up arrow there. Right-click the icon and choose Log in.
On a Mac, open Tailscale from Applications and follow its setup. It asks you to allow a VPN configuration. After that it sits in the menu bar at the top of the screen.
Linux: connect from the terminal
There may be no app icon. Open a terminal and run:
tailscale version
sudo tailscale up --timeout=5m
tailscale ip -4
The first line checks that Tailscale is installed. The second connects it and prints a sign-in link if one is needed. If sudo asks for a password, type your computer login password. You won't see it as you type. The last line shows the computer's Tailscale address.
The connect command gives up after five minutes. If no sign-in link appears, press Ctrl+C, turn off any other VPN, check that normal browsing works and try again.
Can't see your other device?
Check that both devices are signed in to the same Tailscale account and both show as connected. Leave Exit node at None. If you use another VPN, see Tailscale's notes on other VPNs.
Tailscale's own Android steps may help too.
Find your computer's Tailscale address
Open Tailscale on the computer. It shows this computer's address, which starts with 100. You need it in the next step. It is also listed beside your computer's name in the Tailscale app on your phone.
3. Fill in your details
Type these in once. The page builds the two addresses you need. Nothing you type leaves this page.
Starts with 100.
Letters and numbers only. At least 20.
Keep it somewhere safe. OBS and Roam must use the same one.
Replace the two coloured parts. Use letters and numbers only in the passphrase, at least 20. Leave everything else exactly as it is. OBS and Roam must use the same passphrase.
For OBS (step 4)
srt://YOUR-COMPUTER-ADDRESS:1234?mode=listener&passphrase=YOUR-PASSPHRASE&pbkeylen=32&latency=2000000
For Roam (step 5)
srt://YOUR-COMPUTER-ADDRESS:1234/live?passphrase=YOUR-PASSPHRASE&pbkeylen=256&latency=2000
Setting up the phone? Open this page on the phone too, type the same two details, and copy the Roam address there.
Why two different addresses?
OBS waits for the phone, and Roam calls it. Each app writes the same settings in its own way, so the two addresses look different. Use each one only where it belongs.
4. Set up OBS to receive your phone
- Open OBS. In Sources, click + and choose Media (called Media Source in older versions). Name it Roam phone.
- Untick Local File.
- Paste the OBS address from step 3 into Input.
- Type
mpegtsinto Input Format. - Set Reconnect Delay to 1 second if you see that setting.
- Untick Restart playback when source becomes active. Leave Close file when inactive unticked.
- Leave the other settings as they are and click OK.
The source stays blank until Roam starts sending. That's normal.
5. Set up Roam
- Open Roam Live and allow the camera and microphone when it asks.
- Open Settings, then Stream.
- Paste the Roam address from step 3 into Stream URL.
Roam says the stream destination isn't valid
Check that there are no spaces in the address and no < or > signs left in it. The passphrase must be letters and numbers only. Tap the eye icon in the Stream URL box to see the whole address.
6. Optional: control OBS from your phone
Skip this if you only want your camera in OBS. Do it if you want to switch scenes or start and stop the OBS broadcast from Roam.
In OBS:
- Open Tools, then WebSocket Server Settings.
- Make sure Enable WebSocket server is ticked.
- Make sure Enable Authentication is ticked.
- Type a Server Password of your own: letters and numbers only, at least 12 of them. Write it down. (Generate Password makes one with capitals and symbols, which is hard to type on a phone.)
- Click OK.
What Show Connect Info is for
Show Connect Info in the same window shows the saved password, so you can check it later. It also shows a Server IP, usually starting with 192.168 or 10. Don't use that address. Roam needs the Tailscale address from step 3.
In Roam, open Settings, then OBS, and fill in:
| Field | What to enter |
|---|---|
| Host (IP address or hostname) | Your computer's Tailscale address from step 3. Not the Server IP that OBS shows. |
| Port | 4455 |
| Password (required) | The Server Password you typed in OBS |
Then, with OBS open on the computer:
- Tap Connect and wait for Connected. If Roam says OBS authentication failed, the password is wrong. If it stays on Connecting..., the phone can't reach the computer: see troubleshooting.
- Turn on Show OBS control on main screen. An OBS pill now shows at the top of Roam's camera screen.
7. Test it
- In Roam, hold the Go live pill at the top left of the camera screen. Your phone's picture should show up in OBS within a few seconds.
- Talk. On the computer, the bar beside Roam phone in OBS's Audio Mixer panel should move.
- If you did step 6, tap the OBS pill at the top of Roam's camera screen. It opens the OBS controls. Tap a scene to switch to it.
- Streaming on mobile data? Turn off Wi-Fi on the phone, check Tailscale is still connected, and try again before you leave home. If Roam can't connect after the switch, turn Tailscale off and on in the phone's Tailscale app and try again.
Going live in Roam only sends your camera to OBS. Nobody is watching yet. Your viewers see the stream once OBS is streaming.
Can't see the Audio Mixer in OBS?
Open the Docks menu at the top of OBS and tick Audio Mixer.
Picture is the wrong size
Right-click the Roam phone source and choose Transform > Fit to screen.
Can't hear the phone on the computer
OBS doesn't play the phone's sound through your speakers unless you turn on audio monitoring. That's separate from what goes into your stream. To check the sound, make a short recording with Start Recording and play it back. See the OBS Audio Mixer guide.
8. Go live from OBS
- In OBS, open Settings, then Stream. Pick your platform under Service. Connect your account, or paste the stream key your platform gives you into Stream Key.
- Hold the Go live pill in Roam so your camera is in OBS.
- Click Start Streaming in OBS. If you did step 6 you can start it from Roam: tap the OBS pill at the top of Roam's camera screen and use Hold to start OBS broadcast.
- To finish, stop the OBS broadcast first (Stop Streaming in OBS, or Stop OBS broadcast in Roam). Then stop Roam.
Put your phone in every scene
Add the same Roam phone source to every scene you switch to, even scenes that don't show it. In each scene, click + in Sources, choose Media and add the existing Roam phone. Where you don't want to see it, place it underneath your other sources instead of hiding it. If a scene doesn't have it, OBS can restart the feed when you switch back, and the picture can come back delayed.
Extras
Break screen (BRB)
This needs step 6, with Roam connected to OBS. Make an OBS scene for your break screen, with the Roam phone source underneath your break image.
In Roam, open Settings, then OBS. Under BRB scene in OBS, choose that scene. Leave Mute mic and camera during OBS BRB on.
Roam's BRB button now switches OBS to that scene. While it is live, Roam sends a black picture and no sound instead of your camera and microphone.
Start and stop the OBS broadcast from Roam
This needs step 6. Tap the OBS pill at the top of Roam's camera screen. In the OBS controls, Hold to start OBS broadcast starts OBS streaming to your platform and Stop OBS broadcast stops it. They work even when Roam isn't sending your camera. They don't start or stop OBS recording.
Sync OBS streaming with Roam is off unless you turn it on. With it on, holding Go live also starts the OBS broadcast, straight away and without waiting for you to check the picture. When you stop Roam, it only stops an OBS broadcast that it started.
Test on Twitch without going live
Twitch has a test mode that takes your stream without showing it to viewers.
- In OBS, open Profile, then Duplicate, and name the copy Twitch Bandwidth Test.
- In Settings, then Stream, choose Twitch. If you connected your account, tick Enable Bandwidth Test Mode. If you use a stream key, add
?bandwidthtest=trueto the end of it in Stream Key:YOUR-STREAM-KEY?bandwidthtest=true - Open Twitch Inspector, start streaming in OBS and check that Inspector sees the test. Also check your channel in a signed-out browser. If it shows as live, stop OBS and fix the setup.
- When you're done, stop OBS and switch back to your normal profile.
Twitch documents that the bandwidth test setting turns off live viewing. It only works on Twitch.
Stream to several platforms
Get your first platform working first. Your phone still sends one feed to OBS either way.
Through a restreaming service
OBS sends one stream to the service, and the service passes it on to each platform. See the free services and their limits.
For Restream, connect your platform accounts there and turn on the channels you want. In OBS, open Settings, then Stream, choose Restream.io and connect your account, or use the stream key Restream gives you. Restream's OBS setup has the details. Roam's OBS controls start and stop this broadcast. Check that each platform shows as live.
Straight from OBS with a free plugin
Multiple RTMP outputs adds more destinations to OBS. Each one is a separate upload from your home internet, so make sure it can handle the total.
- Stop streaming and close OBS. Install the plugin from its official releases, picking the build for your system and OBS version. A plugin can need a newer OBS than this guide does. Open OBS again.
- Keep your first platform in Settings, then Stream. Open Docks > Multiple output and choose Add new target.
- Name it and enter that platform's server address and stream key in their own fields.
- For video and audio, choose Reuse the streaming encoder as OBS if the platforms accept the same settings. It saves work on the computer. Each platform is still its own upload.
- Turn on both Sync start with OBS and Sync stop with OBS so the target follows your main OBS broadcast. Save it. Repeat for any other platforms.
- At the computer, start Roam and the OBS broadcast. Check picture, sound and live status on every platform. Stop the broadcast and check that every platform stops.
- Before you rely on it away from home, do the same start and stop with Roam's OBS controls.
The two sync settings are off for new targets, so check them. Roam controls the main OBS broadcast and can't tell whether each extra target is live. Extra targets are real broadcasts. Twitch's test mode only applies where you set it.
Less delay
The addresses use a two-second buffer. It smooths over a patchy connection and it is why OBS shows your phone slightly late. You can try a smaller number, for example 1000 in the Roam address and 1000000 in the OBS address. Change both. A smaller buffer breaks up more easily on mobile data.
Why Tailscale, and router ports
Tailscale connects your phone to your home computer while you're out. It works through most home routers without changing any settings, and it encrypts everything between your two devices. That keeps your camera feed and your OBS controls private, so nobody else can watch the feed or switch your scenes.
You don't need to open any ports on your router. If you opened ports 1234 or 4455 for an older version of this guide, close them. Don't share OBS through Tailscale Funnel either, because that makes it public.
How the three connections fit together
| Connection | What it does | Where you set it up |
|---|---|---|
| Roam to OBS, using SRT | Sends your phone's picture and sound | Roam Settings > Stream and an OBS media source (steps 4 and 5) |
| Roam to OBS WebSocket | Switches scenes and starts or stops the OBS broadcast | Roam Settings > OBS (step 6) |
| OBS to your platform | Sends the finished stream to viewers | OBS Settings > Stream (step 8) |
The OBS controls don't carry your camera. Sending your camera to OBS doesn't start the OBS broadcast unless Sync OBS streaming with Roam is on.
Troubleshooting
Roam says the stream destination isn't valid
Stream destination contains invalid characters means there is a space in the address, even at the very start or end. Stream destination is not valid usually means a character that can't go in an address, like < or >, or a symbol in the passphrase. SRT passphrase must be 10 to 79 characters means the passphrase is too short or too long.
Copy the Roam address from step 3 again and paste it over the old one. To see the whole address in Roam, tap the eye icon in the Stream URL box.
OBS shows nothing from the phone
Check that Tailscale is connected on both devices. Check that each app has its own address from step 3 and that both use the same passphrase. Check that Input Format is mpegts, the Roam phone source's eye icon is on, and no other source covers it. In Studio Mode, viewers see the Program side. OBS has a guide to receiving SRT.
The OBS control and the video are separate connections. A working OBS control doesn't mean the video is getting through.
OBS doesn't pick up the phone after a restart
Wait a few seconds after stopping Roam before you start it again. OBS needs a moment to reopen. Setting Reconnect Delay to 1 second shortens the wait.
The OBS control is missing from Roam
Turn on Show OBS control on main screen in Roam's Settings > OBS. Hiding the control doesn't disconnect OBS or turn off sync.
Roam can't connect to OBS: find which side is broken
Roam's status line tells you a lot. OBS authentication failed means the password is wrong. Connecting... that never ends means the phone can't reach the computer, and no password change will help. Then check these in order. Each one tells you where the problem is.
- Is OBS open on the computer, and is the computer awake? Roam can only connect while OBS is running.
- On the computer, open its web browser and go to
http://127.0.0.1:4455/. A plain page that says 426 or Upgrade Required means OBS's WebSocket server is on. Anything else: open Tools, then WebSocket Server Settings, and tick Enable WebSocket server. - On the computer, run
tailscale status(see step 2 for the command on each system). If your phone's line says offline, the phone's Tailscale has dropped off, whatever its app shows. Turn Tailscale off and on in the phone's app, or restart the phone, and run the command again. - On the phone, open its browser and type
http://YOUR-COMPUTER-ADDRESS:4455/into the address bar at the top, with your computer's Tailscale address in place of YOUR-COMPUTER-ADDRESS and with thehttp://part. The same 426 page means the phone reaches OBS, so the problem is in Roam's OBS settings: the address, the port4455, the password, or Enable Authentication unticked in OBS. If the page never loads, the two devices can't see each other: check both Tailscale apps are signed in to the same account, and that Allow incoming connections is on in the computer's Tailscale preferences.
Put only the address in Host (IP address or hostname), without http://, ws://, a port or a path. See OBS's remote control guide.
Which password goes where?
| Secret | Where it lives |
|---|---|
| The passphrase | Inside the two long addresses from step 3, and nowhere else. OBS and Roam must carry the same one. |
| The WebSocket Server Password | Only in OBS's WebSocket Server Settings and in Roam under Settings, then OBS, in Password. |
Not sure which is which? Replace both. Make a new passphrase in step 3 and paste both addresses again, then type a new Server Password in OBS and in Roam.
It worked on Wi-Fi but not on mobile data
The phone's Tailscale can drop off when the network changes. Turn Wi-Fi off, then turn Tailscale off and on in the phone's Tailscale app. Android shows a key icon at the top of the screen while a VPN such as Tailscale is on. Then run the checks above. To stop Android pausing it on an outing, set Tailscale and Roam Live to Unrestricted battery use (the phone's Settings, then Apps, the app, then Battery). Samsung phones need this most.
Tailscale stopped working after a virus scan or an update
Antivirus software can quarantine Tailscale. Repair or reinstall it from tailscale.com and restart the computer. Check that the computer still has the same 100. address. A reinstall can give it a new one; if so, build the addresses again in step 3 and update OBS and Roam. Check that Allow incoming connections is ticked in Tailscale's preferences. If OBS's settings were reset as well, type the Server Password again and check that the Roam phone source is still there.
The feed stops a while after you leave home
The computer went to sleep. On Windows, open Settings, then System, then Power (or Power & battery), and set sleep while plugged in to Never. On a Mac, open System Settings, search for sleep, and stop it sleeping automatically while plugged in.
The picture stops when you switch scenes
Put the same Roam phone source in every scene, as in Put your phone in every scene. Check that Restart playback when source becomes active and Close file when inactive are both unticked. OBS explains these in its media source guide.
The audio bar moves, but the recording is silent
Check that the Roam phone source isn't muted in OBS and is on the audio track your recording or stream uses. If its monitoring is set to Monitor Only (mute output), it's left out of your stream and recordings. Don't also pick up the same sound through Desktop Audio or a second mic, or you'll get an echo.
Mobile data is choppy
In Roam, try Data saver under Video quality, with Auto bitrate on. Check the home internet too. When Tailscale can't connect your devices directly, it sends traffic through a relay, and that can be too slow for steady video. See Tailscale's page on direct and relayed connections.
The feed and normal internet both stop
Stop Roam and OBS, then check normal internet on both devices. Use a network cable for the home computer if you can. Try a short test on mobile data before going back to higher quality.
A firewall blocks the connection
The video uses UDP port 1234 and the OBS controls use TCP port 4455, between your two devices over Tailscale. Allow only that on the computer's firewall, and check any Tailscale access rules. Don't turn the firewall off or open ports on your router. Tailscale's connection troubleshooting can help.
Tailscale is off and the phone has no internet
Android's Always-on VPN or Block connections without VPN may be waiting for a VPN that isn't connected. This setup doesn't need either, or an exit node. Reconnect Tailscale and check that normal browsing works.
Still stuck? Get in touch and say which step failed, plus your Roam version, phone model, computer system and OBS version. Remove passwords, full stream addresses and account details from screenshots and logs first.
