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. 开源分布式数据库中间件MyCat源码分析系列
  2. [LeetCode]444. Sequence Reconstruction
  3. Android之登录那点事
  4. Office 365 SharePoint Online 学习链接
  5. BZOJ1025: [SCOI2009]游戏
  6. Glossary
  7. VS2015编译错误:调用的目标发生了异常--->此实现不是Windows平台FLPS验证的加密算法的一部分。
  8. IT人才什么最重要
  9. information_schema.partitions 学习
  10. 关于“#ifdef __cplusplus”
  11. D7升级时候发现许多System函数和网络函数只有Byte版本的,需要注意
  12. TCP/IP的经典网络编程
  13. echarts学习总结(一):图表溢出窗口,图表数据窗口显示不全
  14. php代码审计一些笔记
  15. php7安装php-redis扩展
  16. bootstrap 解决弹出窗口(modal) 常见问题
  17. python 中文报错
  18. Confluence 6 PostgreSQL 测试你的数据库连接
  19. Python加密保护解决方案
  20. hadoop2.4集群的搭建

热门文章

  1. mac地址绑定
  2. 配置过滤器filter对跨站脚本攻击XSS实现拦截
  3. 监控httpd的shell脚本
  4. Js版json解析
  5. Tensorflow 初级教程(二)
  6. JVM性能优化, Part 5 Java的伸缩性
  7. Iptalbes练习题(三)
  8. linux 中sort命令 按照指定列排序
  9. LeetCode:完全平方数【279】【DP】
  10. 每天一个Linux命令(29)du命令