OBS SRT setup: stream from OBS Studio to Callaba
Written by Iurii Pakholkov
Founder of Callaba. Building cloud video tools for SRT, RTMP, WebRTC, NDI, live routing, monitoring, recording, and production workflows.
Last updated:
This tutorial shows how to start streaming from OBS Studio over SRT using a Callaba SRT server. You will prepare a source in OBS, create an SRT server in Callaba, copy the correct SRT Publisher URL, paste it into OBS, and confirm that the stream is arriving at the server.
OBS can work with SRT in two directions. It can send an SRT stream to a server, or it can receive an SRT stream as a source inside a scene. This page focuses on the sending workflow: OBS Studio → Callaba SRT server.
If you need to receive an SRT feed inside OBS instead, use this guide: how to receive an SRT stream in OBS Studio.
Quick answer
To stream from OBS over SRT, create an SRT server in Callaba, copy the SRT Publisher URL, paste it into OBS stream settings, and start streaming. In this workflow OBS is usually the caller, Callaba is the listener, and the selected SRT port must be open for UDP traffic.
OBS SRT: send vs receive
When people say “OBS SRT,” they usually mean one of two workflows.
- OBS sends SRT: OBS acts as the encoder and publishes the live stream to an SRT server.
- OBS receives SRT: OBS acts as a receiver and plays an incoming SRT stream inside a scene.
The URL is different for each direction. To send from OBS, use the Publisher URL. To receive in OBS, use the Receiver URL or playback URL.
This distinction matters. A common mistake is to paste a receiver-side SRT URL into the OBS streaming output settings. That URL is meant for watching or receiving the stream, not publishing it.
What is an SRT URL in OBS?
An SRT URL tells OBS where to send or receive an SRT stream. It usually includes the protocol, host, port, and optional parameters such as connection mode, latency, passphrase, or stream ID.
A simple SRT URL can look like this:
srt://your-server.example.com:9000
An SRT URL with connection mode can look like this:
srt://your-server.example.com:9000?mode=caller
An SRT URL with latency can look like this:
srt://your-server.example.com:9000?mode=caller&latency=500000
In many OBS and FFmpeg-style SRT URLs, latency is written in microseconds. For example, 500000 means 500 ms. If Callaba gives you a ready Publisher URL, use that URL instead of building one manually.
Publisher URL vs Receiver URL
Callaba can show different SRT URLs for different sides of the workflow.
- Publisher URL: use this when OBS sends a stream into Callaba.
- Receiver URL: use this when another tool receives or watches the stream from Callaba.
For this tutorial, you need the SRT Publisher URL. OBS is the sender. Callaba is the receiving server.
The workflow is:
OBS Studio → SRT Publisher URL → Callaba SRT server
What you need before you start
- The latest version of OBS Studio.
- A video source in OBS, such as a camera, screen capture, media source, or full scene.
- A Callaba instance with access to SRT Servers.
- The correct SRT Publisher URL from Callaba.
- Network access to the UDP port used by the SRT server.
If you are new to Callaba, start with how to launch and start using Callaba.
Quick start checklist
- ☐ OBS scene contains live video and audio
- ☐ SRT server is created in Callaba
- ☐ Publisher URL is copied, not Receiver URL
- ☐ UDP port is open in the cloud security group and host firewall
- ☐ Publisher URL is pasted into OBS stream settings
- ☐ H.264 video and AAC audio are selected for the first test
- ☐ OBS bitrate is below the real upload bandwidth
- ☐ Callaba shows incoming bitrate, connection state, RTT, packet loss and preview
Prepare the source in OBS Studio
1. Install or open OBS Studio
Make sure OBS Studio is installed and up to date. Open it on the machine that will send the stream.
2. Add a video source
In the lower control area, find the Sources box, click the + button, and choose the source you want to stream.
For a camera workflow, choose Video Capture Device. For a screen workflow, choose Display Capture or Window Capture. OBS sends the full program output, so the source can be a camera, screen, media file, or complete scene.
3. Name the source
Give the source a clear name. This makes it easier to manage the scene later, especially if you add several cameras, screen captures, or remote feeds.
4. Choose the camera and resolution
If you are using a camera, select the device and choose the resolution that fits your workflow. In this example, the source is a USB camera.
Create an SRT server in Callaba
5. Create the SRT ingest point
Open Callaba, go to SRT Servers, and click Add New.
Create a server with a clear name. Set the Publisher Port and Receiver Port according to your workflow, then save the server.
After the server is created, open its details. There you will see the parameters for publishing and receiving the stream.
6. Copy the SRT Publisher URL
Copy the SRT Publisher URL from Callaba.
This is the URL that OBS will use to send the stream into the SRT server. Do not copy the Receiver URL for this step.
Important: SRT uses UDP. Make sure the selected Publisher Port is open in the cloud security group, server firewall, and network path. Opening only TCP is not enough.
Configure OBS for SRT output
7. Open OBS stream settings
In OBS Studio, open Settings and go to the Stream tab.
8. Paste the SRT Publisher URL into OBS
Use the SRT Publisher URL from Callaba as the destination in OBS.
In a typical custom SRT setup, the full SRT URL goes into the server or destination field. Leave the stream key field empty unless your server or workflow explicitly requires a separate key.
If your OBS version or output mode asks for a full FFmpeg/SRT URL, paste the full Publisher URL exactly as Callaba provides it.
Save the stream settings and return to the main OBS window.
SRT caller and listener mode in OBS
For most OBS-to-server workflows, OBS is the caller, and the SRT server is the listener.
- Caller: the side that starts the connection. In this tutorial, OBS is the caller.
- Listener: the side that waits for the connection. In this tutorial, Callaba is the listener.
- Rendezvous: both sides try to connect to each other. Use this only for special NAT cases and test it before production.
If Callaba gives you a Publisher URL with the correct mode already included, use it as-is. If you build the URL manually, the OBS sending URL commonly uses caller mode:
srt://your-callaba-server.example.com:9000?mode=caller
SRT latency settings for OBS streaming
SRT latency gives the receiver time to recover late or lost packets. Lower latency reduces delay, but it also gives SRT less room to recover from packet loss and jitter.
For stable networks, a lower latency value may work. For mobile networks, venue internet, Wi-Fi, or long-distance routes, you may need a larger latency value.
Example with latency:
srt://your-callaba-server.example.com:9000?mode=caller&latency=500000
Do not choose the lowest possible value only because it looks better. A slightly larger latency buffer can make the stream much more stable during a real event.
Start streaming from OBS over SRT
9. Start streaming
Click Start Streaming in OBS.
If everything is configured correctly, OBS should show an active session and a healthy status indicator. At this point, OBS is sending the SRT stream to Callaba.
Confirm the stream in Callaba
Open the SRT server in Callaba and check that bitrate is arriving. Do not rely only on the OBS button state. A stream can appear started in OBS while the server receives no usable media because of a wrong URL, blocked UDP port, wrong mode, or network issue.
Check these signals:
- Incoming bitrate: confirms that media is arriving. It should be stable and close to the bitrate selected in OBS.
- Connection state: confirms that the SRT session is active.
- RTT: shows round-trip timing on the path. In good conditions, 20–60 ms is common. If RTT is consistently above 150 ms or keeps growing, check the network.
- Packet loss and retransmissions: show whether SRT is recovering from network problems. Loss above 1–2% usually means you should increase latency, lower bitrate, or improve the uplink.
- Preview or downstream output: confirms that the media is actually usable.
Advanced: Custom FFmpeg output
Use Custom FFmpeg output only when the simple OBS streaming path is not enough. It is useful when you need MPEG-TS container control, explicit SRT options, or advanced audio mapping.
URL:
srt://your-callaba-server.example.com:9000?mode=caller&latency=500000&pkt_size=1316
Container:
-f mpegts
Typical codec direction:
-c:v libx264 -c:a aac
If you see MTU or fragmentation-related issues, testing pkt_size=1316 can help. Keep H.264 video and AAC audio for the first test, then add advanced options only after the simple path is stable.
Production note: advanced FFmpeg output can behave differently from the normal OBS streaming path, especially with audio tracks and manual mapping. Test it before the event day.
What to check if OBS SRT streaming does not start
- Publisher URL: make sure you copied the publisher-side SRT URL, not the receiver-side URL.
- SRT mode: OBS should usually be caller when sending to a server listener.
- UDP port: confirm that the SRT port is open in the cloud security group, server firewall, and network path.
- Wrong server address: check the hostname or IP address in the SRT URL.
- Passphrase mismatch: if encryption is enabled, the passphrase and encryption settings must match.
- Stream ID mismatch: if your workflow uses stream ID, make sure the value matches the server routing rule.
- OBS source issue: confirm that OBS has a real video source and is not sending a blank scene.
- Latency too low: increase latency if the stream starts but breaks up on unstable networks.
- OBS logs: open Help → Log Files in OBS and search for SRT, FFmpeg, connection errors, and the URL you used.
Common OBS SRT problems and fixes
OBS starts streaming but Callaba receives nothing
Re-copy the SRT Publisher URL from Callaba and verify the publish port. Then check UDP firewall rules. SRT uses UDP, so opening only TCP is not enough.
The stream connects but is unstable
Look at RTT, packet loss, retransmissions, bitrate, and latency. If latency is too low for the real network path, the stream may connect but break up during jitter or packet loss.
OBS sends video but there is no audio
Check the OBS audio mixer, selected audio devices, muted sources, and output audio settings. SRT can carry audio, but it cannot fix a missing or muted audio source in OBS.
The wrong video appears in the SRT stream
Check the active OBS scene and source order. OBS sends the program output, not only the camera source you created earlier.
You can send but cannot receive the stream in OBS
Sending and receiving use different URLs and often different roles. Use the Publisher URL when OBS sends to Callaba. Use the Receiver URL when OBS receives or previews the stream.
When SRT is a better choice than RTMP in OBS
SRT is often the better choice when OBS needs to send a contribution feed over an unstable or long-distance network. It supports packet recovery, encryption, latency tuning, and useful transport statistics.
RTMP is still useful for simple publishing and broad compatibility with social platforms. But if you control the receiving side and the contribution path matters, SRT is usually stronger than RTMP.
A common workflow is:
OBS → SRT → Callaba → RTMP/RTMPS to Twitch, YouTube, Facebook, or another platform
If you want to compare transport choices before standardizing the workflow, read SRT vs RTMP.
Production notes
- Main and backup: for important events, send a main OBS output and a backup output into separate SRT servers or separate routes.
- Recording: confirm cloud recording before the event, not during the event.
- Monitoring: watch incoming bitrate, RTT, packet loss, preview, and audio.
- Latency policy: use lower latency only on stable networks. Use a larger buffer for mobile, Wi-Fi, venue internet, or long-distance contribution.
- Multi-track audio: start with one stereo AAC mix. Test multi-track audio separately if you need clean feed, commentary, or ambience tracks.
FAQ
Does OBS support SRT?
Yes. OBS can send an SRT stream to a server and receive an SRT stream as a source inside a scene. This page focuses on the sending workflow: OBS Studio to a Callaba SRT server.
How do I stream from OBS over SRT?
Create an SRT server in Callaba, copy the SRT Publisher URL, open OBS stream settings, paste the Publisher URL into the destination or server field, save the settings, and click Start Streaming.
What is an SRT URL in OBS?
An SRT URL is the network address OBS uses to send or receive an SRT stream. It can include the protocol, host, port, mode, latency, stream ID and passphrase.
Where do I paste the SRT URL in OBS?
For sending SRT, paste the Publisher URL into the OBS stream destination or server field, depending on your OBS output mode. Leave the stream key empty unless your workflow explicitly requires a separate key.
Should OBS use SRT caller or listener mode?
When OBS sends to a server, OBS is usually caller and the server is listener. In this workflow, OBS calls the public Callaba SRT server.
Do I use the Publisher URL or Receiver URL in OBS?
Use the Publisher URL when OBS sends a stream into Callaba. Use the Receiver URL when OBS receives or previews a stream from Callaba. Mixing these URLs is a common setup mistake.
Why is OBS SRT not connecting?
Common causes include a wrong URL, wrong caller/listener mode, blocked UDP port, wrong hostname, passphrase mismatch, stream ID mismatch, or firewall rules that allow TCP but not UDP.
Why does OBS start streaming but no video arrives?
OBS may show that streaming started while the server receives no usable media. Check the Publisher URL, UDP port, server statistics, active OBS scene, video source, bitrate and connection logs.
Is SRT better than RTMP for OBS?
SRT is usually better for contribution over unstable, lossy or long-distance networks. RTMP is still useful for simple publishing and platform compatibility.
Can OBS send multiple audio tracks over SRT?
For a simple workflow, send one mixed stereo AAC track. Multi-track audio is possible in advanced FFmpeg-style workflows, but it should be tested carefully because downstream support varies.
Next steps
Try Callaba Gateway with OBS SRT
Create an SRT server in Callaba, send your OBS Studio feed to the gateway, and check the received stream before routing it to recording, restreaming, multiview, playback, or API workflows.
See SRT server setup Open multiview demo SRT servers API docs