media server logo

How to Send and Receive RTMP Streams in OBS Studio

Apr 28, 2026

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.

OBS RTMP input vs OBS RTMP output

OBS can work with RTMP in two different directions.

An OBS RTMP output means OBS sends your program feed to an RTMP server. This is the most common workflow for live streaming. You enter the RTMP server URL and stream key in OBS, then click Start Streaming.

An OBS RTMP input means OBS receives an RTMP feed as a source inside a scene. This is useful when you want to monitor a remote feed, bring another encoder into your production, or validate that a server is returning the correct stream. In this case, you add the feed as a Media Source or VLC Source and use the playback URL, not the publishing URL.

The important part is not to mix these two URLs. The publish URL is for sending video out of OBS. The player or feed URL is for bringing video back into OBS.

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.

How to receive an RTMP feed in OBS

To receive an RTMP feed in OBS, first make sure the RTMP server is already receiving a live stream. Then copy the playback or player URL from the server side and add it to OBS as a source.

Use this workflow:

  1. Create or open the scene where you want to show the incoming feed.
  2. Click + in the Sources panel.
  3. Choose Media Source.
  4. Disable Local File.
  5. Paste the RTMP player URL into the input field.
  6. Save the source and check the preview.

If OBS does not show the feed, check whether the stream is actually live on the server. A correct input URL will not show video if the publishing side is offline, the stream key is wrong, or the server is not producing a playback endpoint.

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.

What is OBS RTMP?

OBS RTMP usually means sending a live stream from OBS Studio to an RTMP server. OBS acts as the encoder. The RTMP server receives the stream and can then record it, restream it, convert it to HLS or WebRTC, or make it available for internal monitoring.

How do I set up an RTMP server in OBS?

In OBS, go to Settings → Stream, choose a custom streaming server, paste the RTMP or RTMPS server URL into the Server field, and paste the stream key into the Stream Key field. Then click Start Streaming. OBS sends the stream to the server; OBS itself is not the RTMP server in this setup.

Can OBS receive an RTMP stream?

Yes. OBS can receive an RTMP feed as a source. Add a Media Source, disable Local File, and paste the RTMP playback URL into the input field. This is useful for monitoring a remote feed or bringing another live source into your OBS scene.

What is the difference between OBS RTMP input and OBS RTMP output?

OBS RTMP output means OBS sends video to an RTMP server. OBS RTMP input means OBS receives an RTMP feed as a source inside a scene. The output workflow uses a publish URL and stream key. The input workflow uses a player or feed URL.

Why is my OBS RTMP input not showing video?

The most common reason is that the wrong URL is being used. A publish URL is for sending video to the server, not for watching it. To receive video in OBS, use the player or playback URL. Also check that the stream is live, the server is receiving data, and the source is not set to Local File.

Do I need an OBS RTMP server plugin?

Usually, no. OBS can already send RTMP and RTMPS streams to custom servers. A plugin is only needed for special workflows, such as sending one OBS output to multiple RTMP destinations at the as sending one OBS output to multiple RTMP destinations at the same time. For production ingest, a dedicated RTMP server or streaming platform is usually cleaner and easier to monitor.

Can OBS send one stream to multiple RTMP servers?

OBS normally sends the main stream to one destination. To send to multiple RTMP destinations, you can use a multi-RTMP plugin or send OBS to one RTMP server first and let the server restream the feed to other platforms. The server-based approach is often better when you need logs, recording, access control, and centralized monitoring.

What is an RTMP feed in OBS?

An RTMP feed is a live video stream available through an RTMP playback URL. In OBS, you can add that feed as a Media Source and use it inside a scene. This is different from sending your OBS output to an RTMP server.

Is OBS an RTMP server?

No, not in the normal workflow. OBS is mainly used as an encoder and production tool. It sends video to an RTMP server. The RTMP server receives the stream and handles the next step, such as playback, recording, or restreaming.

Should I use RTMP or RTMPS in OBS?

Use RTMPS when the receiving platform supports it and you are publishing over the public internet. RTMPS encrypts the publishing connection. RTMP can still be useful for local tests, private networks, and internal workflows where encryption is handled elsewhere.

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.