RTMP/SRT on public Internet
Both protocols can deliver high-quality streams, but they behave fundamentally differently when facing packet loss, jitter, and limited uplink bandwidth.1. RTMP behavior (TCP-based)
RTMP uses TCP for transport. TCP guarantees in-order, lossless delivery through unlimited retransmissions, sliding windows and backpressure. When the network is unstable:- Lost packets are retransmitted automatically by TCP
- The sender slows down and buffers more data
- Delay grows silently as TCP tries to recover
- Output at the receiver remains continuous
2. SRT behavior (UDP-based)
SRT implements reliability using UDP plus selective retransmissions. Unlike TCP, SRT enforces a strict latency window (e.g., 500–2000 ms). Packets must arrive within this time, otherwise they are dropped. When the network is unstable:- Retransmissions may arrive too late
- Jitter bursts may exceed the buffer window
- Packets that miss the latency budget are discarded
- Decoders receive incomplete GOPs and break
3. Additional factor: limited outgoing bandwidth
In this case, we mean potential uplink bandwidth limitations on the side of your encoder, when several streams with a high bitrate are simultaneously sent from your server to our transcoder. So outgoing bandwidth is limited (by your local provider or other network conditions) and competition occurs. When multiple simultaneous live streams compete for the same uplink next may happen:- RTMP (TCP) slows down each stream, increases buffering, and eventually inflates latency to keep all streams alive.
- SRT (UDP) does not introduce backpressure; it continues sending packets at encoder rate. If uplink bandwidth is insufficient, packets are dropped or retransmitted too late.
4. Additional factor: encoder frame buffer
Most H.264/H.265 encoders introduce internal delay by using lookahead, B-frames, and scenecut analysis, which buffer and reorder frames before output. This added latency (often 1.3–1.5 seconds) can exceed the SRT latency window, causing the receiver to treat packets as “late” and drop them. For live SRT ingest, encoders must operate with minimal buffering, which is why-tune zerolatency (or equivalent parameters) is required to disable lookahead and frame reordering.
Read more about encoder buffering, frame reordering, and zerolatency tuning using SRT
Main RTMP vs SRT differencies
| Category | RTMP (TCP-based) | SRT (UDP-based) |
|---|---|---|
| Transport layer | TCP with guaranteed in-order delivery | UDP with selective retransmissions (ARQ) |
| Codecs | H264 + AAC only | Codec independent, so use any H264/H265/AV1 etc + audio |
| Latency design | Latency is out of control | Strict, configurable latency window (500–3000 ms) |
| Bad network | Unpredictable latency spikes (hidden from you); | Retransmits only within a strict latency window; |
| severe delays can break transcoding completely | ”latency” param can compensate for network problems | |
| Visible effects | No visual glitches; but long gaps in reception between | May show brief visual glitches when drops late packets |
| packets will be displayed as buffering in the player |