We hear this all the time: Flash streaming is dying out, so RTMP won’t be around much longer. That’s true in some ways, but it’s much more complicated than that. Dan Rayburn’s excellent article brought up the topic again, so we wanted to offer a bit of additional clarification.
From the player side, RTMP is on its last legs. Flash is dying out as a player, there are numerous alternatives, and the RTMP standard for players will fade along with Flash.
But on the ingest/encode side of a streaming workflow, it’s a little more complicated. There are fewer available methods for stream ingestion, and RTMP tends to be the best supported. Most CDNs use RTMP, and the alternative protocols (UDP and RTSP) have significant limitations in terms of network connectivity and server support.
That’s the short story. RTMP is dying out as a player protocol, but will be around much longer as the ingest standard for H.264 video.
Now, for those of you who like to get into the technical nitty-gritty, here are a few additional tidbits related to RTMP and its future prospects.
- RTMP is tied to the FLV format, and the FLV format is closely tied to the Flash player. Since FLV typically contains H.264 video and often AAC audio, it’s easy enough to remux the contents of FLV in a different container format, like .mp4. So from a server perspective, it’s easy enough to accept RTMP, remux or transcode it to mp4 or ts, then provide it for clients using HLS, MPEG-DASH, or whatever else they would like.
- One exception to this “RTMP is dying as a player standard” argument has to do with niche industries. For example, an engineer who works on live video for gambling explained that even from a content delivery perspective, RTMP can be tuned with a lower latency than most delivery alternatives and will remain viable in latency-sensitive applications. While there are some low latency alternatives, like webRTC, the CDN support remains very limited by comparison to RTMP. So in certain niche markets, RTMP will probably stick around on the content delivery side for a while.
- As mentioned above, on the ingest side RTMP is supported by pretty much every CDN. However, with H.265 encoding coming around soon, RTMP will no longer an option unless the server wants to use something non-standard. UDP works well on local networks, but is very reliant on a stable network connection in order to avoid dropping packets. (There are reliable UDP based protocols, but they are mostly proprietary.) RTSP is supported by some online video platforms, but there are a lot that do not support it. We will soon start to see more of them supporting RTSP, but until then the landscape for H.265 live streaming remains pretty narrow.