media server logo

How to Send and Receive RTMP Streams in OBS Studio

May 25, 2023

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/app or an rtmps:// 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.

Create a new RTMP server in Callaba

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.

Copy RTMP URL and default stream key from Callaba

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.

Configure RTMP server and stream key in OBS Studio

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.

OBS bitrate activity while sending RTMP

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.

Copy RTMP Player URL from Callaba

2. Add a Media Source in OBS

Open OBS Studio. In the Sources panel, click + and choose Media Source.

Add Media Source in OBS

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.

Name the RTMP media source in OBS

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.

Paste RTMP Player URL into OBS Media Source

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.