【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Error filterStart错误问题的解决「建议收藏」

    Error filterStart错误问题的解决「建议收藏」现象:我在tomcat5.5下发布工程portal后,出现如下错误。log4j:WARNNoappenderscouldbefoundforlogger(org.apache.commons.digester.Digester.sax).log4j:WARNPleaseinitializethelog4jsystemproperly.log4j:WARNNoappe

    2022年7月11日
    21
  • JAVA异常处理实战心得

    JAVA异常处理实战心得1.异常分类异常Exception是Java中非常常用的功能,它可以简化代码,并且增强代码的安全性。尤其是在各种服务相关的代码中,可能正常业务逻辑的代码量很少,大部分都是各种trycatch处理各种异常的代码,因为实际中异常情况很多,为了保证服务的健壮与稳定性,要尽可能考虑与处理掉各种异常情况。所以在java中遇到大段大段的trycatch也就不足为奇。(图片来自网络)从上面的图可以看…

    2022年5月19日
    36
  • leetcode 两数相加_leetcode数组交集

    leetcode 两数相加_leetcode数组交集原题链接给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9

    2022年8月8日
    9
  • jenkins allure_jenkins参数传递shell

    jenkins allure_jenkins参数传递shell前言jenkins集成了allure插件,安装插件后运行pytest+allure的脚本即可在jenkins上查看allure报告了。allure安装在运行代码的服务器本机,我这里是用的dock

    2022年7月31日
    6
  • String类–深入理解

    String类–深入理解

    2021年8月28日
    50
  • linux tail 与 grep

    linux tail 与 greptail-f./a.txttail-f./a.txt./b.txttail-f./*.txttail-f./*.txt|grep–line-buffer’java’find-name’*.txt’-print0|xargs-0-t tail-f|grep–line-buffer’java’tail-10./a.txttail+10./…

    2022年6月4日
    50

发表回复

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

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