6個P2P流媒體開源項目介紹
P2P流媒體開源項目介紹
1. PeerCast
2002年成立,最早的開源P2P流媒體項目。PeerCast把節點按樹結構組織起來, 每個頻道都是一個樹, 直播源是根節點,父節點只給子節點提供數據。節點離根節點越遠,傳輸時延就越大,所以樹的深度應該盡可能短,但節點有限的上行帶寬限制了節點的寬度。
2. Tribler
2008年開始的項目,既能實現BT下載,還能播放視頻的點播和直播。最大的特點是完全去中心化的設計,把傳統的Tracker Server的工作分散了每個節點中去。開發語言是Python。
3. GoalBit
2008年開始。GoalbitSolution公司推出的開源P2P流媒體直播系統。采用網狀結構,節點間傳輸采用TCP協議(基於UPNP)。
- 廣播節點:只提供數據給超級節點
- 超級節點:負責把數據分發給普通節點
-
4. PeerStreamer
2009年開始。是歐洲NAPA WINE P2P-TV項目的開源流媒體引擎。 支持視頻的點播和直播。有高效的P2P算法, 對網絡的適應性好, 針對不同網絡情況都能實現較好的播放效果。當然,代碼比較龐大和復雜。主要特點如下:
- 支持幾乎所有媒體格式
- 可配置的組塊算法
- 可配置的網絡拓撲結構
- 支持多種流媒體協議(推模式/拉模式/協商)
- 可配置的數據塊/節點策略
- 可配置的數據塊/節點策略
- 支持ALTO(應用層流量優化)
5.
2007年開始。 是Mysee公司曾經開源過的P2P流媒體項目。設計目標是支持大規模並發的視頻直播系統。采用ACE+wxWidget的跨平臺開發組件。節點間傳輸采用TCP協議(不支持雙內網傳輸)。 子系統包括以下幾個部分:
- Super Peer: 接收Capture Server傳輸來的流,作為P2P網絡的源節點,為Client提供數據。
- Tracker Server: 為Client提供請求數據所在的Super Peer地址及相關的所有Client節點信息。
-
6. P2Pcenter
2008年一個國內團隊發起的開源項目。支持各種格式的視頻點播。節點間傳輸采用UDP,能有效穿越防火墻。用C++開發。架構相對簡單,P2P系統分以下三部分:
負責維護頻道信息,以及節點轉發,以及節點傳輸狀態監控等工作。
- OrderClient節目發布客戶端:
發布本地視頻信息, 把視頻內容通過P2P網絡分發到其他觀看客戶端。
- P2PService 接收客戶端:
在本地構建了http服務器, 當第三方播放器(vlc, realplayer等)發起播放請求時, 通過p2p網絡獲取播放數據, 由http服務器傳輸給播放器。
6個P2P流媒體開源項目介紹