media server logo

RTMP server: what it is, how it works, RTMPS, ports, stream keys and live video ingest

Dec 30, 2022
Iurii Pakholkov, founder of Callaba

Written by Iurii Pakholkov

Founder of Callaba. Building cloud video tools for SRT, RTMP, WebRTC, NDI, live routing, monitoring, recording, and production workflows.

Release: Callaba 8.4 · Last updated: May 21, 2026

An RTMP server is a live video ingest endpoint that receives a publishing connection from OBS, vMix, a hardware encoder, a mobile encoder, or another broadcast tool. It is usually the first system your encoder talks to when you go live.

In production, the useful questions are simple: what exact endpoint should the encoder use, how is publishing authenticated, how is the stream handed off downstream, and what happens if the primary path fails. That is where RTMP server design matters.

This guide explains what an RTMP server does in modern live workflows, how RTMP and RTMPS differ, which ports to open, how OBS server URL and stream key fields work, and how Callaba can use RTMP feeds for monitoring, recording, restreaming, playback and routing.

Quick answer: what is an RTMP server?

An RTMP server is the ingest point that accepts live video from an encoder. The encoder publishes to an RTMP or RTMPS URL, usually with a stream key. The server validates the publishing session, receives the video and audio, and passes the feed to the next workflow step: recording, transcoding, HLS packaging, WebRTC playback, restreaming, multiview, or another platform.

RTMP server for live video ingest Indexable diagram showing OBS or a hardware encoder publishing RTMP or RTMPS to an RTMP server, then the server routing the feed to recording, restreaming, HLS, WebRTC and monitoring workflows. RTMP serverlive video ingest · RTMP/RTMPS · stream key · recording · restreamingPublisherOBS, vMix, hardwareencoder, mobile appRTMP / RTMPSserver URL · app path · stream keyRTMP serveringest endpointauth · receiveroute · fan outRecordHLSWebRTCRestreamOBS ingestRTMPSTCPworkflow control
An RTMP server is usually the ingest layer. Recording, playback, restreaming and monitoring happen after the server receives the feed.

What is an RTMP server?

An RTMP server receives live video and audio from a publisher. A typical RTMP publish endpoint has a host, port, application path and stream key.

  • Host: ingest.example.com
  • Port: often 1935 for RTMP or 443 for RTMPS.
  • Application path: /live or /ingest.
  • Stream key: the unique publish credential for one stream.

The key operational point is that an RTMP server is primarily an ingest layer, not automatically the viewer playback layer.

What is an RTMP live server?

An RTMP live server is an RTMP server used for real-time publishing. It receives a live feed while the event is happening and passes it into recording, restreaming, transcoding, routing, or playback workflows.

RTMP remains common because many encoders and production tools support it. That makes it useful as a simple front door for contribution, especially when compatibility matters.

How an RTMP server works

An RTMP server receives a TCP publishing session from an encoder. The server does not automatically solve playback. It receives the feed first, then another layer records, transcodes, repackages, restreams, or delivers the stream to viewers.

How an RTMP server works Indexable workflow diagram showing encoder publish, RTMP or RTMPS ingest, authentication, media handoff, recording, restreaming and browser playback packaging. How an RTMP server worksRTMP is usually the publishing front door. Viewers normally receive HLS, DASH or WebRTC after repackaging.1. PublishOBS / encoder2. IngestRTMP / RTMPS3. Validatestream key / app4. Handoffrecord / package5.viewersrecordingrestreamingtranscodingHLS / WebRTC
RTMP is usually the publishing front door. Modern playback usually happens after repackaging to HLS, DASH or WebRTC.

RTMP URL, app path and stream key

Most RTMP configuration errors come from splitting the server URL and stream key incorrectly. In most broadcast tools, the server URL contains the protocol, host, optional port and application path. The stream key goes into a separate field.

