The Real-Time Media Flow Protocol (RTMFP) is a communication protocol from Adobe that enables direct end user to end user peering communication between multiple instances of the Adobe® Flash® Player client and applications built using the Adobe AIR® framework for the delivery of rich, live, real-time communication.
RTMFP requires Adobe Flash Player 10 (or later) or Adobe AIR 1.5 (or later), as well as an RTMFP-capable server to introduce the clients. Adobe Flash Media Server 4 (and later) software supports RTMFP; learn more about Adobe Media Server.
By using RTMFP, applications that rely on live, real-time communication, such as social networks and multiuser games, can deliver higher quality communication solutions. Flash Player 10 and AIR 1.5 and later also enable end users to connect and communicate directly with each other using their computers' microphones and webcams. Flash Player 10 and AIR 1.5 do not support file or document sharing.
RTMFP can help reduce the bandwidth costs for direct, live, real-time communication solutions, such as audio and video chat and multiplayer games. Because RTMFP can send data directly between the end-user clients and not through the server, solutions are less expensive to scale.
RTMFP also increases the quality of delivery through the use of the User Datagram Protocol (UDP). UDP is a more efficient way to send video and audio data over the Internet that helps ensure connections are not interrupted if variations occur within the network.
RTMFP has two features that improve connection reliability over other protocols, such as the Transmission Control Protocol (TCP).
RTMP is a proprietary two-way protocol developed by Adobe for streaming audio, video, and data over the Internet, between Flash Player and a server.
The principle difference is how the protocols communicate over the network. RTMFP is based on UDP, whereas RTMP is based on TCP. UDP-based protocols have significant advantages over TCP-based protocols in the efficient delivery of live streaming media, decreased latency, increased voice/audio quality, and greater connection reliability.
Unlike RTMP, RTMFP also supports sending data directly from one Adobe Flash Player client to another, without going through a server. A server-side connection will always be required to establish the initial connection between the end users and can be used to provide server-side data execution or gateways into other systems. An Adobe Media Server user will also be required to authorize network address lookup and Network Address Translation (NAT) traversal services for the clients to prevent Flash Player from being used in an unmanaged way.
| Communication today using RTMP — end users connect and communicate through the server | Communication using RTMFP — end users connect directly, which reduces bandwidth needs |
|---|---|
|
|
RTMFP enables a higher capacity and higher quality delivery for live communication solutions such as Voice over Internet Protocol (VoIP), webcam chat, and multiplayer games. Some examples of solutions that can be built using RTMFP include:
| Webcam chat | VoIP | Multiplayer games |
|---|---|---|
A developer leverages the published API of a social networking site and RTMFP to create a webcam chat application for use between users of the site. The use of RTMFP in combination with Adobe Media Server enables end users to find and establish a one-way data/media stream directly with another end user. Because RTMFP sends data between the clients and not the server, bandwidth is not being used at the server and is much less expensive to scale. |
A developer builds a desktop application on Adobe AIR that allows an end user to "call" contacts listed in his or her instant message application. The AIR application will establish an RTMFP connection with Adobe Media Server to find a contact and receive information from the instant messaging interface. The contact receives a notification of the incoming call and can accept or decline the call. Once a call is accepted, the audio will flow directly between the two end users' desktop clients, not through the server. Because RTMFP uses UDP, end users experience a consistently high-quality experience even if variations occur in the network. |
When a game developer wants to add multiplayer functionality to an application, it must be done in an efficient way so as not to cause latency and slow down the end-user experience. By using RTMFP to send the data within the application, the data flow will occur directly between end users over UDP. |
UDP is an efficient Internet protocol to allow partially reliable (lossy) delivery of media and data. UDP, unlike TCP, does not try to recover data that has been lost in transmission. This allows video and audio to keep up with live, real-time communication and reduce delay caused by latency, which is a priority for these types of real-time solutions. TCP waits for data packets, which can cause delays or interruptions in the delivery. UDP can also support communication in large enterprise networks protected by NAT routers, something TCP cannot do. Learn more about UDP.
RTMFP is different from other simple UDP protocols because it prioritizes transmission of multiple media flows.
TCP is the Internet protocol used by web browsing, file transfer, and email applications. TCP is used today by the HTTP protocol for web servers and the RTMP protocol to deliver video, audio, and data from Adobe Media Server to Flash Player and AIR. TCP is useful because it reliably delivers data, but that reliability may add latency, reducing the quality of live media streaming. Learn more about TCP.
RTMFP network traffic is always encrypted with 128-bit cipher. For a client to play a stream that is published via RTMFP, the client will need to know the name of the stream plus have the Peer ID of the publisher. The ID will be a 256-bit value associated with the publisher's identity. In addition, the publisher must accept a peer request before connection is made.
P2P has various meanings within the technology industry, but it typically refers to the establishment of a direct connection between two or more end users to aid in the movement of data and media.
There are three types of P2P solutions:
Learn more about peer-to-peer computing.
RTMFP uses P2P techniques to help ensure a high-quality delivery and efficient use of the network. It is a managed connection, which means it requires the authorization of a server to make the introductions. The client must be connected to the server to retain the direct connection.
No. These other solutions are swarming solutions, which use many to many P2P communications to share the distribution of files among large numbers of clients. RTMFP enables direct end user to end user communication for live, real-time communication solutions, not file transfer.
RTMFP enables developers to establish direct end user to end user peering communication between two or more Adobe Flash Player clients or applications built using the Adobe AIR framework for delivery of live, real-time data. RTMFP is similar to RTMP for client-server connections because RTMFP has full support for all the Adobe Media Server functionality currently found in RTMP, including live streaming, recording and playback, shared objects, and remote function calls.
ActionScript® developers will be able to use ActionScript 2.0 or 3.0 to establish a NetConnection with a future version of Adobe Media Server. To make direct connections between Flash Player 10 (or later) clients, new extensions have been added to the ActionScript class NetStream to establish a Flash Player client as a publisher or subscriber.
RTMFP does not enable swarming, multicast, or broadcast-quality live video. It only enables communication from the voice and video devices native to your computer (such as your microphone and webcam).
Adobe's own RTMP is the closest commercial product available for client-server communication.
RTMFP will have no impact on CDNs. CDNs primarily focus on the one-way delivery of video on demand and live video on a massive scale, not the direct end user to end user communication enabled by RTMFP. CDNs will play a critical role in the delivery of RTMFP-enabled applications by helping end users initiate the desired peering relationship.