开源p2p直播平台

来源:互联网 发布:linux smart 硬盘读写 编辑:程序博客网 时间:2024/04/29 08:41

转自:http://blog.csdn.net/lius1984/article/details/8944136

P2P流媒体开源项目介绍

1. PeerCast

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

2. Tribler

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

3. GoalBit

2008年开始。GoalbitSolution公司推出的开源P2P流媒体直播系统。采用网状结构,节点间传输采用TCP协议(基于UPNP)。
把节点划分为以下三种:
-广播节点:只提供数据给超级节点
-超级节点:负责把数据分发给普通节点

- 普通节点:  从P2P网络下载和上传数据

4. PeerStreamer

2009年开始。是欧洲NAPA WINE P2P-TV项目的开源流媒体引擎。 支持视频的点播和直播。有高效的P2P算法, 对网络的适应性好, 针对不同网络情况都能实现较好的播放效果。当然,代码比较庞大和复杂。主要特点如下:
-支持几乎所有媒体格式
-可配置的组块算法
-可配置的网络拓扑结构
-支持多种流媒体协议(推模式/拉模式/协商)
-可配置的数据块/节点策略
-可配置的数据块/节点策略
-支持ALTO(应用层流量优化)

5.  Myseelite

2007年开始。 是Mysee公司曾经开源过的P2P流媒体项目。设计目标是支持大规模并发的视频直播系统。采用ACE+wxWidget的跨平台开发组件。节点间传输采用TCP协议(不支持双内网传输)。 子系统包括以下几个部分:
-Capture Server: 获取直播流。可以从Windows Media Server, Helix Server获取节目流。支持mmsh,mmst, rtsp
-Super Peer: 接收Capture Server传输来的流,作为P2P网络的源节点,为Client提供数据。
-Tracker Server: 为Client提供请求数据所在的Super Peer地址及相关的所有Client节点信息。

- Client: 从Super Peer和其他Client节点获取直播流。然后提供给GUI播放

6. P2Pcenter

2008年一个国内团队发起的开源项目。支持各种格式的视频点播。节点间传输采用UDP,能有效穿越防火墙。用C++开发。架构相对简单,P2P系统分以下三部分:
-Tracker Server:
负责维护频道信息,以及节点转发,以及节点传输状态监控等工作。
-OrderClient节目发布客户端:
发布本地视频信息, 把视频内容通过P2P网络分发到其他观看客户端。
-P2PService 接收客户端:

在本地构建了http服务器, 当第三方播放器(vlc, realplayer等)发起播放请求时, 通过p2p网络获取播放数据, 由http服务器传输给播放器。


---------------------------------------

