Real Time Messaging Protocol
From FlashSec
Real Time Messaging Protocol (RTMP) | |
---|---|
Developer | Adobe |
Release | |
Website(s) | |
Documentation | |
Wikipedia | Real Time Messaging Protocol |
OSFlash | RTMP Protocol |
Real Time Messaging Protocol (RTMP) is a proprietary protocol developed by Adobe Systems (formerly developed by Macromedia) that is primarily used with Adobe Flash Media Server to stream audio, video, and data over the internet to the Adobe Flash Player client.
RTMP can be used for Remote Procedure Calls. RTMP maintains a persistent connection with an endpoint and allows real-time communication. Other RPC services are made asynchronously with a single client/server request/response model, so real-time communication is not necessary.
The protocol is being reverse engineered by the Red5 open source project.
Wowza Media Systems has independently developed a complete set of RTMP libraries.
Flex Data Services also uses RTMP.
WebORB is an alternative to FDS for .NET.
The default connection port for RTMP is 1935.
[edit] Variants
As many corporate networks and home firewalls block connections via ports and protocols they do not recognise, a commonly-used variant of RTMP is RTMPT (RTMP Tunneled). This protocol encapsulates the RTMP data as valid HTTP, and by default communicates on port 80. While RTMPT requires marginally higher bandwidths due to the addition of HTTP headers, the protocol can be used successfully in environments where security measures would block RTMP.
A second variant of RTMP is RTMPS (RTMP Secure). This is RTMP tunneled via HTTPS, with a default port of 443.
[edit] RTMP Servers
Currently, the only full implementation RTMP servers are Adobe Flash Media Server (Commercial, closed-source) and Wowza Media Server (commercial, closed-source). Work is progressing fast on a free, open source alternative, Red5, is done and it is available at their website. There is also RTMPy, a server/client alternative based on Twisted/Python and haXeVideo, a multithread FLV streaming server entirely written using the haXe programming language.
[edit] External links
- http://www.adobe.com/devnet/flex/articles/rpc_service_05.html
- http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_16631
- http://www.macromedia.com/software/flashmediaserver/
- OSFlash - RTMP Protocol
- OSFlash - RTMP OS
- RTMP spec JPEG
- Low level AS3 - Establishing an RTMP connection with Socket and ByteArray
- RTMP Documentation from RTMPy
- RTMP handshake packets decoded