关于 RTMP RTMPT RTMPS RTMPE RTMPTE RTMFP AMF 简介

http://www.360doc.com/content/13/0709/16/21412_298738723.shtmlhtml

 

1. AMF
AMF(是Action Message Format的缩写)是在flash和flex中与远程服务端交换数据的一种格式.它是二进制格式,Flash应用与服务端或数据库经过RPC交换数据 时,一般都采用这种格式。AMF 1 诞生于Flash Player6,发展到如今已经变成了了AMF3

2. RTMP
RTMP 是Real-Time Messaging Protocol(实时消息传送协议)的缩写,它是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的协议。这是一个标准的,未加密的实时消息传递协议,默认端口是1935,如 果未指定链接端口,那么flash客户端会尝试链接其余端口,其尝试链接顺序按照下列顺序依次链接:193五、44三、80(RTMP), 80(RTMPT).RTMP协议是被Flash用于对象,视频,音频的传输.该协议创建在TCP协议或者轮询HTTP协议之上。  

3. RTMPT
RTMP的变种,此协创建在HTTP协议之上,是经过HTTP封装后的RTMP协议,默认端口80.

4. RTMPS
RTMP的另外一个变种,此协议是经过SSL加密的RTMP协议,为数据通信提供安全支持。SSL(Secure Sockets Layer 安全套接层)是为网络通讯提供安全及数据完整性的一种安全协议。SSL在传输层对网络链接进行加密。默认端口443。

5. RTMPE
RTMP 的变种,RTMPE是一个加密版本的RTMP,和RTMPS不一样的是RTMPE不采用SSL加密,RTMPE加密快于SSL,而且不须要认证管理。若是没 有指定RTMPE端口,Flash播放器将像RTMP协议同样依次扫描下列端口:1935(RTMPE) 443(RTMPE) 80(RTMPE) 80(RTMPTE)

6. RTMPTE
RTMPTE 这个协议是一个经过加密通道链接的RTMPE,默认端口80.

7. RTMFP
RTMFP 是Adobe公司开发的一套新的通讯协议,该协议可让使用Adobe Flash Player的终端用户之间进行直接通讯。此方案提高了目前Flash Player在网络交互方面的体验。RTMFP将减小直播、实时聊天方案的带宽消耗,例如音视频聊天和多人游戏。由于RTMFP的数据在终端用户之间流 动,而不是和服务器,因此此方案很适合于大范围的部署。RTMFP由于采用了UDP也提高了传送的速度。UDP是Internet上一种更有效传送音频视 频的方法,虽然会有一些丢包,错包。RTMFP有两个特性能够帮助解决一些链接错误。   快速链接恢复:链接在之外状况下将快速恢复。例如,一个无线链接掉线了,一旦重连,他将迅速拥有全部的传送能力。   IP动态化:一个活动的网络会话将以PEER来标识,即便他变了一个IP,也能够保持原来的会话。例如,一个笔记本在一个无线网络得到了一个新IP地 址,他将马上继续刚才的会话。   RTMP和RTMFP之间的不一样,最根本的是他们在网络上采用的协议。RTMFP是基于UDP的,RTMP是基于TCP的。UDP在传送直播数据方面 比TCP仍是有较多优点的,好比减小延时,对丢包的容忍,虽然在可靠性上有所损失。RTMFP支持Flash Player直接发送数据给另外一个,而不通过Server,服务端链接将被用来初始化并交互一些客户端之间的信息,也可用来进行服务端调用或者做为进入其 他系统的网关。数据库

 

 

#define RTMP_PROTOCOL(flavor)                    \
static const AVClass flavor##_class = {          \
    .class_name = #flavor,                       \
    .item_name  = av_default_item_name,          \
    .option     = rtmp_options,                  \
    .version    = LIBAVUTIL_VERSION_INT,         \
};                                               \
                                                 \
URLProtocol ff_##flavor##_protocol = {           \
    .name           = #flavor,                   \
    .url_open       = rtmp_open,                 \
    .url_read       = rtmp_read,                 \
    .url_read_seek  = rtmp_seek,                 \
    .url_write      = rtmp_write,                \
    .url_close      = rtmp_close,                \
    .priv_data_size = sizeof(RTMPContext),       \
    .flags          = URL_PROTOCOL_FLAG_NETWORK, \
    .priv_data_class= &flavor##_class,           \
};


RTMP_PROTOCOL(rtmp)
RTMP_PROTOCOL(rtmpe)
RTMP_PROTOCOL(rtmps)
RTMP_PROTOCOL(rtmpt)
RTMP_PROTOCOL(rtmpte)
RTMP_PROTOCOL(rtmpts)

安全

相关文章
相关标签/搜索