1、Azureus(http://azureus.sourceforge.net):这是java版的betorrent,最新版本2.4.0.2。从网上直接下载的源代码是没法构建的,所用的库没有在包里面。可以到:http://azureus.cvs.sourceforge.net/azureus/这个地方去找。对我们研究的意义主要在于参考其算法。

2、Shareaza(http://www.shareaza.com/):这是C++版的,他最大特点就是集成了对多个流行P2P文件格式的支持,有了它可以下载电驴、.torrent等,目前版本是2.2.1.0。对: EDonkey2000, Gnutella, BitTorrent 及 Gnutella2 (G2) 都支持,界面也很酷,支持换肤。大家可以直接下载源代码构建(ide环境是.net)。

3、icecast(http://www.icecast.org):给人感觉比较简单,主要实现了对mp3的网络播放,可用于构建网络电台。

4、P2P Networking Theory(http://cis.poly.edu/~ross/p2pTheory/):这是几个大学的一些P2P领域的学者一起搞得,叫:P2P Networking理论,我觉得最大的价值是,在上面可以找到一些论文。

5、theora(http://www.theora.org/):就目前了解来看,他是干了这么一件事情:“Free Video Compression ”即:免费的视频压缩算法,可以下载库文件(c写的),目前支持:“A year after getting import and export support for theora, Cinelerra now has distributed theora encoding support, which makes theora content creation much faster.”即:对分布式编码有支持,这是很有意义的。

6、PeerCast(http://www.peercast.org/):“PeerCast is a simple, free way to listen to radio and watch video on the Internet. It uses P2P technology to let anyone become a broadcaster without the costs of traditional streaming. This means you get to hear and watch stations not normally found on commercially funded sites. ”简单的讲,就是一个p2p的可以用于网络电台的流媒体软件。能够穿越防火墙、Nat等。源代码获取,需要使用“Subversion”(这个东西设计出 来是替换cvs的,确实不错,有空研究下,可以到“http://www.subversion.org.cn/svnbook/”看使用说明),地 址:svn://peercast.org/peercast/tags(好像要选择下,不然会搞下来好几个版本的代码),也可以找我要。

7、FreeCast(http://www.freecast.org/): “FreeCast is a Java application which allows peer-to-peer streaming. It makes possible a stream broadcast to a large number of listeners from a simple DSL connection.”java编写的P2P在流媒体的应用,下载:http://download.freecast.org/,有源代码,可以研究研究。

8、ActlabTV(http://actlab.tv/):这个页面有介绍http://actlab.tv/technology.htm

9、TrevBus(http://www.trevbus.org): 是作者在做工程学位论文时开发的,“Trevbus will enable content streamers and others to pool their unused bandwidth so content streams can be sent to a large audience”。软件需求说明:http://www.trevbus.org/SRS.html,软件设计文档:http://www.trevbus.org/SDD.html,理论基础?:http://www.trevbus.org/thesis.html

10、Stream2Stream(http://s2s.sourceforge.net/):java 语言开发的P2P流媒体系统,“Stream-2-Stream implements multicast+, a next generation streaming protocol. Multicast+ is more efficient and requires less bandwidth than direct streaming (e.g. shoutcast/icecast). Stream-2-Stream (abbreviated "s2s" or "S2S") stations have no user limit; stations can be set up without paying a fortune for bandwidth. Stream-2-Stream saves bandwidth by passing streams from one peer to another through multicast and unicast p2p, rather than everyone getting a stream from one central server (Shoutcast/Icecast). ”更多:http://s2s.sourceforge.net/about.php

11、P2Pradio(http://p2p-radio.sourceforge.net):java 语言开发的P2P音视频服务和客户端系统,“P2P-Radio can distribute audio streams in the MP3 and Ogg Vorbis formats and video streams in the NSV format over the Internet. This is done in a peer-to-peer way. The broadcaster doesn’t need to send the stream to every single listener, because the listeners distribute it among themselves.”,好像用于学习很不错,好像是学生的一个学期论文。详细介绍:http://p2p-radio.sourceforge.net/about.php.en

12、Nodezilla(http://evl.sourceforge.net:这是一个由java编写的安全的、分布的并且高容错的路由系统。他的主要目标就是,为分布式应用(聊天、高清晰视频多播、文件共享、安全文件存储)提供底层。目前构建的应用有:Anonymous File sharing, Hierarchical Multimedia Streaming, Digital photo sharing with selected friends, Distributed BitTorrentStore Database, User driven storage/retrieval of objects. 详细请见:http://evl.sourceforge.net/whatis.html#whatis

13.P2P点播直播开源项目:P2PCenter
使用平台:
客户端:Windows 平台
服务器:Windows & Linux

主要功能:
 Peer
间传输数据采用UDP,能有效的穿透防火墙,在进一步的版本中将实现TCP及UPNP穿透
 能够实现流媒体的点播及直播,还能共享其他文件,文件类型不限。
 流媒体文件支持广泛,如rmvb,wmv,flv,mp4等

源代码下载论坛:http://opensource.kan8888.com

sourceforge.net 下载地址:
website:http://p2pmedia.svn.sourceforge.net
SVN 地址:https://p2pmedia.svn.sourceforge.net/svnroot/p2pmedia

最新源代码打包下载:http://opensource.kan8888.com/soft/P2PCenter_last.rar
  ASP网站系统:
  徐小均(QQ:275992019)
  Bittorrent模块:  Lism(QQ:32437503[Johnny]),


参考文献
1
几个p2p开源项目. http://blog.donews.com/itluck/archive/2007/01/04/1108141.aspx
0 0