Back to api.video Glossary
RTMP (Real Time Messaging Protocol)
What is RTMP?
RTMP stands for Real Time Messaging Protocol and for many years, it's been the standard for streaming video over the internet. What really put RTMP on the map was Adobe's Flash Player. Flash became so popular that browsers and encoders everywhere rushed to support it, which included support for RTMP. Because of this, today most encoders and media servers can support RTMP. That's why it's still the standard for streaming video and live streaming.
The RTMP streaming protocol is TCP-based (Transmission Control Protocol) and designed to maintain constant, low-latency connections between a video player and server. The design allows RTMP to provide smooth streaming for viewers. And because RTMP uses TCP, it's very reliable. TCP uses a three way handshake when transporting data - the client contacts the server, the server accepts and responds, then the client acknowledges the response. At this point a session is opened, and RTMP can start streaming video.
RTMP was popular up through the early 2010s, but then came the rise of HLS (created in 2009) and adaptive bitrate streaming. Adaptive bitrate streaming allows you to optimize content based on available connectivity and viewer devices. This type of streaming requires the use of HTTP-based protocols. So today, RTMP is used to move between servers, but when it's time to deliver content to the viewer, the last mile of delivery usually uses HLS and adaptive bitrate delivery.
RTMP will likely continue to be popular because so many encoders and servers still support it, but over time, other protocols will replace it. If you want more details about the benefits and drawbacks of RTMP, check out api.video's blog post: What is RTMP and Why Do We Use it for Live Streaming?
For Live streaming, check this article comparing RTMP to SRT.