How to Send and Receive RTMP Streams in OBS Studio
This step-by-step OBS Studio tutorial shows how to send an RTMP stream to a custom server, enter the correct server URL and stream key, and then validate or receive the RTMP feed with the right player URL.
Prerequisites
- A Callaba account with access to the dashboard.
- OBS Studio installed on the machine that will send the stream.
- A video or audio source already available in OBS.
- Network access to the RTMP ingest port.
If you are new to the platform, see how to launch and start using Callaba. If you need a quick refresher on what this endpoint represents, see what an RTMP server is.
RTMP values you need before opening OBS
Before you switch over to OBS, make sure you have the exact values the receiver expects. In most RTMP workflows you need:
- Server URL, for example
rtmp://host:1935/appor anrtmps://endpoint. - Stream Key or Stream Name, depending on how the receiver authenticates the publish session.
- Player or validation URL, which is often different from the publish URL.
This matters because many troubleshooting mistakes happen before the stream even starts: teams paste a player URL into OBS, use an expired key, or assume the ingest URL and playback URL are the same thing.
Send an RTMP stream from OBS Studio to Callaba
1. Create an RTMP server in Callaba
Open the Callaba dashboard, go to RTMP Servers, and click Add new. Give the server a clear name, adjust the port only if your workflow requires it, and save the new ingest entry.

2. Copy the RTMP publish values
On the RTMP Servers listing page, open the server details and copy the RTMP URL and the Default Stream Key. These are the two values OBS needs for publishing.

3. Enter the RTMP values in OBS Studio
Open OBS Studio and prepare the scene you want to stream. Then go to Settings -> Stream, paste the RTMP URL into the Server field, and paste the Default Stream Key into the Stream Key field.
3a. OBS output settings that matter for RTMP
Before you press Start Streaming, make sure your OBS output settings match the network path and the receiving side.
- Bitrate: choose a value your upload bandwidth can actually sustain.
- Keyframe interval: many platforms expect a 2-second interval.
- Resolution and frame rate: keep them realistic for the encoder and the target workflow.
- Audio: confirm the receiver expects standard AAC audio settings.
If your stream keeps failing after the URL and key are correct, these OBS output settings are one of the first places to check.
Save the settings and click Start Streaming.

4. Confirm that OBS is really sending
Once the stream starts, OBS should show bitrate movement in the status area. This is your first signal that media is leaving the encoder and going to the RTMP server.

At this point the publish side is live. If you want viewer playback, you can continue into a player or downstream workflow after the ingest is confirmed.
Receive the RTMP stream in OBS Studio
1. Copy the RTMP player URL from Callaba
Go back to RTMP Servers, open the server details again, and copy the RTMP Player URL. This is the value you will use to pull the stream back into OBS for validation or internal monitoring.

2. Add a Media Source in OBS
Open OBS Studio. In the Sources panel, click + and choose Media Source.

3. Name the receiving source
Create a clear source name so it is obvious that this source is the incoming RTMP playback feed rather than your original local camera or file source.

4. Enter the RTMP player URL
In the Media Source settings, clear the Local File checkbox and paste the RTMP Player URL into the input field. Save the changes, then make the source live in your OBS program view.

If the stream is live and the player URL is correct, you should now see the RTMP feed playing in OBS.
What to check before you assume the stream is broken
- Publish URL vs player URL: they are usually not the same.
- RTMP vs RTMPS: confirm which protocol the receiver expects.
- Port reachability: TCP 1935 is common, but many managed workflows use a different path or TLS wrapper.
- Correct stream key: copied from the same ingest entry you are trying to use.
- Monitoring target: validate against the real playback or monitoring endpoint, not just the OBS sender state.
Common problems and quick fixes
- No signal after pressing Start Streaming: check the RTMP URL, stream key, port, and firewall reachability.
- OBS shows activity but the receiver stays dark: make sure you are validating with the player URL, not the publish URL.
- Authentication or connection failure: re-copy the stream key and confirm the ingest entry still matches the same RTMP server.
- Playback source does not load in OBS: verify that Local File is disabled and that the player URL is the RTMP playback endpoint, not the ingest endpoint.
When RTMP is still the right choice and when SRT is better
RTMP is still a good fit when you need broad compatibility with familiar publishing workflows and want the fastest path from OBS into a managed ingest endpoint. If you are working over less stable public internet links and need stronger recovery behavior, compare this workflow with SRT vs RTMP before you scale it out.
Next steps
- Create a player or downstream delivery flow if the RTMP ingest is meant for viewers.
- Use the same pattern to validate RTMP feeds internally before routing them further.
- If your team also works with other operator tools, continue into the related vMix guides.