P2P流媒体开源项目介绍
1.PeerCast成立于2002年,是第一个开源P2P流媒体项目。 PeerCast以树结构组织节点,每个通道是树,实时源是根节点,父节点只向子节点提供数据。 由于距离根节点越远,传输延迟越大,因此树的深度需要尽可能短,但节点的宽度受到有限的上行带宽的限制。
2.tribler于2008年启动的项目既可以下载BT,也可以视频点播和现场直播。 最大的特点是完全中心化的设计,将传统的Tracker Server工作分散在各个节点上。 开发语言是Python。
3.Goal比特
2008年开始。 谷歌公司推出的开源P2P流媒体直播系统。 采用网格结构,节点间传输采用TCP协议。
将节点分为以下三类:
-广播节点:仅向超级节点提供数据
-超级节点:负责将数据分发到一般节点-一般节点:从P2P网络下载和上传数据
4. PeerStreamer
2009年开始。 是欧洲NAPA WINE P2P-TV项目的开源流媒体引擎。 支持视频点播和直播。 有高效的P2P算法,对网络适应性强,能够在不同的网络情况下实现较好的播放效果。 当然,代码比较庞大和复杂。 主要特点如下:
-几乎支持所有媒体格式
-可配置的分块算法
-可配置的网络拓扑
-支持多个流协议(推送/抽取/协商)。
-可配置的数据块/节点策略
-可配置的数据块/节点策略
支持APP应用层流量优化(ALTO )
5. Myseelite
2007年开始。 是Mysee公司曾经开源的P2P流媒体项目。 目标是设计支持大规模同步发布的视频广播系统。 使用acewx小部件的跨平台开发组件。 节点间传输采用TCP协议。 (不支持内部网传输。 子系统包含以下部分:
- Capture Server:获取实时流。 可以从Windows Media Server、Helix Server获取节目流。 支持mmsh、mmst和rtsp
- Super Peer:接收从捕获服务器传输的流,并将数据作为P2P网络的源节点提供给客户端。
- Tracker Server:向客户端提供请求数据所在的Super Peer地址以及所有相关的客户端节点信息。 - Client:从Super Peer和其他客户端节点获取活动流。 然后提供给GUI进行播放
6.P2P中心
2008年国内团队发起的开源项目。 支持多种形式的视频点播。 节点间传输采用UDP,可以有效地穿越防火墙。 用C开发。 架构比较简单,P2P系统可以分为以下三个部分。
-跟踪器服务器:
负责通道信息的维护、节点传输、节点传输状态的监控等工作。
-订单客户端节目分发客户端:
发布本地视频信息并将视频内容通过P2P网络分发到其他观看客户端。
-p2p服务接收客户端:
在本地构建http服务器,当有来自第三方播放器(vlc、realplayer等)的再生请求时,通过p2p网络取得再生数据,从http服务器传送到播放器。