P2P流媒体开源项目汇总与简述

1. PeerCast项目

2002年成立,最早的开源P2P流媒体项目。PeerCast把节点按树结构组织起来,每个频道都是一颗树,直播源是根节点,父节点只给子节点提供数据。节点离根节点越远,传输时延迟就越大,所以数的深度应该尽可能短,但节点有限的上行带宽限制了节点的带宽。

2. Tribler项目

2008年开始的项目,既能实现BT下载,还能播放视频的点播与直播。最大的特点是完全去中心化的设计,把传统的Tracker Server的工作分散到每个节点中去。开发语言是python。

3. GoaltBit项目

2008年开始。GoalbitSolution公司推出的开源P2P流媒体直播系统。采用网状结构,节点间传输采用TCP协议(基于UPNP)。

把节点划分成以下三种:

  1. 广播节点:只提供数据给超级节点
  2. 超级节点:负责把数据分发给普通节点
  3. 普通节点:从P2P网络下载和上传数据

4. PeerStreamer项目

2009年开始。由欧洲NAPA WINE P2P-TV项目的开源流媒体引擎。支持视频的点播与直播。有高效的P2P算法,对网络适应性好,针对不同的网络情况能实现较好的播放效果。当然代码比较庞大和复杂。主要特性点如下:

  1. 支持几乎所有流媒体格式
  2. 可配置的组块算法
  3. 可配置的网络拓扑结构
  4. 支持多种流媒体协议(推模式/拉模式/协商)
  5. 可配置的数据块/节点策略
  6. 支持ALTO(应用层流量优化)

5. Myseelite项目

2007年开始。是Mysee公司曾经开源过的P2P流媒体项目。设计目标是支持大规模并发的视频直播系统。采用ACE+wxWidget的跨平台组件。节点间传输采用TCP协议(不支持双内网传输)。子系统包括以下几个部分:

  1. Capture Server:获取直播流。可以从Windows Media Server,Helix Server获取节目流。支持mmsh、mmst、rtsp
  2. Super Peer:接收Capture Server传输来的流,作为P2P网络的源节点,为Client提供数据
  3. Tracker Serevr:为Client提供请求数据所在的Super Peer地址及相关的所有Client节点信息
  4. Client:从Super Peer和其他Client节点获取直播流。然后提供GUI播放

6. P2PCenter项目

2008年一个国内团队发起的开源项目。支持各种格式的视频点播。节点间传输采用UDP,能有效穿透防火墙。用C++开发。架构相对简单,P2P系统分为以下三个部分:

  1. Tracker Server:负责维护频道信息、节点转发、以及节点传输状态监控等工作
  2. OrderClient节点发布客户端:发布本地视屏信息,把视频内容通过P2P网络分发到其他观看客户端
  3. P2PService接收客户端:在本地构建了http服务器,当第三方播放器(vlc、realplayer等)发起播放请求时,通过P2P网络获取播放数据,由http服务器传输给播放器。

猜你喜欢

转载自blog.csdn.net/paradox_1_0/article/details/106439737
P2P