• 关于 RTMP RTMPT RTMPS RTMPE RTMPTE RTMFP AMF 简介


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

    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客户端会尝试连接其他端口,其尝试连接顺序按照下列顺序依次连接:1935、443、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)

  • 相关阅读:
    微信支付接口之心酸
    分页之辛酸史
    谈谈面试经历
    Linux(Ubuntu 14.0)
    Android(Xamarin)之旅(五)
    css:befor :after 伪元素的妙用
    js设计模式-代理模式
    html页面元素命名参考
    html5-meta标签和搜索引擎
    iframe框架加载完成后执行函数
  • 原文地址:https://www.cnblogs.com/jingzhishen/p/3738292.html
Copyright © 2020-2023  润新知