首页 > 代码库 > RTMP vs RTMFP

RTMP vs RTMFP

   实时流媒体协议(RTMFP)是Adobe公司开发的一套新的通信协议,它可以使终端用户在构建于LCCS或基于Adobe AIR架构的多个Adobe Flash 播放器和应用程序之间进行直接通信。 通过RTMFP协议,社区网络和多人游戏等实时通信应用程序就能够提供高质量的实时通信解决方案。 同时,RTMFP协议也实现了终端用户通过电脑上的麦克风和网络摄像头直接互相连接和通信。

    RTMFP协议基于用户数据报协议(UDP),而RTMP协议基于传输控制协议(TCP)。 在传递实时流媒体时,基于UDP的协议相对于基于TCP的协议拥有更多的优势,比如更低的延迟和运营成本,以及对丢失包的允许误差也更大一些。 需要用到服务器端连接来建立起客户端之间的初始化连接,也可用来进行服务器端的数据调用或者作为进入其他系统的网关。

    RTMP(TCP)采用星型拓扑结构,这一点不适用于实时数据流。 RTMFP在数据传输失败的时候,并不强制音频和视频包的重新传送。 尽管数据不完整了,但它仍能继续进行播放,这意味着在小段包丢失的情况下,数据流可以流畅播放。 RTMFP也支持客户端对客户端的数据传输。 客户端到客户端的数据流不仅免费而且速度更快,这是因为它并不通过LCCS服务来进行传递。 但是,由于大量用户的存在,防火墙或者其他网络环境可能会禁止使用RTMFP,所以LCCS被设计成能够根据网络环境的情况进行自由转换,即如果RTMFP协议可用,那就使用RTMFP协议;如果不可用,就使用RTMP协议。

    RTMFP通常是通信协议中的首选协议,如果您使用推荐的Flash Player10 SWC,那么RTMFP协议将是一个很好的选择。 由于LCCS的智能特性,它完全能够根据需要在两种协议之间自由切换。只要有可能,您应该尽量使用高性能的RTMFP协议,而可以将RTMP作为后备协议。

    要使用RTMFP协议,需要将您的项目设置为使用Flash Player 10或10.1SWC文件。

RTMFP协议的优点:

    1.客户端到客户端的数据流:由于在C2C模式下,从源到目的地之间只有较少的中继数,从而降低了延迟。这对于LCCS服务和您来说都大有益处,服务只需较少的基础设施就可为您获取数据流,而且提高了可靠性。

    2.使用Flash Player10解码器Speex:在早期的Flash Player中,Speex是一种比NellyMoser更好的编码解码器。这是因为它的音频编码质量更高,比特率也更低。此外,它能更好地兼容UDP协议,从而更好地处理丢包的问题。

    3.减少带宽消耗:RTMFP协议减少了语音和视频聊天、多人游戏等直接实时通信解决方案的带宽消耗。由于RTMFP协议只让数据在用户终端之间流通,而不需经过服务器,从而降低了服务器的带宽消耗。这样,解决方案的成本就会按比例下降。

    4.提升数据传输速率:RTMFP协议也能够通过UDP协议提升数据传输速率。因为UDP协议降低了数据包丢失、抛弃或者乱序等造成的影响,所以它是一种更高效(但是可靠性较低)的网际传输语音和视频数据的方式。

    5.优越的连接错误恢复能力:RTMFP协议具备两样特性,有助于解决一些连接错误导致的问题:

    快速连接修复:连接在短暂掉线的情况下将会快速恢复。例如,当一个无线网络连接掉线了,那么会马上重建连接。一旦重新连接,它将迅速拥有所有的传送能力。

    IP动态化:即使一个客户转换到新的IP地址,原先处于活动状态的网络peer会话仍然会保持。例如,一台无线网络连接的笔记本接入到有线网络后,会获得一个新IP地址,但它仍然可以继续之前的会话。

    RTMFP协议的缺点:

    需要安装Flash Player 10。 但这通常会是一个好事情。


    QQ群:580477436

本文出自 “12072981” 博客,请务必保留此出处http://12082981.blog.51cto.com/12072981/1853639

RTMP vs RTMFP