RTMP (Real Time Messaging Protocol): Definition/Variations/Apps [MiniTool Wiki]
What Is RTMP?
RTMP, Real-time Messaging Protocol, was originally a proprietary protocol developed by Macromedia for streaming video, audio, as well as data on the Internet, between the server and a Flash player.
Later, Macromedia was acquired by its rival Adobe Inc. Adobe has released an incomplete version of the specification of the protocol for public usage.
There are several variations for the RTMP protocol.
- RTMFP: Real-time Media Flow Protocol is RTMP over UDP (User Datagram Protocol) to replace RTMP Chunk Stream.
- RTMPE: RTMP Encrypt uses the security mechanism of Adobe. The mechanism adopts industry-standard cryptographic primitives while the details of the implementation are proprietary.
- RTMP proper: It is the “plain” protocol that works on top of TCP (Transmission Control Protocol) and uses port number 1935 by default.
- RTMPS: RTMP Security is RTMP over a TLS (Transport Layer Security) or SSL
- RTMPT: RTMP Tunneled is encapsulated within HTTP requests to traverse firewalls.
Both SSH and SSL are security protocols, but they are different. This post introduces some differences and similarities between them. Now, you can read it.
The Secure Real-Time Media Flow Protocol is a protocol suite developed by Adobe Systems. It is for encrypted and efficient multimedia delivery through client-server as well as peer-to-peer models over the network.
RTMFP was originally proprietary. Later, it was opened up and now is published as RFC 7016. RTMFP enables end-users to communicate and connect directly with each other (P2P).
RTMFP vs RTMP
RTMFP is different from RTMP in some aspects. The largest difference is how the protocols communicate over the Internet. RTMFP is based on UDP while RTMP is based on TCP. UDP-based protocols have some specific advantages over TCP-based protocols when delivering live stream media.
At the cost of decreased reliability, the advantages of RTMFP include low latency & overhead and greater tolerance for dropped or missing packets. Besides, RTMFP also supports sending data directly from one Adobe Flash Player to another without relying on a server.
You may meet the “Cannot load M3U8” error message when you paly a vedio in Google Chrome or any other browser. Here some methods for you to fix the error.
RTMPT, Real-time Messaging Protocol Tunneled, is usually found relying on cleartext requests on TCP ports 443 and 80 to bypass most corporate traffic filtering. The encapsulated session may contain plain RTMP or RTMPE packets.
The messages in RTMPT are larger than the equivalent non-tunneled RTMP messages due to HTTP headers. RTMPT may facilitate RTMP usage in scenarios where the use of non-tunneled RTMP would otherwise not be possible. For example, when the client is behind a firewall that blocks non-HTTP and non-HTTPS outbound traffic, it needs the RTMPT.
RTMPT works by sending commands through the POST URL and AMF messages through the POST body.
RTMP Applies in Software
In general, RTMP is implemented in 3 stages, live video encoder, live and on-demand media streaming server, and live and on-demand client. Below are some applications that make use of RTMP.
Adobe Inc. put forward the idea of Adobe Flash end of life as early as in 2017. Now, other companies respond to this issue as the end date is approaching.
RTMP Live Video Encoders
- Adobe Media Flash Live Encoder
- Open Broadcaster Software (OBS)
- XSplit Broadcaster
RTMP Client Software
- Adobe Flash Player (web browser plug-in)
- VLC media player
RTMP Server Software
- Adobe Flash Media Server
- Nimble Streamer
- Wowza Streaming Engine
The primary motivation of RTMP is to be a protocol for playing Flash videos. Thus, it is used in some other programs like Adobe LiveCycle Data Services ES.