The three streaming protocols compared — transport, encryption, packet-loss behavior — and which ones CastFork's ingest and custom destinations actually accept.
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.
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.
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.
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.
| Property | RTMP | RTMPS | SRT |
|---|---|---|---|
| Transport | TCP | TCP + TLS | UDP |
| Encrypted by default | No | Yes | Yes |
| Packet-loss behavior | Stalls, waits to resend | Same as RTMP | Recovers within a time budget, or skips ahead |
| Support | Near-universal | Wide, growing | Common in pro/broadcast gear |
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
Point OBS at CastFork's real ingest address, set the output settings that matter, and confirm the connection before you rely on it live.
How to add any RTMP or RTMPS destination as a channel, what you give up compared to a native integration, and where SRT still doesn't fit.
Start from your real upload speed, not your dream resolution — bitrate bands by resolution and framerate, codec math, and three worked examples.
No time limit, no card required. Set your destinations up once, then it's a toggle for every future stream.