`

Flash Player 10中使用RTMFP开发P2P应用的Cirrus服务(一)

阅读更多

http://bbs.9ria.com/viewthread.php?tid=74497&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D2592000

Adobe Flash Player 10 和 Adobe AIR 1.5 引入了一个新的通讯协议——Real-Time Media Flow Protocol 即实时媒体流协议,简称RTMFP。它具有低延迟、对等的端到端能力、安全性和可扩展性,尤其适合于开发实时协作的应用,不仅提供优秀的用户体验还降低了操作者的开销。

早期的Flash Player版本采用RTMP并且需要FMS 对于交互式的协作应用(例如:adobe Acrobat Connect Pro)或者音/视频流服务。虽然RTMP是一很优秀的选择,对于流媒体、共享对象或远程操作,限定于实时交互式的音视频通讯需求

为了使用RTMFP,Flash Player终端必须连接到支持RTMFP的服务器,如:代号Cirrus(以前称为Stratus)的服务或FMS4,Cirrus是一个提供集合点服务的主机,并辅助Flash Player终端之间建立通信帐号。不像FMS,Cirrus不支持媒体中继(media relay)、共享对象、脚本等。所以使用Cirrus,只能开发Flash Player终端之间直接通信的应用。

Flash Player已经是WEB在线视频分发市场的领袖。在引入RTMFP和高级媒体压缩技术后,Flash Player成为实时通信领域的领袖。

这篇文章,首先强调了在实时通信应用程序中采用RTMFP的好处。之后,叙述了管理直接端到端RTMFP连接的AS3 API。最后,介绍了VideoPhone 应用样例。

RTMFP的优势:
RTMFP是一个在Flash Player 10 和AIR 1.5 中引入的全新通信协议。与RTMP的主要不同在于:RTMP是基于TCP并专门用于以前的Flash Player版本,而RTMFP建立于UDP之上。

虽然TCP提供了可靠的数据传送(对文件传输、电子邮件等非常适合),但它不能提供丝毫的端到端延迟保证。TCP通过在指定时间内重发丢失数据实现可靠的数据传送。因为实时通信最重要的目标之一是最小化端到端的延迟(100ms的延迟可能致使会话不能使用),TCP并不适合。传送错误适应能力和恢复能力是绝大多数高级音频视频压缩技术的必需的构成部分,例如已经在Flash Player 10中支持的Speex音频和H.264视频编码。因此不需要TCP提供的可靠传输。因此将提供高效而快速的数据传送的UDP,用于严格追求最小化端到端延迟的实时协作应用,是为人所受的。另外UDP优于TCP的地方在于,它让端到端对等,它可以让位于NATs之后的两个客户端直接传送数据。

与RTMP比较,RTMFP在实时通讯方面具有以下优势:

低延迟:由于RTMFP建立于UDP之上,它为实时通信提供了最小的延迟。最重要的是RTMFP同时提供了可靠和不可靠两种传输服务。当在两个Flash Player实例之间发送数据时(如:用NetStream.send()方法),采用可靠传输。当发送Speex音频实例时,采用不可靠传输,提供最小化的延迟。
端到端的媒体传输:不需要通过中转服务器,即可在两个Flash Playerp实例之间发送媒体。RTMP会将所有数据发送到Flash Medai Server,RTMFP不仅最大限度地降低了端到端的延迟,而且还省掉了连接到中间数据转接的环节,以至于具有极强的可扩展部署能力。
优化数据:传送音频数据具有比视频和其他时间非关键数据更高的优先级别。这意味着可以在较紧张的带宽通信上增强用户体验。
较之前版本,这些功能为实时通信带来极大的益处,极大提升了用户体验。

防火墙穿越
RTMFP建立于UDP之上,UDP能让两个客户端直接连接,即使它们位于NAT或防火墙之后。为了能让RTMFP正常工作,你必须允许防火墙的对外UDP传送。大部分用户或SOHO防火墙、多数企业防火墙都关闭了UDP传送功能。

一种解决方案是配置Flash Player用TURN代理。Flash Player支持未经认证的IETF因特网草案。如果网管配置TURN代理为允许外出UDP,可以在mms.cfg中增加一行配置Flash Player。

RTMFPTURNProxy=ip_address_or_hostname_of_TURN_proxy

直接UDP传送总是尝试,TURN代理只是备用:用于UDP传送不能在Flash Player和Cirrus之间或Flash Player终端之间流动时。

即使你的防火墙打开了对外UDP传送,也可能由于综合防火墙不能建立端到端的对等连接。当一个终端位于“均衡防火墙”之后时,也许不能进行端对端通信。(对于分级防火墙,请参阅   )在这种情况下,你可以使用TURN代理辅助防火墙传输。

Cirrus 服务
Flash Player 实例要与另一个实例通信,就必需连接到Cirrus服务(使用rtmfp://p2p.rtmfp.net)。 Cirrus是一个帮助主持Flash Player实例之间进行联系会合的服务,即使它们都位于NATs之后。虽然连接到Cirrus服务非常类似于连接到FMS,但Cirrus不提供任何FMS的特有功能(媒体延迟、共享对象、远程等)。Flash Player终端在通信期间必须保持与Cirrus服务的连接。为了使用Cirrus,需要一个开发key,这个可以在创建Adob Developer ID时生成。
在FMS 4中可以使用RTMFP支持。FMS可以让Flash Player 9 或早期客户端(用RTMP)与Flash Player 10 客户端通信。

安全
RTMFP提供了可靠的终端之间的通信。它采用128位AES加密Key,协商采用Diffie-Hellmann交流方式。不过,它不能提供像SSL或RTMPS一样强的终端身份认证。为了帮助终端身份认证,RTMFP和ActionScript 对应用开发者公开安全随机数。要保证两个通讯的Flash Player终端的随机数相匹配。终端用户可通过校验这些随机数,以确保在传输过程中没有受到攻击。这些随机数也可以用于开发key连续机构。

值得注意的是Flash Player只能将你允许的麦克和摄像头发送到其他的Flash Player终端。
分享到:
评论

相关推荐

    P2P on the Flash Platform with RTMFP.pdf

    文档部分内容首先介绍了版权信息,并通过一系列幻灯片的形式概述了P2P通信的概念、Flash Player 10.0中支持的P2P功能以及新增加的P2P功能等。 - **P2P概念**: - **点对点通信**:两个用户直接连接并传输数据。 -...

    RTMFP 的p2P实现

    RTMFP(Real-Time Media Flow Protocol)是一种专为实时媒体通信设计的协议,它由Adobe Systems开发并应用于其Flash Player和Adobe AIR平台中。P2P(Peer-to-Peer)技术则是通过网络上的多个对等节点共享资源的一种...

    RTMFP, flash to java

    在“RTMFP, flash to java”这个主题中,我们关注的是如何在ActionScript 3 (AS3)编写的Flash应用程序与Java应用程序之间通过RTMFP进行通信。这种通信方式在实时互动应用,如视频聊天、多人在线游戏或者数据共享等...

    Flash P2P 游戏入门

    从Flash Player的演进到P2P功能的具体应用,我们可以看到,无论是通过Native IP Multicast在局域网内构建P2P游戏,还是借助Cirrus或Flash Media Server 4实现更复杂的游戏逻辑,Flash都展现了其在P2P游戏开发领域的...

    Flash P2P流媒体服务器系统

    Flash P2P流媒体服务器系统(简称P2PS)使用Flash Player客户端和RTMFP协议进行P2P视频直播/点播,极大的节省了服务器昂贵带宽。  工作流程:直播可通过Adobe Flash Media Live Encoder以及其它支持RTMP协议的发布...

    flashP2P协议rtmfp解析.docx

    RTMFP协议的设计充分考虑了P2P环境中的效率和安全性,通过高效的加密机制和rendezvous服务,实现了Flash应用中的低延迟、高带宽的多媒体通信。在理解RTMFP协议的基础上,开发者可以更好地构建和优化基于Flash的P2P...

    RTMFP:rfc7425.pdf

    尽管Adobe Flash已经被广泛淘汰,并且Adobe公司已经宣布了Flash Player的终止日期,但是了解RTMFP协议的工作原理和实现细节,对于那些仍然需要维护老旧Flash应用的开发者而言,仍然具有一定的实用价值。此外,从技术...

    flash 实现P2P实用代码

    Flash是Adobe开发的一种交互式矢量图形和多媒体平台,广泛应用于网页动画和多媒体内容。在Flash中实现P2P功能,可以让用户之间直接交换数据,降低服务器负载,提高传输效率。以下将详细讲解如何使用Flash的RTMFP协议...

    rtmfp vs 测试 demo

    RTMFP(Real-Time Media Flow Protocol)是一种网络协议,由Adobe Systems开发,主要用于P2P(点对点)的应用场景,尤其是实时音频、视频通信。它允许应用程序通过互联网直接进行低延迟的数据传输,例如在Flash ...

    rtmfp 测试代码

    6. **应用开发**:对于初学者,这个测试代码提供了一个学习如何在Flash环境中搭建P2P视频传输应用的机会。开发者可以借此了解如何初始化RTMFP连接,设置数据通道,以及如何处理音视频流。 7. **实际应用**:RTMFP被...

    如何搭建视频直播网站.视频直播网站服务器架构(Flash P2P点播,RTMP,RTMFP,FMS,单播,多播,CDN,直播云).zip

    如何搭建视频直播网站.视频直播网站服务器架构(Flash P2P点播,RTMP,RTMFP,FMS,单播,多播,CDN,直播云).zip

    rtmfp协议规范.pdf

    RTMFP作为一种高效、安全且灵活的实时媒体传输协议,在多种应用场景下展现出了强大的优势。无论是P2P通信还是客户端-服务器模型,RTMFP都能够提供稳定的连接和优质的媒体传输体验。随着技术的不断发展,未来RTMFP还...

    RTMFP协议分析文档

    RTMFP(Real Time Messaging Flash Protocol)是一种由Adobe Systems开发的专用于Flash Player之间的实时通信协议。它利用P2P技术,允许两个或多个Flash Player实例之间进行直接的数据交换,而无需通过服务器转发,...

    as3 p2pTest测试代码

    AS3(ActionScript 3)是Adobe开发的一种脚本语言,广泛用于创建富互联网应用程序(RIA),特别是与Flash Player和Adobe AIR平台结合时。在给定的“as3 p2pTest测试代码”中,我们关注的是使用AS3实现P2P(Peer-to-...

    Red5是一个开源的Flash服务器代码

    Red5是一款基于Java开发的开源Flash服务器,它为开发者提供了实时流媒体和交互性应用程序的服务。这个技术的主要目的是为了支持Adobe Flash Player以及其他可以与Flash Media Server(FMS)交互的客户端,提供类似的...

    类似FMS的RED5开源FLASH流媒体服务器源码

    RED5开源FLASH流媒体服务器是一种类似Adobe Flash Media Server (FMS)的解决方案,它提供了实时流传输服务,支持多种媒体格式,并且完全免费且开放源码。RED5由Java编写,因此具有跨平台的特性,可以在运行Java环境...

    P2PVODPlayer_P2PVODPlayer_unlessn66_

    【P2PVODPlayer_P2PVODPlayer_unlessn66_】是一个基于ActionScript 3.0(AS3)开发的P2P点播播放器项目,它旨在实现高效、低延迟的视频流媒体服务。这个播放器利用了Adobe Flash Media Server (FMS)作为后端服务器,...

    Adobe.Flash.Media.Server.3.开发者向导.简体中文版

    Adobe Flash Media Server 3(简称FMS)是Adobe公司推出的一款强大的流媒体服务器软件,它为开发人员提供了创建、管理和分发实时音频、视频及互动应用程序的平台。本"Adobe Flash Media Server 3 开发者向导"是针对...

    Adobe Stratus 与 php + Mysql 实现p2p的语音视频聊天

    Adobe Stratus是一个由Adobe公司提供的免费服务,它利用Flash Player的实时通信技术(RTMFP)来实现点对点(P2P)的数据传输。在本文中,我们将深入探讨如何结合Adobe Stratus、PHP和MySQL来创建一个语音视频聊天...

    RTMFP 协议文档(rfc7016)

    RTMFP 协议文档(rfc7016)

Global site tag (gtag.js) - Google Analytics