CastFork
Comparisons

RTMP vs. RTMPS vs. SRT: What They Are and When Each Matters

The three streaming protocols compared — transport, encryption, packet-loss behavior — and which ones CastFork's ingest and custom destinations actually accept.

CastFork TeamPublished June 3, 20265 min read

01The short version

All three are ways to get a live video signal from your encoder to a server. RTMP is the old, near-universal default. RTMPS is RTMP wrapped in TLS encryption, same behavior otherwise. SRT is a newer, UDP-based protocol built specifically to survive rough networks without falling apart.

For most people setting up a stream, the practical answer is: use whatever your destination platform and your encoder both support, encrypted if it’s on offer, and don’t worry about it further unless your network is the problem. The rest of this article is for when you do need to know why.

02RTMP: the old default, and still the common one

RTMP (Real-Time Messaging Protocol) is a TCP-based streaming protocol Adobe originally built for Flash video in the early 2000s. Flash is long dead, but RTMP outlived it by a wide margin because it does one thing well: nearly every streaming platform, encoder, and piece of broadcast software accepts it as an input. OBS, Streamlabs, vMix, and CastFork’s own ingest all speak RTMP as their baseline.

The tradeoff is TCP itself. TCP guarantees every packet arrives in order, which is great for a file download and mediocre for live video — if a packet gets lost, TCP pauses everything and waits for it to be resent before continuing, rather than skipping ahead. On a clean, stable connection that’s rarely noticeable. On a shaky one, it’s the mechanism behind stuttering, buffering, and stalls.

RTMP also carries no encryption by default — the stream key and video travel in the clear unless something else wraps the connection.

03RTMPS: RTMP, with the connection encrypted

RTMPS is exactly RTMP with a TLS layer around it, the same relationship HTTP has to HTTPS. The stream data and your key travel encrypted between your encoder and the server, so a network eavesdropper between the two can’t read your stream key off the wire. Everything else — the TCP behavior, the ordered-delivery tradeoff, the platform compatibility — is identical to RTMP. It costs you nothing in setup complexity beyond using an rtmps:// URL instead of rtmp://, and it’s the sensible default whenever your encoder and destination both offer it.

04SRT: built for the open internet

SRT (Secure Reliable Transport) is a newer protocol designed for exactly the case RTMP struggles with: contribution feeds over an unpredictable public internet connection — a laptop on hotel wifi, a phone on cellular, a remote location with an inconsistent line. It runs over UDP instead of TCP and handles lost packets differently: rather than stalling to wait for a retransmit, SRT tracks what’s missing and re-requests only those pieces within a configurable time budget. If the recovery finishes in time, viewers see nothing. If it doesn’t, the stream skips ahead instead of freezing.

SRT also encrypts by default (AES-128 or AES-256) rather than needing a separate variant the way RTMP needs RTMPS, and it typically reaches lower end-to-end latency than RTMP on the same connection.

The catch is support. SRT is common in broadcast-grade hardware encoders and contribution workflows between production facilities, but it isn’t universally accepted the way RTMP is — plenty of consumer encoders and destination platforms still expect RTMP or RTMPS at the door, even if they use something else internally.

A concrete case where the difference actually shows up: a reporter filing a live shot over a phone’s cellular connection at a stadium with thousands of other people also on the network. RTMP over that link tends to stall and buffer every time a packet gets momentarily lost, because TCP insists on delivering everything in order. The same conditions over SRT are far more likely to stay watchable, because a lost packet gets a bounded window to recover before the stream just moves on without it.

05Side by side

PropertyRTMPRTMPSSRT
TransportTCPTCP + TLSUDP
Encrypted by defaultNoYesYes
Packet-loss behaviorStalls, waits to resendSame as RTMPRecovers within a time budget, or skips ahead
SupportNear-universalWide, growingCommon in pro/broadcast gear

06So which one should you actually use?

  • On a wired connection at home or in an office, with a stable, uncongested line: RTMP or RTMPS is fine, and RTMPS is the better default whenever both are on offer, at no real cost.
  • On a connection you don’t fully trust — a venue’s shared wifi, a cellular hotspot, an internet line you’ve never streamed over before: SRT is worth seeking out specifically if your encoder and destination both support it.
  • If your encoder or destination only offers one option, use that one — chasing a "better" protocol your actual hardware doesn’t support isn’t a real choice.

07What CastFork actually accepts today

CastFork’s encoder ingest — the address you paste into OBS or another encoder from the multistreaming setup — accepts RTMP directly, with RTMPS available over the same connection (TLS is terminated at the edge, so the stream is encrypted in transit even though it arrives at our ingest as RTMP). If your encoder gives you a straight choice between rtmp:// and rtmps:// for a custom destination, the RTMPS one is generally the better default when both are offered.

Custom outbound destinations — anywhere you supply your own URL and key — accept RTMP and RTMPS URLs on paid plans. SRT isn’t a supported protocol for custom destinations at this time; if you’re coming from a broadcast workflow built around SRT contribution, plan around RTMP/RTMPS endpoints for now. Not sure whether a destination URL is actually reachable before you go live? Run it through the RTMP connection checker first.

Keep reading

Try it yourself — Free covers two destinations at once

No time limit, no card required. Set your destinations up once, then it's a toggle for every future stream.