【P2P】【转载】P2P流媒体开源项目介绍[通俗易懂]

大神的整理P2P流媒体开源项目介绍前言:最近在做一个网站,发现p2p流媒体技术对于解决高流量高带宽问题真的很不错。据说现在一些视频和直播公司在研究p2p+cdn,证明了p2p永不过时。先记录先来,有时间慢慢研究PeerCast2002年成立,最早的开源P2P流媒体项目。PeerCast把节点按树结构组织起来,每个频道都是一个树,直播源是根节点,父节点只给子节点提供数据。节点离根节点越远,传输时延就越大,所以树的深度应该尽可能短,但节点有限的上行带宽限制了节点的宽度。Tribler..

大家好,又见面了,我是你们的朋友全栈君。

P2P流媒体开源项目介绍

前言:
最近在做一个网站,发现p2p流媒体技术对于解决高流量高带宽问题真的很不错。
据说现在一些视频和直播公司在研究p2p+cdn,证明了p2p永不过时。
先记录先来,有时间慢慢研究

PeerCast

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

Tribler

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

GoalBit

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

PeerStreamer

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

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播放

P2Pcenter

2008年一个国内团队发起的开源项目。支持各种格式的视频点播。节点间传输采用UDP,能有效穿越防火墙。用C++开发。架构相对简单,P2P系统分以下三部分:
Tracker Server:
负责维护频道信息,以及节点转发,以及节点传输状态监控等工作。
OrderClient节目发布客户端:
发布本地视频信息, 把视频内容通过P2P网络分发到其他观看客户端。
P2PService 接收客户端:
在本地构建了http服务器, 当第三方播放器(vlc, realplayer等)发起播放请求时, 通过p2p网络获取播放数据, 由http服务器传输给播放器。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127854.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 5个常用的MySQL数据库管理工具_sql数据库管理工具

    5个常用的MySQL数据库管理工具_sql数据库管理工具工欲善其事,必先利其器。几乎每个开发人员都有最钟爱的MySQL管理工具,它帮助开发人员在许多方面支持包括PostgreSQL,MySQL,SQLite,Redis,MongoDB等在内的多种数据库;提供各种最新的特性,包括触发器、事件、视图、存储过程和外键,支持导入、数据备份、对象结构等多种功能。这篇文章收集了15款最佳的MySQL管理工具和应用软件,帮助你轻松快速完成工作。您可能感兴…

    2022年8月23日
    26
  • jvm内存参数图解,Xmn,Xms,Xmx,XX

    Java中堆是JVM所管理的最大的一块内存空间,主要用于存放各种类的实例对象和数组,如下图所示:在Java中,堆被划分成两个不同的区域:年轻代、老年代。年轻代(Young)又被划分为三个区域:Eden、S0、S1。这样划分的目的是为了使JVM能够更好的管理堆内存中的对象,包括内存的分派以及回收。 堆是GC收集垃圾的主要区域。GC分为两种:MinorGC、FullGC。1.年轻代…

    2022年4月9日
    66
  • java中打印数组的几种方法

    java中打印数组的几种方法做小练习的时候,经常用到数组的打印,下面总结一下。1.可以使用工具类ArraysSystem.out.println(Arrays.toString(arr));2.用比较原始的for循环for(inti=0;iSystem.out.println(i);}3.用增强for循环for(inteach:arr){System.out.println

    2022年5月22日
    44
  • 运算放大器 之 概述

    运算放大器 之 概述转载来源:[维基百科]《运算放大器》运算放大器(英语:OperationalAmplifier,简称OP、OPA、op-amp、运放)是一种直流耦合,差模(差动模式)输入、通常为单端输出(Differential-in,single-endedoutput)的高增益(gain)电压放大器。在这种配置下,运算放大器能产生一个比输入端电势差大数十万倍的输出电势(对地而言)。因为…

    2022年5月24日
    83
  • tomcat日志设置与详解

    tomcat日志设置与详解1   Tomcat日志概述Tomcat日志信息分为两类:一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。2   Tomcat日志配置2.1&nb…

    2022年6月20日
    116
  • 走近webpack(3)–图片的处理[通俗易懂]

    上一章,咱们学了如何用webpack来打包css,压缩js等。这一篇文章咱们来学习一下如何用webpack来处理图片。废话不多说,咱们开始吧。首先,咱们随便找一张你喜欢的图片放到src/images

    2022年3月25日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号