Stream to (and control) your home OBS
Send your phone’s feed to a PC at home running OBS, and let OBS broadcast to Twitch or Kick. Because your home PC stays connected, your viewers keep watching even when your phone briefly loses signal. It’s a cheap DIY version of the paid drop-protection services, using a PC you already own.
- A PC at home (Windows, Mac, or Linux) running OBS Studio v28 or newer.
- Access to your router’s admin page (login is usually on a sticker on the router).
- Your phone with Roam installed.
How it works
Two separate connections run between your phone and your PC:
- Your video, sent over SRT (which handles shaky connections far better than RTMP).
- Remote control of OBS, over OBS WebSocket, so you can switch scenes and start/stop OBS from your phone.
Roam sends the video to OBS; OBS broadcasts it onward to your chosen streaming platform. The two connections use different ports, which is why you’ll open both further down.
Part 1.Set up OBS
Enable OBS WebSocket
- In OBS: Tools menu → WebSocket Server Settings.
- Tick Enable WebSocket server. Leave the port at
4455. - Click Show Connect Info to see the Server Password. Type it straight into Roam now (Settings → OBS → Password), or write it down somewhere. Capitals matter, so get it exact. You’ll finish the OBS pairing in Part 3.
Add a Media Source for the incoming feed
- In your active scene’s Sources panel, click + → Media Source. Name it whatever makes sense to you; for this guide we’ll call it
Roam Phone Feed. - Uncheck “Local File”.
- In the Input field, paste:
srt://0.0.0.0:1234?mode=listener
0.0.0.0 means “listen on all
interfaces,” 1234 is the port (any unused
port works), and mode=listener makes OBS the
receiver. Click OK.
Roam Phone Feed source to every single
scene (BRB, intermission, all of them), visible in
each, layered under your artwork. If any scene is missing
it, OBS closes or pauses the feed behind the scenes and you
get reconnect warnings on the phone, failed go-lives, and
delayed or old footage when you switch
back. It looks like app lag; it’s OBS buffering. The
“Scenes, BRB, and audio” section below has the
full recipe.
Part 2.Open a path to your PC
Port forwarding makes your home PC reachable from the internet, so your phone can reach it over cellular. There are three sub-steps: find your PC’s local IP, find your public IP, then add two rules on your router.
2A. Find your PC’s local IP
Press Win + R, type cmd, Enter. Type ipconfig, Enter. Find the IPv4 Address of your active connection, it looks like 192.168.0.121. Write it down.
System Settings → Wi-Fi (or Ethernet) → Details on the active connection → IP Address. It looks like 192.168.0.121. Write it down.
Terminal: ip a. Find your active interface (wlan0, eth0, etc.); the address after inet, before the /, is your IP. It looks like 192.168.0.121. Write it down.
2B. Find your public IP
Go to Google and search “what is my ip”.
The top result shows it, a number like 203.0.113.7
(not 192.168.x.x, that’s the local one).
Write it down, your phone needs it.
2C. Add two rules on your router
- Log into your router. The admin address and password are usually on a sticker on the router; otherwise try
192.168.0.1or192.168.1.1in a browser. - Find Port Forwarding (sometimes under NAT, Virtual Server, or Applications & Gaming).
- Add the video rule: Protocol UDP, external port
1234, internal IP = your PC’s local IP (you wrote this down in 2A), internal port1234. - Add the control rule: Protocol TCP, external port
4455, same internal IP, internal port4455.
Part 3.Set up Roam
-
Open Roam → Settings → Stream.
In Stream URL, enter
srt://YOUR_PUBLIC_IP:1234/live.
SRT requires something on the end of the URL. You can use any word there; we’ll uselive. OBS as a listener ignores it. - Scroll to the OBS section. Host = your public IP, Port =
4455, Password = the one from Part 1. Tap Connect, the row should go green within a couple of seconds. - Leave Sync OBS streaming with Roam off for now (it’s off by default). With it off, going live on Roam sends your feed to OBS without starting OBS’s broadcast, so you can pair, see the feed in OBS, and arrange your scene before you actually go live to your platform.
- Optional: pick a BRB scene. Once paired, your OBS scenes appear as chips, tap one and the HUD BRB button will switch OBS to it.
- For the first test, set Bitrate to
1500kbps (leave Auto bitrate on). Lower is more forgiving on cellular; bump it up once it all works.
Part 4.Go live and test
- Turn WiFi off on your phone so you’re on cellular, this is the real path your stream will take.
- Tap and hold GO LIVE in Roam. The Roam pill goes red (LIVE) and your feed starts flowing to OBS.
- In OBS, the Media Source fills with your phone’s camera within a couple of seconds. Now you can size and position it in your scene.
- When you’re ready to broadcast, tap the OBS pill (the small rounded button in the top-left of the home screen that says OBS) and choose Start OBS streaming (or start it in OBS directly). OBS begins broadcasting to your platform. Check the platform, you should be live.
- To finish: tap End Stream in Roam to stop the feed. Then tap the OBS pill again and you’ll see the option to stop OBS streaming (or stop it from OBS directly).
Scenes, BRB, and audio
OBS only keeps the SRT listener open and playing in real time while the Media Source is active in the program scene. Switch to a scene that doesn’t contain the source and OBS closes or pauses it: Roam shows RECONNECTING for no visible reason, going live fails with “ICMP Port unreachable”, and coming back from a break can play old video and audio while OBS drains what it buffered. None of that is the phone; it’s how OBS treats inactive sources.
One setup avoids all of it:
- Add the same
Roam Phone Feedsource to every scene, including BRB and any “lost connection” scene. Keep its visibility eyeball on in each scene, and hide it by layering your BRB artwork over it. An eyeball turned off deactivates the source, which is exactly what we’re avoiding. - In the source’s properties, uncheck “Restart playback when source becomes active”, and leave “Close file when inactive” unchecked.
- Set Network Buffering to its minimum.
With the source alive in every scene, scene switches are instant, nothing buffers, and the feed you return to is always current.
Troubleshooting
“Failed to connect” when I tap Connect on OBS
Usually one of: OBS WebSocket isn’t actually enabled (re-check Part 1), the wrong public IP, or a firewall on the PC blocking port 4455 (TCP). On Windows, accept the Defender Firewall prompt; on Linux, sudo ufw allow 4455/tcp; on Mac, System Settings → Network → Firewall → allow OBS.
Roam says “Live” but the OBS Media Source stays empty
The SRT source isn’t listening. Most likely Studio Mode hasn’t been transitioned, or the Media Source isn’t in the active scene with visibility on. Or a firewall is blocking port 1234 (UDP), separate from the WebSocket rule: sudo ufw allow 1234/udp on Linux, similar on Windows.
“ICMP Port unreachable” when I go live
Your phone sent UDP and the PC replied “nothing’s listening here.” Same cause as above, OBS isn’t listening on the SRT port yet (Studio Mode or Media Source visibility). Also check which scene OBS is sitting on: if it was left on a scene without the feed source, like a BRB scene, the listener stays closed until you switch back. Putting the source in every scene (see “Scenes, BRB, and audio” above) removes this failure entirely.
Everything looks right but the cellular stream won’t connect
Most often this is CGNAT: some ISPs share one public IP across many customers, so your “public IP” isn’t reachable from outside. Test by visiting http://your-public-ip:4455 from a device on cellular (not your home WiFi); if it times out, it’s likely CGNAT, and you’ll need to ask your ISP for a real public IPv4 address (some give it free, some charge a couple of dollars a month). Also double-check no VPN is running on the PC or router.
The feed is delayed, or shows old footage after BRB or a scene switch
That’s OBS, not the phone. A media source that isn’t visible in the program scene stops playing in real time while data keeps arriving; when it comes back, OBS plays the backlog: old video, old audio, sometimes minutes behind, until it suddenly snaps to live. Fix: add the feed source to every scene (visible, under your artwork), uncheck “Restart playback when source becomes active”, and set network buffering to minimum. Full detail in “Scenes, BRB, and audio” above.
Audio sounds bad or robotic
Usually the upload bandwidth is too low for the bitrate, drop Roam’s bitrate. If you’re on a Bluetooth mic, that uses a phone-call codec (mono, 8–16 kHz) and sounds noticeably worse than the built-in mic; a wired or USB-C mic is much better.
Want to stream without a PC in the loop? See Stream to a hosted service. Or learn what every button and setting does.