Real Time Messaging Protocol

From Wikipedia, the free encyclopedia

Real Time Messaging Protocol (RTMP) is a proprietary protocol developed by Adobe Systems for streaming audio, video and data over the Internet, between a Flash player and a server.

The RTMP protocol has three variations:

  1. The "plain" protocol which works on top of TCP and uses port number 1935
  2. RTMPT which is encapsulated within HTTP requests to traverse firewalls
  3. RTMPS which works just like RTMPT, but over a secure HTTPS connection.

While the primary motivation for RTMP was a persistent protocol for Flash, it is also used in some other applications, such as the Adobe LiveCycle Data Services ES.

Contents

[edit] Operation

The raw TCP-based RTMP protocol maintains a single persistent connection and allows real-time communication. To guarantee smooth delivery of video and audio streams, while still maintaining the ability to transmit bigger chunks of information, the protocol splits video and data into 128-byte fragments (except for audio which uses 64-byte fragments). Fragments from different streams are then interleaved and multiplexed over a single connection. With longer data chunks, the protocol only carries a one-byte header per fragment, thus incurring very little overhead.

At a higher level, the RTMP protocol encapsulates MP3 and Flash Video multimedia streams, and can make remote procedure calls (RPCs) using the Action Message Format.

Other RPC services are made asynchronously with a single client/server request/response model, so real-time communication is not necessary.[clarify][1]

[edit] HTTP tunneling

Many corporate network firewalls block connections via unrecognised ports and protocols; for this reason, a variant called RTMPT (RTMP Tunneled) was developed. This protocol encapsulates the RTMP data in valid HTTP requests, and by default communicates on port 80. While RTMPT requires slightly higher bandwidth due to the addition of HTTP headers, the protocol can be used successfully in environments where security measures would block RTMP. This approach also works on secured HTTPS connections, in which case it is called RTMPS (RTMP Secure).

[edit] RTMP server software

Currently, the only full implementation RTMP servers are the Adobe Flash Media Server and Wowza Media Server, both commercial and closed source implementations.

There is a reverse engineered open source project called Red5 which aims to produce a feature-complete implementation written in Java. As of October 2007, the majority of the functionality is implemented, although the project is still in the beta stage. There are some other RTMP-servers with basic functionality available over Google Code

[edit] References

[edit] External links