Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7894257
  • 博文数量: 701
  • 博客积分: 2150
  • 博客等级: 上尉
  • 技术积分: 13233
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-29 16:28
个人简介

天行健,君子以自强不息!

文章分类

全部博文(701)

文章存档

2019年(2)

2018年(12)

2017年(76)

2016年(120)

2015年(178)

2014年(129)

2013年(123)

2012年(61)

分类: 系统运维

2012-09-26 21:01:21

Introduction of RTMP(Real Time Messaging Protocol)

January 22, 2010 by   
Filed under  

Fund - © playerdiy blog

What exactly is RTMP and its classifications?

RTMP (Real Time Messaging Protocol)

developed by Adobe System for the function of streaming Audio/Video data between Flash Player and media server.

RTMP是由Adobe开发的基于TCP的应用层协议,应用于音/视频流数据在Flash PlayerMedia Server 之间的传输

 

1.       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.

RTMP的变种,能和防火墙一起工作。它工作在80端口,并将RTMP数据封装在HTTP的请求当中。

 

2.       RTMPS (Real Time Messaging Protocol Secure)

RTMPS is again a variation of RTMP which works over secure HTTPS connection.

RTMPSRTMP的变种,它工作中安全的HTTPS连接之上。

 

3.       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.

RTMPE是用于保护flash客户端和服务端之间的流数据的一个新的128比特封装的协议,它比SSL轻量,是Adobeflash用于DRM(内容数字版权加密保护技术)的解决方案。

 

4.       RTMPTE (Real Time Messaging Protocol with Encryption and Tunnel)

RTMPTE is a RTMPE tunneling over HTTP on port 80.

RTMPTERTMPE对于HTTP 80端口的隧道协议

 

MRTMP (Multiplex Real Time Messaging Protocol)

Multiplex RTMP is a protocol developed by Red5 for clustering of stream data using

MRTMP是由Red5开发的用在edge and origin之间的多路复用RTMP协议,它主要用于使用Terracotta业收集流数据

How does RTMP run?

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 larger 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.

原生的基于TCPRTMP协议在实时连接时要保有一个单一而稳定的链接。为了保证音视频流能流畅地传输,并维护传输大的信息chunk的能力,该协议将切分音视频数据成片断。片断的大小可由客户端和服务端来动态协商。尽管默认的片断大小是128bytes的视频和其它数据,64byte的音频数据,但是有要求时,片断大小是可以完全为零的。

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 small overhead. In practice but, party fragments are not typically interleaved. Instead, the interleaving and multiplexing is done at the packet amount, 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 make are treated as indivisible, and are not interleaved on the fragment amount.

来自不同流的片断允许在同一个链接中交错和混合。对于大的数据chunk来说,该协议将会为每个片断增加一个字节的头,因此,导致了很小的负载增加。但是,在实际应用中,成组的片断一般不交错。这种交错和混合主要是用在分组交换中,当RTMP的分组通过不同的多个激活的链路时,这种方式的交错能确保匹配每个链路的带宽,时延和其它的QoS。这种方式的交错可以视为是不可见的,对于片断来说是透明的。

The RTMP defines several channels on which packets may be sent/received, and which run 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 ongoing 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 disintegration.

当分组将要被传送/接收时,RTMP为它定义了多个彼此独立的链路。在一个典型的RTMP会话中,在任何时刻都会有多个通道会被同时激活。当RTMP数据被分组时,会有一个组头产生,这个组头定义了将要发送的通道ID号,分组生成时的时间戳,分组负载的大小等等,然后后面紧跟着的是分组负载---- 它是依据在链接前协商好大小的数据片断。分组头本身是不能分组的,并且它的大小是不计入分组的每一个片断的大小的。换句话来说,只有实际的分组负载数据被分析。

 

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 fund media player XBMC has bought preliminary support for playing RTMP streams in its SVN version. Recently, version 2.0 with the RTMP Stream Plugin supports the playback of live streaming videos, SMIL presentations, and streaming videos from RTMP servers. Besides, JW Player and Flow Player supports RTMP as well.

支持RTMP的播放器:Adobe’s Flash Player, XBMC, Moyea Web Player, JW PlayerFlow Player

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 fund implementations.

There is a reverse engineered open fund project calledwhich 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.

支持RTMP服务端的软件:

Adobe Flash Media Server.

Onlinelib VCS Video Communication Server (including iPhone Support)

Wowza Media Server

WebORB Integration Server (free and available for .NET, Java and ColdFusion)

Red5

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 calculated 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 contrivance 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.

阅读(3777) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~