Last updated on 2009-07-21, by
Introduction of RTMP(Real Time Messaging Protocol)
RTMP is one of the protocols for streaming of Audio/Video exactly using Flash Media Server and Red5. following is the detailed content about it.
What exactly is RTMP and its classifications?
RTMP (Real Time Messaging Protocol)
RTMP is a TCP based propriety protocol developed by Adobe System for the purpose of streaming Audio/Video data between Flash Player and media server.
RTMPT (Real Time Messaging Protocol with Tunnel)
RTMPT is a variation of RTMP which works behind the firewall as well. It works on Port 80 and encapsulate the RTMP data in HTTP request.
RTMPS (Real Time Messaging Protocol Secure)
RTMPS is again a variation of RTMP which works over secure HTTPS connection.
RTMPE (Real Time Messaging Protocol with Encryption)
RTMPE is a new 128 bit encrypted protocol developed by Adobe systems for securing the stream data between flash client and server. It’s lightweight than SSL. It’s a DRM solution from Adobe for flash.
RTMPTE (Real Time Messaging Protocol with Encryption and Tunnel)
RTMPTE is a RTMPE tunneling over HTTP on port 80.
MRTMP (Multiplex Real Time Messaging Protocol)
Multiplex RTMP is a protocol between edge and origin, developed by Red5 for clustering of stream data using Terracotta.
How does RTMP operate?
The raw TCP-based RTMP 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 may split video and data into fragments. The size of the fragments used can be negotiated dynamically between the client and server, and even disabled completely if desired, although the default fragment sizes are 128 bytes for video and most other data types, and 64-bytes for audio data. Fragments from different streams may then be interleaved and multiplexed over a single connection. With longer data chunks, the protocol would then only carry a one-byte header per fragment, thus incurring very little overhead. In practice however, individual fragments are not typically interleaved. Instead, the interleaving and multiplexing is done at the packet level, with RTMP packets across several different active channels being interleaved in such a way to ensure that each channel meets its bandwidth, latency, and other quality of service requirements. Packets interleaved in this fashion are treated as indivisible, and are not interleaved on the fragment level.
The RTMP defines several channels on which packets may be sent/received, and which operate independently of each other. During a typical RTMP session, several channels may be active simultaneously at any given time. When RTMP data is packetized, a packet header is generated. The packet header specifies, among other things, the id of the channel that it is to be sent on, the timestamp at which is was generated (if necessary), and the size of the packet payload. This is then followed by the packet payload, which is fragmented according to the currently agreed-upon fragment size before it is serialized over the connection. The packet header itself is never fragmented, and its size does not count towards the data in the packet’s first fragment. In other words, only the actual packet payload data is subject to fragmentation.
What players support RTMP?
The most well-known RTMP client is Adobe’s Flash Player which can stream video and audio from RTMP servers. Besides, the open source media player XBMC has acquired preliminary support for playing RTMP streams in its SVN version. Besides, JW player, flow player and Moyea Web Player version 2.0 with the RTMP Stream Plugin support the playback of live streaming videos, SMIL presentations, and streaming videos from RTMP servers.
What is RTMP server software?
Currently, the only full implementation RTMP servers are the Adobe Flash Media Server, Onlinelib VCS Video Communication Server (including iPhone Support), Wowza Media Server and WebORB Integration Server (free and available for .NET, Java and ColdFusion) 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. OneTeam Media Server has also been announced by ProcessOne.
Some related news?
On 20 January 2009 Adobe announced it will publish the RTMP specification. On 21 May 2009 Adobe filed a DMCA removal request on a Sourceforge-hosted implementation of the protocol. On Monday, June 15, 2009 Adobe released the RTMP Specification, which is designed for high-performance transmission of audio, video, and data between Adobe Flash Platform technologies.
The project is dedicated to driving rich Internet experiences across televisions, personal computers, mobile devices, and consumer electronics. To support this mission, and as part of Adobe’s ongoing commitment to enable Web innovation, Adobe will continue to open access to Adobe Flash technology, accelerating the deployment of content and rich Internet applications (RIAs). This work will include:
Removing restrictions on use of the SWF and FLV/F4V specifications.
Publishing the device porting layer APIs for Adobe Flash Player.
Publishing the Adobe Flash® Cast™ protocol and the AMF protocol for robust data services.
Removing licensing fees – making next major releases of Adobe Flash Player and Adobe AIR for devices free.
Sources are from Wikipedia.