RTMP server URL anatomy Indexable diagram explaining RTMP publish URL structure: protocol, host, port, application path and stream key. RTMP server URL anatomyMost OBS mistakes come from mixing up the server URL, app path and stream key.rtmps://ingest.example.com:443/liveStream Key: event-01-abcd1234protocolrtmp / rtmpshostingest.example.comport443app path/livestream keysecret
Keep the server URL and stream key separate unless your tool explicitly asks for one combined publish URL.
Install steps
Service: Custom
Server: rtmps://ingest.example.com/live
Stream Key: event-01-abcd1234

Examples of full server URLs:

Install steps
RTMP:  rtmp://ingest.example.com:1935/live
RTMPS: rtmps://ingest.example.com:443/live

RTMP vs RTMPS

RTMP is the classic unencrypted publishing protocol. RTMPS is RTMP over TLS. For public internet publishing, RTMPS should usually be the default because it protects the publishing connection in transit.

RTMP and RTMPS ports Indexable diagram comparing plain RTMP on TCP port 1935 and encrypted RTMPS over TLS often on port 443. RTMP vs RTMPS for ingestPlain RTMP is useful on trusted networks. RTMPS is the safer default for internet-facing publishing.RTMPtcp/1935 common defaultunencrypted transportsimple local testingprivate networksRTMPSTLS, often tcp/443encrypted ingestpublic network defaultcertificate must match hostFor public ingest, prefer RTMPS unless your workflow has a clear reason not to.
Use plain RTMP only when you have a clear reason and a controlled network. Use RTMPS for internet-facing ingest.
Mode Typical port Use case
RTMP TCP 1935 Private networks, local tests, trusted internal ingest.
RTMPS Often TCP 443 Public internet ingest and encrypted publishing.

RTMPS certificate check: before using RTMPS, confirm that the server certificate is valid and that the hostname in the OBS or encoder URL matches the certificate name. If the certificate is expired, incomplete, self-signed, or issued for a different hostname, OBS or another encoder may reject the connection.

RTMP ports and firewall rules

RTMP uses TCP. Plain RTMP commonly uses port 1935. RTMPS often uses port 443 because it wraps the session in TLS.

  • the encoder can reach the server host or IP;
  • the correct TCP port is open;
  • the application path is correct;
  • the stream key is current;
  • TLS certificate and hostname match if RTMPS is used;
  • the downstream route is mapped to recording, restreaming, HLS or WebRTC.

OBS setup: server URL and stream key

In OBS, go to Settings → Stream. If your platform is not listed directly, choose a custom service. Keep the server URL and stream key separate.

Install steps
Service: Custom
Server: rtmps://YOUR_CALLABA_DOMAIN/live
Stream Key: event-main

Common mistakes include an extra slash, wrong app path, expired key, or using rtmp:// when the server expects rtmps://.

Security and access control for RTMP publishing

Publishing security should be treated as a production control. Anyone who can publish to your ingest endpoint can replace or disrupt a live feed.

  • Use unique stream keys or signed tokens.
  • Prefer RTMPS for public publishing.
  • Disable anonymous publishing.
  • Rotate keys after events and staff changes.
  • Log publish attempts, denials and disconnect reasons.

Where RTMP fits in modern streaming workflows

RTMP remains useful because it is widely supported by encoders and streaming tools. Its role is narrower than it used to be: it is usually the ingest layer, not the viewer playback layer.

encoder → RTMP/RTMPS ingest → recording / restreaming / transcoding → HLS / DASH / WebRTC → viewers

RTMP vs HLS, WebRTC, SRT and NDI

RTMP is strongest where encoder compatibility and simple publishing matter. HLS is the common playback layer, WebRTC is better for interaction, SRT is better for unreliable contribution networks, and NDI belongs in controlled production networks.

