Meet the RTMP (Real-Time Messaging Protocol)
This post is also available in: polski
Initially, when video streaming technology was in its infancy, the Real-Time Messaging Protocol (RTMP) was the primary standard for video streaming over the internet (i.e., streaming). RTMP is a TCP-based protocol and is used for low-latency video streaming. Find out what is, how the RTMP protocol works!
What is RTMP?
The RTMP protocol was created to enable both live and on-demand video streaming in Adobe Flash Player. This plug-in used to power 98% of web browsers in its time and RTMP was used everywhere in its heyday.
Currently, RTMP is supported by most media servers. RTMP is also supported by Facebook, YouTube, Twitch and Periscope. The only compatibility problem may arise when trying to play streams on popular browsers and devices.
Okay, but what exactly is this RTMP protocol?
Initially, the protocol was created for streaming audio, video and other data between a dedicated server and Adobe Flash Player.
According to Adobe:
“Adobe’s Real Time Messaging Protocol (RTMP) provides a bidirectional message multiplex service over a reliable stream transport, such as TCP [RFC0793], intended to carry parallel streams of video, audio, and data messages, with associated timing information, between a pair of communicating peers”.Adobe
The RTMP protocol supports:
- Audio Codecs: AAC, AAC-LC, HE-AAC+ v1 & v2, MP3, Speex.
- Video Codecs: H.264, VP8, VP6, Sorenson Spark®, Screen Video v1 i v2.
Protocol support is limited to Flash Player, Adobe AIR, and other apps compatible with this technology. RTMP is not compatible with iOS, Android, and most browsers. The main advantages of RTMP include low latency (2-5 seconds) and minimal buffering. In turn, the disadvantage of the technology is the lack of optimization in terms of service quality or scalability.
The history of RTMP goes back to the times of Adobe Flash Player.
Flash Player and RTMP were the most popular video streaming engines until 2010. The combination of these technologies ensured the possibility of instant video transmission with relatively low latency (up to approx. 5 seconds). However, with the advancement of the HTML5 protocol, ABR technology and the emergence of new standards, the use of RTMP was severely limited. The demise of Flash technology in 2020 also did not assist the RTMP protocol.
Currently, the industry favors HTTP-based protocols that use regular web servers for broadcast (not dedicated servers, as is the case with the RTMP protocol). HTTP-protocol based transmission significantly facilitates scalability. At the same time, video can be transmitted using adaptive bitrate, which allows users to adjust the video quality to their preferences, device capabilities or the quality of the network connection.
This is not to say that RTMP is no longer used, though. About 30% of the streaming industry still uses this protocol. Many people choose to upload video to a media server using RTMP and then transcode the content to be able to pass it on to end users.
How does RTMP work?
The RTMP protocol is designed for high-performance audio and video broadcast. The principle of operation of the protocol is based on maintaining a constant connection between the client and the server. RTMP is based on the Transmission Control Protocol (TCP).
The party initiating the broadcast sends a request to be accepted by the server in order to start a connection. The acceptor replies, and the initiator acknowledges the reply. Once the response is confirmed, a connection is established between the client and the server within which the video broadcast takes place.
Summary – the advantages and disadvantages of the RTMP protocol
As mentioned above, despite the death of the Flash technology, RTMP is still used – mainly to transmit the signal to media servers, where it is then transcoded and sent to end-users. A major advantage of the RTMP protocol is low latency, which can go as low as 2 seconds. However, this protocol will not provide easy scalability or optimal video quality for end-users in modern browsers.
RTMP on Storm Streaming Server
Our Storm software offers both client and server support for the RTMP protocol. The source in the form of an audio/video stream can therefore be taken from an external source (any other server), but also “nested” directly on the server, drastically reducing the generated delay.