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服務器傳輸給播放器。