OBS to vMix over the internet, with SRT
The usual setup: someone runs OBS at a venue, a church hall, or at home, and the programme is cut in vMix somewhere else. You want the OBS output inside vMix as a normal input — switchable, keyable, with clean audio — and you want it to survive a domestic uplink.
SRT does that. The part people get stuck on is that neither side is reachable from the internet: the OBS machine sits behind NAT, and the vMix machine usually does too. One of them has to be reachable, or something in the middle has to be.
The shape of the path
OBS (caller) ──► relay: SRT in ──► SRT out ──► vMix (caller)
venue A public address, fixed ports venue B
Both ends dial out to a public address, so neither needs a static IP, a port forward, or a firewall rule. That is the entire reason a relay exists in this workflow.
If you happen to have a public static IP on the vMix side, you can skip the middle: set vMix to Listener and OBS to caller pointed at it. Everything below still applies, minus the relay.
1. Get the two addresses
Open @inoutsrt_bot, press Start, create a stream. You get a pair:
- input, something like
srt://de.inoutsrt.com:4012— this is where OBS pushes - output, something like
srt://de.inoutsrt.com:6023— this is what vMix pulls
Pick the node closer to the sender: that is where recovery has to work hardest. Free sessions are 30 minutes and you get three a day, which is enough to rehearse the whole path before you pay for anything.
2. OBS settings
Settings → Stream:
| Field | Value |
|---|---|
| Service | Custom |
| Server | srt://de.inoutsrt.com:4012?latency=200&pkt_size=1316 |
| Stream Key | leave empty |
Settings → Output → Output Mode: Advanced → Streaming:
| Field | Value | Why |
|---|---|---|
| Encoder | x264 (or NVENC H.264) | AV1/HEVC will not decode in vMix over MPEG-TS |
| Rate Control | CBR | SRT plans its buffer around a steady rate |
| Bitrate | 60–70% of your measured upload | leave room for retransmissions |
| Keyframe Interval | 1 s (2 s max) | this is how fast vMix can join or recover |
| CPU Usage Preset | veryfast | |
| Profile | main | |
| Tune | zerolatency | stops OBS holding frames for lookahead |
Settings → Output → Audio: AAC, 128 kbit/s, 48 kHz stereo.
Bitrate is not a wish, it is a measurement. Run a real upload test from the venue at the time of day the show happens, and take 60–70% of the worst figure. A 10 Mbit/s "up to" connection that dips to 4 during the evening will carry 2.5 Mbit/s reliably, not 8.
3. Latency: pick it, do not guess it
Ping the relay host from the OBS machine and read the average RTT. Then use the latency calculator — it applies Haivision's published table for your loss rate.
Rules of thumb that fall out of it:
| Path | Typical RTT | Sensible latency |
|---|---|---|
| Same country, wired | 10–30 ms | 120–200 ms |
| Cross-continent, wired | 90–150 ms | 400–600 ms |
| 4G/5G, anywhere | 30–80 ms, bursty loss | 600–1000 ms |
Set the same value on both ends. SRT negotiates the larger of the two, but matching them keeps your own arithmetic honest.
4. vMix settings
Add Input → Stream/SRT:
| Field | Value |
|---|---|
| Stream Type | SRT Caller |
| Hostname | de.inoutsrt.com |
| Port | 6023 (your output port) |
| Latency | same as OBS |
| Passphrase | only if you set one |
vMix connects, shows the picture, and from then on it behaves like any other input.
5. Prove it before the show
Two checks, five minutes, and they catch almost everything:
- Receiver check. Before touching OBS, point vMix at our free test signal. If the bars and timecode appear, vMix, its network and your SRT settings are all fine — anything that breaks later is on the OBS side.
- Full path check. Run OBS → relay → vMix with the real bitrate for ten minutes while someone watches the vMix input. Freezes here are loss; if the picture is clean but delayed more than you expected, that is buffer, and the delay budget tool tells you where it went.
What goes wrong, and what it means
| Symptom | Cause | Fix |
|---|---|---|
| vMix shows black, no error | OBS is not actually streaming | Check OBS says "Streaming"; bitrate graph must be non-zero |
| Picture freezes every few seconds | Bitrate too close to the uplink ceiling | Drop OBS bitrate 30% and retest |
| Freezes only during motion | CBR is not really CBR (VBR encoder) | Force CBR in OBS output settings |
| vMix input drops after seconds | Latency too low for the path | Raise both ends to 600 ms, then tune down |
| Audio drifts out of sync over an hour | Sample rate mismatch | 48 kHz everywhere, in OBS and in vMix |
| "Connection rejected" | Wrong port, or passphrase/pbkeylen mismatch | See SRT connection rejected |
Multiple destinations
One input can feed several outputs at once — main vMix, a backup machine, a producer watching on VLC. Each output is its own SRT address, pulled independently, so a producer with bad Wi-Fi never affects the programme feed.
Need a tunnel that carries your own video?
IN/OUT-SRT is a hosted SRT relay in Germany and the USA. Your encoder connects in, your receiver connects out — no static IP, no port forwarding, nothing installed. Three free 30-minute sessions every day; a full production day is $5.