Why This Matters
If you are picking a contribution protocol for a live product in 2026, RTMP is the choice that costs you the least effort and the most ceiling — every encoder on the planet speaks it, every platform you might publish to accepts it, and you can be on air in fifteen minutes. The catch is that the same five paragraphs that explain why RTMP is universal also explain why a 2 percent packet-loss event on the venue uplink will collapse the stream. Knowing where RTMP's operating envelope ends is the single most useful piece of contribution knowledge a product person, founder, or operations lead can carry in their head.
This article is the canonical Block 3 reference on RTMP: what it actually is, why it survived the death of Flash, where its 2–5 second latency floor comes from, why TCP is both the reason it is reliable on a clean uplink and the reason it stalls on a lossy one, what Enhanced RTMP (E-RTMP) added in 2024, and how it sits next to SRT, WHIP, and the broadcast-grade family in the 2026 ingest decision. By the end you will be able to defend a "we ship RTMP" or "we migrated off RTMP" decision in a planning meeting without anyone needing a follow-up call.
What RTMP Is — In One Page
The Real-Time Messaging Protocol, abbreviated RTMP, is a TCP-based application-layer protocol for delivering audio, video, and data between a client (an encoder) and a server (an ingest endpoint). Macromedia designed it around the year 2002 to power its Flash Communication Server product; Adobe acquired Macromedia in 2005 and inherited RTMP; Adobe finally published the specification as a public document — RTMP 1.0 Specification, 21 December 2012 — and then stopped maintaining it. Every implementation since has been a community-driven reading of that 2012 document plus the de-facto behaviour of OBS Studio, FFmpeg's librtmp-replacement code, Wowza Streaming Engine, and the major social platforms.
Mechanically, RTMP runs over a single TCP connection on port 1935 by default. It begins with a three-way handshake (C0 / S0 then C1 / S1 then C2 / S2 packets, each 1,536 bytes), negotiates a connection (the connect command), opens a stream (the createStream command), and then publishes data (the publish command on the encoder side, or play for the historical Flash-playback case on the client side). The data itself is broken into messages — an audio message, a video message, or a metadata message — and each message is further fragmented into chunks of a negotiated size (the default is 128 bytes, but every modern encoder negotiates a 4,096-byte chunk size to cut per-chunk overhead). Chunks from multiple messages can be interleaved on the same TCP connection, which is how RTMP carries audio, video, and control data on one socket without one starving the other.
The wire format is binary, the timing is millisecond-resolution, and the protocol carries timestamps end-to-end so the receiver can reassemble the original stream with the same temporal relationship between audio and video that the encoder produced. That is the whole architecture. The protocol does not negotiate codecs (the encoder declares them in a metadata message and the server takes the encoder at its word), does not do adaptive bitrate (the encoder picks one bitrate and sends it; if the connection cannot sustain that bitrate the encoder buffers, drops frames, or disconnects), and does not do any kind of selective retransmission (TCP retransmits everything, in order, with no concept of "this is late, skip it").
The Short Version of How RTMP Got Here
The history matters because it is also the answer to "why is RTMP still the default in 2026". RTMP was born inside Macromedia's Flash ecosystem. From 2002 to roughly 2015 the dominant model for video on the web was Flash Player playing back an RTMP stream from a Flash Communication Server: the player and the server were both Adobe products, the protocol between them was RTMP, and the entire stack was vertically integrated. Every encoder that wanted to send video to a Flash-powered site spoke RTMP because the server only accepted RTMP. By 2010 there were hundreds of encoder products on the market — software (Adobe Flash Media Live Encoder, Wirecast, Wirecast Pro, X-Split), hardware (Teradek, Telestream, Blackmagic Web Presenter), and platform-vendor encoders (YouTube's own ingest tooling). All of them spoke RTMP. That installed base became the moat.
Then Flash died. The decline started around 2010 when Apple shipped iOS without Flash; HTML5 video tags landed in browsers between 2011 and 2014; and by January 2021 every major browser had ripped Flash plugin support out of its codebase. The playback side of the Flash + RTMP architecture collapsed in a five-year window. The contribution side did not — because contribution never depended on Flash. The encoder ecosystem still spoke RTMP, the social platforms had already standardised on RTMP for ingest, and the migration cost of asking every encoder vendor and every basement-studio operator to switch was prohibitive. The result is the 2026 status quo: RTMP is dead in browsers, dead as a playback protocol, dead anywhere a user is watching a stream — and the universal default everywhere an encoder is pushing a stream.
A useful way to hold this in your head: RTMP did not survive because it is good. It survived because the people who would have replaced it had to convince a hundred encoder vendors and ten million streamers to agree on a replacement. That coordination problem is harder than the technical problem.
Why TCP Is Both The Feature And The Bug
Almost every interesting property of RTMP, and almost every operational pain point, traces back to one decision Macromedia made in 2002: RTMP rides on TCP. Let's be concrete about what that means.
TCP — Transmission Control Protocol — is one of two transport protocols that the internet runs on (the other is UDP, which we cover in TCP vs UDP for streaming). TCP gives you three guarantees: every byte you send arrives at the receiver, every byte arrives in the same order you sent it, and the protocol automatically slows the sender down if the network is congested. Those guarantees are what makes TCP good for files, web pages, emails, and anything where missing a byte is unacceptable. They are also what makes TCP awkward for live video, where missing a video frame is better than receiving it late.
Here is the awkwardness, in one paragraph. Suppose the encoder sends 100 video chunks over RTMP, and chunk 47 is lost in transit somewhere between the venue and the ingest server. TCP guarantees in-order delivery, which means chunks 48, 49, 50, and every chunk after that, will sit in the receiver's network buffer waiting for chunk 47 to arrive. The receiver cannot hand chunks 48 onward to the application until the sender retransmits chunk 47 (which takes one round-trip time — typically 30 to 200 milliseconds depending on path), the retransmission arrives, and the receiver acknowledges it. This is called head-of-line blocking, and it is the dominant failure mode of RTMP under lossy network conditions. A 2 percent packet-loss event over a 90-millisecond-RTT path effectively pauses the entire stream for two to three round-trips while TCP recovers.
The other half of TCP's behaviour is congestion control. When TCP detects packet loss, it interprets that as a signal that the network is congested, and it cuts the send rate — typically in half, depending on the variant of TCP in use (the classic Reno variant halves; the more modern BBR variant probes more gracefully). For a 6 Mbps live stream, a single retransmission event halves the effective send rate to 3 Mbps for a few seconds, then TCP cautiously ramps back up. The encoder is sending at 6 Mbps and the connection now carries 3 Mbps — the encoder's buffer fills, frames drop, and viewers see a stall.
Compare this to a UDP-based protocol with selective retransmission like SRT. When SRT loses chunk 47, the receiver sends a single NAK (negative acknowledgment) asking for chunk 47, the sender retransmits only chunk 47, and the receiver keeps handing chunks 48, 49, 50 to the application as they arrive. The latency budget for retransmission is configurable (4× the path RTT is the recommended setting); if chunk 47 cannot be recovered in time, the receiver writes its sequence number into a hole and moves on. The application sees a one-frame glitch instead of a multi-second stall.
This is the single biggest operational difference between RTMP and the modern alternatives. RTMP is excellent on a clean wired uplink with sub-1-percent loss. RTMP collapses on a contested business-broadband uplink or a stadium Wi-Fi link with 3–5 percent loss bursts. The protocol is fine; the underlying transport is wrong for the public internet at the contribution edge.
The 2–5 Second Latency Floor — Where The Number Comes From
RTMP is consistently described as a "low-latency" protocol with a 2–5 second glass-to-glass latency floor. Three components add up to that number, and understanding each is what lets you size a real product around RTMP versus around an alternative.
Encoder buffering. The encoder must accumulate enough video to fill a GOP — a group of pictures, the chunk of frames between keyframes — before it can start sending. A typical OBS configuration emits a keyframe every 2 seconds, which means the encoder starts the session by buffering roughly 2 seconds of video before the first frame leaves the venue. You can shorten the keyframe interval to 1 second or even 0.5 seconds, but at the cost of compression efficiency (more keyframes = larger overall bitrate). The 2-second keyframe interval is the default for a reason; it is the trade-off point at which video quality and contribution latency intersect for most use cases.
TCP send-buffer behaviour. RTMP rides on a TCP socket that the operating system writes into. The kernel maintains a send buffer; the encoder writes RTMP chunks into the buffer faster than the network can drain it; the buffer fills to a steady state of several hundred kilobytes. That buffered data sits in the kernel waiting for the network to drain it, adding 200 ms to 1,000 ms of latency at the sender side alone. Operators who tune their RTMP pipelines aggressively reduce the TCP send-buffer size via SO_SNDBUF, but doing so introduces a different failure mode (the encoder blocks on write() when the network briefly slows down, and may drop frames as a result). Most production RTMP deployments accept the buffer-based latency.
Ingest-side packetisation and forwarding. The ingest server receives RTMP chunks, reassembles them into video frames, and either pushes them downstream to a transcoder or hands them to a packager that produces HLS or DASH segments for the delivery side. Each step adds 100 ms to 500 ms. For an "RTMP ingest → HLS delivery" pipeline (the dominant pattern for social-platform live), the ingest server often spends 2 to 4 seconds packaging two segments of HLS before the first segment is available to viewers; that delay is on the delivery side, but it stacks on top of the contribution-side latency the viewer sees.
The arithmetic, out loud: 2 seconds of encoder GOP buffering + 0.5 seconds of TCP send buffer + 0.3 seconds of public-internet RTT + 0.5 seconds of ingest packetisation + 1.5 seconds of player buffer at the viewer side = 4.8 seconds of glass-to-glass latency, which is squarely in the middle of the 2–5 second range every vendor cites. Tune the GOP shorter, tune the player buffer shorter, and you can bring the number down to 2 seconds; tune them longer for resilience and you climb to 8–10 seconds. The 2–5 second range is the default, not a hard limit.
For context: LL-HLS targets 2–4 seconds on the delivery side and works best with a contribution leg that adds no more than 1 second; WHIP targets sub-500-millisecond glass-to-glass; SRT is configurable from 120 ms to several seconds depending on the latency window you choose. RTMP's 2–5 seconds is the highest of any modern ingest protocol, and that ceiling is set by the GOP + send buffer + TCP behaviour, not by anything in the protocol itself.
RTMP Variants — The Family Tree
Most people who say "RTMP" mean RTMP, the original plain-text TCP protocol on port 1935. Several variants exist; you will encounter them in the wild and you should be able to name them.
RTMP (plain, port 1935). The original protocol. No encryption. Used today by a long tail of small platforms and inside-the-cloud ingest paths where the bytes never leave the operator's network. Every major social platform deprecated plain RTMP for ingest between 2018 and 2022 in favour of the TLS-secured variant below.
RTMPS (TLS-secured, port 443 or port 1936). RTMP wrapped in a TLS tunnel — exactly the way HTTPS is HTTP wrapped in TLS. This is what YouTube Live, Twitch, Facebook Live, X, Kick, LinkedIn, TikTok and basically every commercial platform require in 2026 for ingest. The protocol semantics are identical; the wire is encrypted with the same TLS 1.2/1.3 stack that secures HTTPS. RTMPS is the only RTMP variant a modern production stack should still accept on the public internet.
RTMPE (Adobe's proprietary encryption). A pre-TLS attempt at encryption that Adobe built into Flash Media Server. Cracked publicly in 2008 and never recovered its reputation. Avoid. Nobody is shipping RTMPE in 2026 except as a compatibility bridge to legacy hardware.
RTMPT (HTTP-tunnelled). RTMP carried inside HTTP requests for traversal of firewalls that block port 1935. Useful in 2010, irrelevant in 2026 — RTMPS over port 443 traverses firewalls just as well and uses the modern TLS stack.
RTMPTE (HTTP-tunnelled + RTMPE encryption). Stack the two above. Don't.
RTMFP (Real-Time Media Flow Protocol). A completely different protocol from Adobe that runs over UDP instead of TCP. Designed for peer-to-peer Flash applications. It is in the RTMP family by name and Adobe lineage only — different transport, different use case, never widely deployed outside Flash, effectively obsolete in 2026.
For the rest of this article when we say "RTMP" we mean RTMP/RTMPS — the TCP-based, optionally TLS-wrapped contribution variant that every major platform supports. The exotic variants are footnotes.
What Platforms Actually Require
A useful exercise: list the social and consumer platforms that accept live ingest in 2026, and note which protocols each accepts. The table below distills the published documentation as of May 2026.
| Platform | RTMP / RTMPS | SRT | WHIP / WebRTC | Notes |
|---|---|---|---|---|
| YouTube Live | Yes (RTMPS required) | No | No | Recommends 1080p60 at 9 Mbps; RTMPS only since 2020. |
| Twitch | Yes (RTMP and RTMPS) | No (in beta, very limited) | No | Bitrate cap 6 Mbps for non-partners; partners up to 8 Mbps. |
| Facebook Live | Yes (RTMPS required) | No | No | Persistent stream keys deprecated 2023; rotating keys mandatory. |
| TikTok Live | Yes (RTMPS) | No | No | API access gated; most ingest is via the TikTok Studio app over RTMPS. |
| Kick | Yes (RTMP and RTMPS) | No | No | Bitrate cap 8 Mbps; H.264 only. |
| X (Twitter) Live | Yes (RTMPS) | No | No | Producer Studio uses RTMPS; consumer apps use proprietary in-app capture. |
| LinkedIn Live | Yes (RTMPS, via partner) | No | No | Ingest is via approved third-party broadcasters (Restream, Streamyard, etc.). |
| Instagram Live | No public RTMP | No | No | App-only capture; no third-party encoder ingest. |
| AWS IVS | Yes (RTMPS) | No | Yes (Real-Time Streaming) | IVS Real-Time uses WebRTC; the standard IVS service still uses RTMPS. |
| Cloudflare Stream | Yes (RTMPS) | Yes | Yes (WHIP) | All three protocols supported on the same product surface. |
| Dolby Millicast | Yes (RTMPS) | Yes | Yes (WHIP) | WebRTC-first product; RTMPS is a compatibility bridge. |
| Mux Live | Yes (RTMPS) | Yes | Yes (WHIP) | Three protocols on one ingest endpoint. |
Enhanced RTMP (E-RTMP) — What Changed in 2024
For two decades the RTMP specification only formally supported H.264 video and AAC audio. Modern codecs — H.265 (HEVC), AV1, VP9 — were not part of the spec, and most encoders that wanted to ship them through an RTMP pipeline used non-standard codec-ID extensions that some servers accepted and others didn't. The result was a slow, vendor-by-vendor mess of compatibility flags.
In 2022 a small group of stakeholders — Adobe, YouTube, Twitch, Veovera Software Organization, and a handful of independent contributors — formed the enhanced-rtmp project to write the codec-extension behaviour down as a public specification. The first release, Enhanced RTMP v1, landed in 2023 with formal support for VP8, VP9, H.265 (HEVC), and AV1, plus HDR metadata signalling. The second release, Enhanced RTMP v2, finalised in 2024, adds multitrack audio and video, a reconnect-request feature for connection resilience, and nanosecond-precision timestamps for tight synchronisation with MP4 and CMAF downstream containers. The v2 specification is the "Release Version" — Veovera's statement that the core features are stable and production-ready.
The practical 2026 picture for E-RTMP is mixed.
Where E-RTMP is shipping. YouTube Live accepts H.265 over E-RTMP for HDR contribution. OBS Studio 30+ emits H.265 and AV1 over E-RTMP via its built-in encoder. Larix Broadcaster ships E-RTMP as a configurable option. Nimble Streamer and Wowza Streaming Engine accept E-RTMP ingest. FFmpeg landed E-RTMP support in 7.0.
Where E-RTMP is not shipping yet. Twitch still requires H.264; HEVC is not accepted. Facebook Live, TikTok Live, Kick, and X have not announced E-RTMP support in 2026. Older hardware encoders without firmware updates cannot speak E-RTMP and may never. The long tail of CDN ingest endpoints is mostly H.264-only.
The headline: E-RTMP is real, it is documented, and it is shipping in the developer-platform tier — but for "I am pushing to a social platform" the conservative default is still RTMPS + H.264. Watch the social-platform changelogs through 2026 and 2027; that is where the next adoption wave will land.
A Worked Example — RTMP On The Wire, Numbers Out Loud
Imagine you are publishing a 1080p60 stream at 6 Mbps from OBS Studio to a YouTube Live RTMPS ingest endpoint. The math, out loud:
The encoder is producing 6,000,000 bits per second of compressed video plus roughly 192,000 bits per second of AAC stereo audio, for a total of 6,192,000 bits per second of payload. RTMP's per-chunk overhead is small — a 12-byte chunk header on the first chunk of each message, 1 or 4 bytes on subsequent chunks of the same message — and adds well under 1 percent to the payload. Round to 6.2 Mbps on the wire.
The TCP handshake to the ingest server takes one RTT — assume the venue is in London, the ingest endpoint is in Frankfurt, and the RTT is 30 milliseconds. TLS adds two more RTTs (TLS 1.2; TLS 1.3 needs only one), so the secure socket is established 30 + 60 = 90 milliseconds after the initial SYN. The RTMP handshake adds another 30 milliseconds for C0+C1, S0+S1+S2, C2 — three more single-RTT exchanges. The connect, createStream, and publish commands add 120 milliseconds of round-trips. Total time from "click stream" to "first chunk of video sent" is roughly 270 milliseconds.
After that, RTMP's per-message overhead is steady-state: chunks flow out as fast as the TCP socket drains, the encoder's GOP buffer holds about 2 seconds of video at any given moment, and the TCP send buffer holds another 0.3 to 1 second depending on kernel tuning. The end-to-end contribution latency from the lens to YouTube's ingest server is roughly 2.5 to 3.5 seconds.
YouTube's pipeline then packages the incoming RTMP stream into HLS segments, runs adaptive-bitrate transcoding, and hands the segments to its CDN. The viewer's HLS player buffers two to three segments before playing, adding another 6 to 8 seconds on top of the contribution side. End-to-end glass-to-glass latency for a default YouTube Live stream lands around 9 to 12 seconds — well above RTMP's own 2–5 second contribution floor, because the delivery stack adds the bulk of the latency.
That last number is the one most people get wrong. RTMP is not the reason a YouTube Live stream is 10 seconds behind reality; HLS is. RTMP is the reason it is at most 3 seconds slower than the same stream contributed via WHIP — and even that 3-second penalty is mostly invisible if the delivery side is HLS, because the HLS buffer dwarfs it.
Common Pitfalls
Pitfall 1: testing RTMP on the office Ethernet and shipping to a venue. The office uplink has 99.9 percent loss-free behaviour at 60-millisecond RTT to any major cloud region. Almost every venue uplink has 30 to 200 milliseconds of RTT variance, a base loss rate of 0.3 to 1 percent, and occasional 3–5 percent loss bursts when the building's network is contested. RTMP works perfectly in the office and stalls in the field. Always test on a representative path — and if the production path is unpredictable, do not ship RTMP, ship SRT.
Pitfall 2: hard-coding the keyframe interval at 4 seconds. Some legacy guides recommend 4-second keyframes for "better compression". On a YouTube Live ingest, the 4-second keyframe interval pushes the contribution-side latency past 6 seconds and disables the platform's LL-HLS delivery path entirely. The 2026 default is 2 seconds for everything except VOD-style archive workflows.
Pitfall 3: shipping plain RTMP (no TLS) to a public ingest endpoint. Every major platform deprecated plain RTMP between 2018 and 2022. Plain RTMP carries the stream key and the video bytes in cleartext; anyone on the venue's network can sniff the stream key and hijack the publishing slot. Always use RTMPS. The TLS overhead is negligible on a modern encoder.
Pitfall 4: trusting the encoder's RTMP "reconnect" behaviour. Most encoders implement RTMP reconnect by tearing down the TCP socket and re-establishing the session. The reconnection takes 200 to 800 milliseconds, during which the encoder is buffering frames; if the reconnection takes longer than the encoder's local buffer, frames are dropped. Enhanced RTMP v2 introduces an explicit reconnect-request mechanism that platforms can use to ask the encoder to reconnect at a server-chosen moment; if you control both ends, prefer it.
Pitfall 5: assuming "RTMPS over port 443" traverses every firewall. It traverses most firewalls because port 443 is the HTTPS port. It does not traverse deep-packet-inspection firewalls that look at the TLS handshake's SNI extension and block non-HTTPS traffic. For corporate-venue contribution, validate the path through the venue's security stack before showtime.
Pitfall 6: confusing RTMP-for-ingest and RTMP-for-distribution. RTMP is the universal default for ingest — encoder to server. RTMP for distribution — server to viewer — died with Flash and has been gone for half a decade. If you read "RTMP is dying" in a 2026 article, the author means distribution; if they mean ingest they are wrong. We cover the distribution side and why it is truly dead in RTMP for distribution and why it is truly dying.
Where Fora Soft Fits In
Fora Soft has shipped live-streaming software since 2005, across video conferencing, OTT, e-learning, telemedicine, surveillance, and AR/VR workflows. We have built RTMP-based contribution pipelines for clients pushing to YouTube Live and Twitch, hybrid RTMPS + SRT contribution pipelines where the operator chooses the protocol per venue, and full migrations off RTMP onto WHIP where the latency target dropped below a second. The protocol changes; the production discipline does not. The discipline that matters — sizing the encoder buffer, validating the contribution path under representative loss, building a backup-encoder failover, and instrumenting the ingest endpoint for QoE — is identical across all three protocols. RTMP is just the easiest place to start.
Migrating Off RTMP — When, How, And When Not To
The 2026 decision tree for "should we move off RTMP" is short.
Stay on RTMP if your contribution path is a wired uplink with sub-1-percent loss, your latency target is 3 seconds or higher on the contribution side, you are publishing to a social platform that requires RTMPS, and your encoder ecosystem is fixed (every operator already uses OBS or a hardware encoder you can't replace). This is the majority of live-streaming products in 2026, and "keep RTMP" is the correct, boring answer.
Move to SRT if your contribution path is the public internet at the venue (business broadband, stadium Wi-Fi, cellular), your latency budget allows 1–3 seconds of retransmission window, your platform supports SRT ingest (Cloudflare Stream, Mux Live, Dolby Millicast, AWS Elemental MediaConnect), and you have observed multi-second RTMP stalls on contested uplinks. SRT is the field-contribution standard for a reason — it absorbs the 3 percent loss spike that RTMP cannot.
Move to WHIP if your latency target is below 1 second, your encoder can be a browser or a WHIP-capable native tool, and your ingest endpoint is WHIP-capable (every developer platform from Cloudflare to LiveKit to Dolby Millicast). WHIP earns its keep on interactive use cases — live shopping, paid Q&A, live coaching, sports betting — where the 2–5 second RTMP floor is too slow.
Do not move off RTMP just because RTMP is "old". Age is not a defect. The protocol works, the encoder ecosystem speaks it, and the migration cost is real. Migrate when an operational problem on the contribution side forces the decision, not because a vendor blog post said the protocol is dead.
The 2026 Verdict
RTMP is a 24-year-old protocol that was designed for a stack that no longer exists, that has never had an active maintainer since 2012, that nobody would invent today, and that nonetheless carries 70 to 90 percent of all live-streaming contribution in the world. That paradox — universally derided as obsolete, universally deployed in production — is a feature of the encoder-ecosystem coordination problem more than a feature of the protocol itself.
The accurate 2026 framing has three parts. RTMP is alive on the contribution side because every encoder in the world speaks it and every social platform accepts it. RTMP is dead on the distribution side because Flash died and HTTP-based delivery (HLS, DASH) replaced it. And RTMP is showing its age on lossy contribution paths because TCP is the wrong transport for video at the edge — that is where SRT and WHIP earn their share of the contribution market and will keep eating into RTMP's share through 2027 and 2028.
If you take one piece of advice from this article: ship RTMPS by default, know your contribution path's loss profile, and have a migration plan to SRT or WHIP in your pocket for the day a venue's network forces the decision. That is the 2026 RTMP playbook.
References
- Adobe — Real-Time Messaging Protocol Chunk Stream Specification v1.0 (21 December 2012). Tier 1. The canonical RTMP specification; Adobe has not published a revision since. Archived at
https://rtmp.veriskope.com/pdf/rtmp_specification_1.0.pdf. The article relies on this document for the chunk format, handshake, and command-message definitions. - Veovera Software Organization — Enhanced RTMP v2 Release Version (2024). Tier 1 (community-maintained extension specification with industry sign-off from Adobe, YouTube, Twitch).
https://veovera.org/docs/enhanced/enhanced-rtmp-v2.html. Source for the codec extensions (H.265, AV1, VP9), multitrack audio/video, reconnect request, and nanosecond-precision timestamps described in the E-RTMP section. - Veovera Software Organization — Enhanced RTMP v1 specification (2023). Tier 1.
https://veovera.org/docs/enhanced/enhanced-rtmp-v1.pdf. Source for the initial HEVC/AV1 codec extensions to RTMP. - YouTube Live — Live Streaming Ingestion Protocol Comparison (2024–2026). Tier 4 (platform documentation).
https://developers.google.com/youtube/v3/live/guides/ingestion-protocol-comparison. Source for YouTube Live's published RTMPS / HLS / DASH / WebRTC ingest matrix. - Wikipedia — Real-Time Messaging Protocol (last revised 2026). Tier 6.
https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol. Used only for navigation — to map the variant landscape (RTMPS, RTMPE, RTMPT, RTMPTE, RTMFP) against the primary Adobe specification. All variant-behaviour claims in this article are cross-checked against Adobe's spec or the platform documentation cited above. - IETF RFC 793 — Transmission Control Protocol (1981) and RFC 5681 — TCP Congestion Control (2009). Tier 1.
https://datatracker.ietf.org/doc/rfc793/,https://datatracker.ietf.org/doc/rfc5681/. Source for the head-of-line blocking and congestion-control behaviour that drives the article's TCP-on-lossy-paths analysis. - IETF Internet-Draft draft-sharabayko-srt-01 — The SRT Protocol (2024). Tier 1 (subject to revision before RFC publication).
https://datatracker.ietf.org/doc/draft-sharabayko-srt/. Comparison source for the SRT-vs-RTMP loss-recovery contrast. - IETF RFC 9725 — WebRTC-HTTP Ingestion Protocol (WHIP) (March 2025). Tier 1.
https://datatracker.ietf.org/doc/rfc9725/. Comparison source for the WHIP-vs-RTMP latency contrast. - Mux Engineering Blog — Which Live Stream Ingest Protocol Is Right for You? (2024). Tier 3 (production-deployer engineering blog).
https://www.mux.com/blog/which-live-stream-ingest-protocol-is-right-for-you. Source for the developer-platform protocol-coverage table. - Cloudflare Stream and Dolby Millicast platform documentation (2026). Tier 4.
https://developers.cloudflare.com/stream/andhttps://docs.dolby.io/streaming-apis/docs. Source for the developer-platform tier's "ingest in RTMPS, SRT, or WHIP on the same product surface" claim.