How to deploy an RTMP server

  1. Create a Linux, cloud or managed ingest endpoint.
  2. Choose RTMP or RTMPS. For public ingest, use RTMPS where possible.
  3. Open the correct TCP port.
  4. Create the application path, such as /live.
  5. Create per-stream keys or signed tokens.
  6. Test from OBS or a known-good encoder profile.
  7. Verify bitrate, codec, audio, keyframe interval and downstream output.

How to use RTMP ingest in Callaba

Callaba supports RTMP/RTMPS ingest as part of a live video workflow. A source can publish RTMP into Callaba, and Callaba can then use the received feed for monitoring, routing, recording, restreaming, multiview, playback and API-controlled workflows.

  • OBS publishes RTMP/RTMPS to Callaba, then Callaba records the received feed.
  • A hardware encoder publishes RTMP to Callaba, then Callaba restreams to multiple destinations.
  • A software source publishes to Callaba, then operators monitor it in browser preview or multiview.
  • Callaba receives RTMP and creates downstream playback or HLS packaging for approved viewers.

Interactive check: open the Callaba multiview demo to see how received sources can look after cloud ingest.

What to monitor on an RTMP server

  • publish attempts, accepted publishes and rejected publishes;
  • disconnects, reconnects and session duration;
  • incoming bitrate and bitrate drops;
  • stream key failures or app path mismatches;
  • TLS errors for RTMPS;
  • codec, audio and keyframe interval.

Practical threshold: a 2-second keyframe interval is a common expectation for major live platforms. If your stream connects but downstream playback is unstable, check keyframe interval early.

Network health guideline: in good conditions, expect RTT around 20–60 ms and packet loss below 0.5%. A consistently high RTT or growing packet loss usually points to network congestion, weak uplink, or routing trouble. RTMP uses TCP, so these numbers behave differently than SRT stats, but they still help explain reconnects, bitrate drops and encoder-side buffering.

Common RTMP server problems

RTMP server troubleshooting path Indexable troubleshooting diagram for RTMP server issues: check URL, protocol, port, TLS, app path, stream key, encoder profile, logs and downstream packaging. Debug RTMP ingest in this orderA connected session is not enough. Check URL, auth, media and downstream packaging.1. URLhost + app path2. ProtocolRTMP or RTMPS3. Port1935 or 4434. Authstream key5. Mediacodec, keyframes6. LogsOBS + server7. OutputHLS, WebRTC
Debug the endpoint first, then auth, then media, then downstream packaging.

The encoder cannot connect

Check protocol, host, TCP port, firewall, cloud security group, DNS and TLS certificate.

The stream connects but is rejected

Check application path, stream key, token expiry, IP allowlist and server logs.

The stream connects but no video appears

Check the encoder preview first. Then check codec, bitrate, keyframe interval, audio settings, server logs and downstream packaging.

To inspect the incoming stream with FFmpeg tools, use ffprobe. The exact RTMP URL must point to a live stream that is currently being published:

Install steps
ffprobe -i "rtmp://YOUR_SERVER/live/streamkey" -show_streams -select_streams v

# To list video frame/keyframe data:
ffprobe -v error -select_streams v:0 -show_entries frame=pkt_pts_time,key_frame,pict_type -of csv "rtmp://YOUR_SERVER/live/streamkey"

For many live platforms, a 2-second keyframe interval is the expected first test. If the interval is much longer, downstream HLS, player startup, simulcast, or platform ingest may become unstable.

Viewers cannot play the stream

Do not assume RTMP ingest equals browser playback. Check whether the stream has been repackaged to HLS, DASH or WebRTC.

Self-hosted vs managed RTMP server

Self-host when you need control over network design, authentication, compliance or routing. Use a managed platform when you want faster launch and less infrastructure work around ingest, routing, recording or playback.

Callaba can be used as a cloud or self-hosted live video workflow platform with RTMP/RTMPS support, alongside SRT, WebRTC, HLS, NDI, recording, restreaming and API workflows.

Event-day checklist for an RTMP server

  • Confirm server URL, host, app path and stream key.
  • Confirm protocol: RTMP or RTMPS.
  • Confirm TCP port is open.
  • Confirm TLS certificate, hostname and trust chain for RTMPS.
  • Confirm publishing auth and disable anonymous publish.
  • Confirm codec, bitrate, audio and keyframe interval.
  • Confirm downstream route: recording, restreaming, HLS, WebRTC or player delivery.
  • Confirm backup ingest endpoint and failover behavior.
  • Confirm time synchronization: server and encoder should use NTP or a consistent time source so logs and recordings can be correlated.

FAQ

What is an RTMP server?

An RTMP server is a live video ingest server that receives a publishing connection from OBS, a hardware encoder, a mobile encoder, or another broadcast tool. It accepts the stream, checks the application path and stream key or access rule, and hands the feed to recording, restreaming, transcoding, HLS, WebRTC, or another downstream workflow.

What is an RTMP live server?

An RTMP live server is an RTMP server used for real-time publishing. It receives a live feed while the event is happening and passes it to the next production or delivery layer.

What is the default RTMP port?

Plain RTMP commonly uses TCP port 1935. RTMPS, which is RTMP over TLS, often uses TCP port 443. The exact port must match your server configuration and firewall rules.

What is the difference between RTMP and RTMPS?

RTMP sends the publishing session without transport encryption. RTMPS wraps RTMP in TLS, so the publisher connection is encrypted. For public internet ingest, RTMPS should usually be the default.

Can OBS publish to an RTMP server?

Yes. In OBS, use Settings → Stream, choose a custom service, enter the server URL such as rtmps://ingest.example.com/live, and enter the stream key separately.

Is an RTMP server the same as a streaming platform?

No. An RTMP server is usually the ingest layer. A full streaming platform may also include transcoding, recording, HLS or DASH packaging, WebRTC delivery, access control, analytics, APIs, VOD and player workflows.

Can browsers play RTMP directly?

Modern browser playback should not be designed around RTMP. Use RTMP or RTMPS for ingest, then repackage or transform the stream to HLS, DASH or WebRTC for viewers.

Can I use RTMP for Twitch or YouTube?

Yes. Platforms such as Twitch and YouTube accept RTMP or RTMPS ingest from encoders. You can also send one stream to your own RTMP server first, then restream it to social platforms and record it internally.

Why does my RTMP stream connect but not show video?

The TCP session can connect while the stream is rejected or unusable later. Check application path, stream key, encoder profile, bitrate, keyframe interval, audio codec, server logs and downstream packaging.

Should I self-host an RTMP server or use a managed platform?

Self-host when you need control over network design, authentication, compliance or routing. Use a managed platform when you want faster launch and less operational burden. In both cases, test ports, TLS, auth, logs, failover and downstream delivery before the event.

Does Callaba support RTMP ingest?

Yes. Callaba can receive RTMP/RTMPS feeds as part of a live video workflow and then route the received feed to monitoring, recording, restreaming, playback or API-controlled workflows.

When should I choose SRT instead of RTMP?

Use RTMP or RTMPS when you need broad encoder compatibility and simple publishing. Use SRT when contribution reliability across unstable or long-distance networks matters more than legacy encoder compatibility.

How do I check an RTMPS certificate problem?

Check that the encoder URL uses the same hostname as the TLS certificate, that the certificate is not expired, and that the full certificate chain is trusted. If plain RTMP works but RTMPS fails, the problem is often hostname, port, certificate chain, SNI or encoder RTMPS support.

How do I check keyframe interval for RTMP ingest?

Use the encoder settings first, then verify with ffprobe on a live test stream. For many live platforms, a 2-second keyframe interval is the safest starting point.

Where to go next

Last updated: May 21, 2026

Try Callaba for RTMP ingest

Send RTMP or RTMPS into Callaba, monitor the received feed, and route it to recording, restreaming, multiview, playback, or API-controlled workflows.

See routing workflows Open multiview demo Try on AWS Marketplace