專利名稱:一種基于BitTorrent的客戶端及其視頻點播方法
技術(shù)領(lǐng)域:
本發(fā)明涉及流媒體技術(shù)領(lǐng)域,尤其是涉及一種基于BitTorrent的P2P點播系統(tǒng)和方法。
背景技術(shù):
利用P2P技術(shù)實現(xiàn)大規(guī)模的點播和直播服務(wù)基本涵蓋了 P2P視頻應(yīng)用最主流的兩 個方向,它們分別面向著不同的市場和受眾群。然而用戶的需求是多方面的,因此這兩 個方向其實都有著很大的市場空間。由于P2P點播比P2P直播在用戶自由度以及視頻資 源的可選擇方面顯著加強,因此從某種層面上說點播實現(xiàn)的難度更大一些。
現(xiàn)在諸多傳統(tǒng)的p2p視頻開發(fā)商也都推出了各自的點播服務(wù),pplive, ppstream,迅雷看看,qqlive等,但是由于點播當中的高度交互性需求,使得實現(xiàn)的復雜 程度較高。
經(jīng)過幾年的發(fā)展^tTorrent協(xié)議在世界各地愛好者的努力下逐步完善,它的優(yōu)勢 是如果有多個下載者并發(fā)的下載同一個文件,那么每個下載者也同時為其它下載者上傳 文件,這樣,文件源可以支持大量的用戶進行下載,而只帶來適當?shù)呢撦d的增長。這是 因為大量的負載被均衡到整個系統(tǒng)中,所以提供源文件的機器的負載只有少量增長。發(fā)明內(nèi)容
本發(fā)明是鑒于上述技術(shù)問題而產(chǎn)生的。本發(fā)明的一個目的是提出一種基于 BitTorrent的客戶端及其視頻點播方法。
在一個方面中,根據(jù)本發(fā)明的基于BitTorrent的P2P客戶端包括會話管理模 塊,用于對點擊鏈接的頻道信息中的torrent文件進行解碼并在網(wǎng)絡(luò)中搜尋擁有該torrent 文件內(nèi)容的連接對象;內(nèi)容獲取模塊,用于與擁有torrent文件內(nèi)容的連接對象相連并獲 取數(shù)據(jù)內(nèi)容;以及播放模塊用于播放下載就緒的內(nèi)容。
在這個方面中,其中會話管理模塊進一步包括解碼單元,用于對torrent文件 進行解碼以獲得torrent內(nèi)容,其中該torrent內(nèi)容包括η個文件塊;文件管理單元,用于 根據(jù)所述η個文件塊來劃分相應(yīng)視頻大小的鏡像空間并對應(yīng)編號;以及啟動下載單元, 用于執(zhí)行各個文件塊的啟動下載。
在這個方面中,其中內(nèi)容獲取模塊進一步包括Iibtorrent節(jié)點選擇接口,用于 篩選擁有各個文件塊的連接對象;Iibtorrent的上傳下載接口,用于從連接對象獲取相應(yīng) 的數(shù)據(jù)塊;以及填充單元,用于將獲取的數(shù)據(jù)塊填充到在相應(yīng)編號的鏡像空間上。
在這個方面中,其中連接對象是SP和/或其他客戶端。
在另一個方面中,根據(jù)本發(fā)明的基于BitTorrent的客戶端視頻點播方法包括步 驟Α、對點擊鏈接的頻道信息中的torrent文件進行解碼并在網(wǎng)絡(luò)中搜尋擁有該torrent文 件內(nèi)容的連接對象;B、與擁有torrent文件內(nèi)容的連接對象相連并獲取頻道內(nèi)容;以及 C、播放下載就緒的內(nèi)容。
在這個方面中,其中步驟A進一步包括步驟Al、解碼單元對torrent文件進行 解碼以獲得torrent內(nèi)容,其中該torrent內(nèi)容包括η個文件塊;Α2、文件管理單元根據(jù)所 述η個文件塊來劃分相應(yīng)視頻大小的鏡像空間并對應(yīng)編號;以及A3、啟動下載單元執(zhí)行 各個文件塊的啟動下載。
在這個方面中,其中步驟B進一步包括步驟Bi、Iibtorrent節(jié)點選擇接口篩選 擁有各個文件塊的連接對象;Β2、Iibtorrent的上傳下載接口從連接對象獲取相應(yīng)的數(shù)據(jù) 塊;以及Β3、填充單元將獲取的數(shù)據(jù)塊填充到在相應(yīng)編號的鏡像空間上。
在這個方面中,其中連接對象是SP和/或其他客戶端。
本發(fā)明基于成熟的bittorrent協(xié)議,能夠迅速搭建起性能優(yōu)異的整個J^p平臺,而 不需要考慮到底層的數(shù)據(jù)傳輸細節(jié),并且相對公開的bittorrent協(xié)議及用戶基數(shù)能夠提高 用戶體驗。
結(jié)合隨后的附圖,從下面的詳細說明中可顯而易見的得出本發(fā)明的上述及其他 目的、特征及優(yōu)點。在附圖中
圖1示出了根據(jù)本發(fā)明的基于BitTorrent的客戶端所應(yīng)用的P2P系統(tǒng)的示意圖2示出了根據(jù)本發(fā)明的基于BitTorrent的客戶端的詳細方框圖3示出了根據(jù)本發(fā)明的基于BitTorrent的客戶端的子方框圖4示出了根據(jù)本發(fā)明的基于BitTorrent的客戶端的另一子詳細方框圖5示出了根據(jù)本發(fā)明的基于BitTorrent的客戶端視頻點播方法的流程圖6示出了根據(jù)本發(fā)明的基于BitTorrent的客戶端視頻點播方法的子流程圖7示出了 torrent文件內(nèi)容的示例;
圖8示出了根據(jù)本發(fā)明的基于^tTorrent的客戶端視頻點播方法的另一子流程 圖。
具體實施方式
為了更全面地理解本發(fā)明及其優(yōu)點,下面結(jié)合附圖及具體實施例對本發(fā)明做進 一步詳細地說明。
首先,參考圖1,對根據(jù)本發(fā)明的基于^tTorrent的客戶端所應(yīng)用的P2P系統(tǒng)進 行詳細的說明。
如圖1所示,該系統(tǒng)包括客戶端(TelePlayer)、控制中心(Control Center)服務(wù) 器、多個TS (Tracker)服務(wù)器、以及多個SP服務(wù)器。
客戶端用于輸入頻道信息,從相對空閑的SP服務(wù)器或者其他客戶端獲取片源播 放。隨后對此進行詳細地說明。
控制中心服務(wù)器用于根據(jù)客戶端輸入的頻道信息和記載在數(shù)據(jù)庫中的各個TS的 負載信息,向客戶端分配相對閑置的TS服務(wù)器,從而使得系統(tǒng)能夠支持多Tracker服務(wù) 器,不會因為系統(tǒng)的用戶擴張而引起Tracker服務(wù)器的瓶頸問題。
多個TS服務(wù)器中的相對閑置的TS服務(wù)器用于根據(jù)從客戶端發(fā)送而來的頻道信 息,查找擁有該節(jié)目且處于相對空閑的SP服務(wù)器,并將SP服務(wù)器列表返回給客戶端。此外,在TS服務(wù)器的負載發(fā)生變化時要向控制中心服務(wù)器匯報自己的負載信息,并以此 作為分配Tracker服務(wù)器的依據(jù)。
多個SP服務(wù)器中的相對空閑的SP服務(wù)器用于向相連的客戶端提供片源。
下面,參考圖2,對根據(jù)本發(fā)明的基于^tTorrent的客戶端進行更詳細地說明。
如圖2所示,根據(jù)本發(fā)明的基于BitTorrent的客戶端包括會話管理模塊、內(nèi)容獲 取模塊、以及播放模塊。
會話管理模塊用于對點擊鏈接的頻道信息中的torrent文件進行解碼并在整個p2p 網(wǎng)絡(luò)中搜尋擁有torrent文件內(nèi)容的連接對象。其中該連接對象是SP和/或其它客戶端。
具體地說,如圖3所示,會話管理模塊包括解碼模塊、文件管理模塊、啟動 下載模塊。
解碼單元對torrent文件進行解碼以獲得torrent內(nèi)容,其中該torrent內(nèi)容包括η個文件塊。此外,優(yōu)選地,將torrent內(nèi)容按序排列到命令執(zhí)行隊列中。
文件管理單元根據(jù)各個文件塊信息劃分相應(yīng)視頻大小的鏡像空間并對應(yīng)編號。
啟動下載單元執(zhí)行各個文件塊的啟動下載。
內(nèi)容獲取模塊與擁有torrent文件的連接對象相連,并獲取頻道內(nèi)容。
具體地說,如圖4所示,內(nèi)容獲取模塊包括
Iibtorrent節(jié)點選擇接口用于篩選擁有該區(qū)塊的連接對象。
Iibtorrent的上傳下載接口用于從連接對象獲取相應(yīng)的數(shù)據(jù)塊;
填充單元用于將獲取的數(shù)據(jù)塊填充到相應(yīng)編號的鏡像空間上。
播放模塊用于播放下載就緒的內(nèi)容。
接下來,結(jié)合2-4,并且參考圖5,對根據(jù)本發(fā)明的基于^tTorrent的客戶端視頻 點播流程進行詳細地說明。應(yīng)該注意的是客戶端既可以從SP服務(wù)器獲取數(shù)據(jù),也可以從 其它客戶端獲取數(shù)據(jù)。
如圖5所示,該方法包括步驟
步驟A:通過點擊鏈接獲得點播頻道信息。其中鏈接例如為http://ip/X.torrent id = M&&genre = MTV&&content。頻道信息為torrent格式,例如上述鏈接示例中的id =M&&genre = MTV&&content即為頻道信息,并且其中x.torrent文件存儲在相應(yīng)SP服 務(wù)器中,ip是存儲x.torrent文件的SP服務(wù)器的地址。
步驟B 會話管理模塊對頻道信息中的torrent文件進行解碼并在整個網(wǎng)絡(luò)中搜 尋擁有torrent文件內(nèi)容的連接對象。其中該連接對象是SP和/或其它客戶端。
具體地說,如圖6所示,該步驟進一步包括
步驟B1 解碼單元對torrent文件進行解碼以獲得torrent內(nèi)容,其中該torrent內(nèi)容包括η個文件塊。此外,優(yōu)選地,將torrent內(nèi)容按序排列到命令執(zhí)行隊列中。
具體地說,根據(jù)點播頻道信息中的ip (存儲x.torrent文件的SP服務(wù)器的地址)獲 得torrent文件,對該torrent文件進行解碼以獲得torrent文件內(nèi)容,并將其排列到命令執(zhí) 行隊列中。
圖7給出了 torrent文件內(nèi)容的示例。如圖7所示,該torrent文件內(nèi)容包括hacker信息、發(fā)布者信息、以及hifo結(jié)構(gòu),其中bifo結(jié)構(gòu)進一步包括塊信息和文件塊1、文件塊 2、......、文件塊η。其中各文件塊結(jié)構(gòu)包含如下子項Piece length (塊長度)、Name (文件名)、Length(文件大小)、以及Md5,其中Piece length是整數(shù),用于表示每塊的大小。Name是字符串,用于表示文件名。Length是整數(shù),用于表示文件大小。Md5用 于表示文件的md5值,其包含32個字符。
當然,torrent文件的格式并不局限于此,而是可根據(jù)需要而采用任何適當?shù)母袷健?br>
步驟B2 文件管理單元根據(jù)各個文件塊信息劃分相應(yīng)視頻大小的鏡像空間并編 號,如下所示。
權(quán)利要求
1.一種基于BitTorrent的客戶端包括會話管理模塊,用于對點擊鏈接的頻道信息中的torrent文件進行解碼并在網(wǎng)絡(luò)中搜 尋擁有該torrent文件內(nèi)容的連接對象;內(nèi)容獲取模塊,用于與擁有torrent文件內(nèi)容的連接對象相連并獲取數(shù)據(jù)內(nèi)容;以及 播放模塊用于播放下載就緒的內(nèi)容。
2.根據(jù)權(quán)利要求1的客戶端,其中會話管理模塊進一步包括解碼單元,用于對torrent文件進行解碼以獲得torrent內(nèi)容,其中該torrent內(nèi)容包括 η個文件塊;文件管理單元,用于根據(jù)所述η個文件塊來劃分相應(yīng)視頻大小的鏡像空間并對應(yīng)編號;啟動下載單元,用于執(zhí)行各個文件塊的啟動下載。
3.根據(jù)權(quán)利要求2的客戶端,其中內(nèi)容獲取模塊進一步包括 Iibtorrent節(jié)點選擇接口,用于篩選擁有各個文件塊的連接對象; Kbtorrent的上傳下載接口,用于從連接對象獲取相應(yīng)的數(shù)據(jù)塊; 填充單元,用于將獲取的數(shù)據(jù)塊填充到在相應(yīng)編號的鏡像空間上。
4.根據(jù)權(quán)利要求1的客戶端,其中連接對象是SP和/或其他客戶端。
5.一種基于BitTorrent的客戶端視頻點播方法包括步驟Α、對點擊鏈接的頻道信息中的torrent文件進行解碼并在網(wǎng)絡(luò)中搜尋擁有該torrent文 件內(nèi)容的連接對象;B、與擁有torrent文件內(nèi)容的連接對象相連并獲取頻道內(nèi)容;C、播放下載就緒的內(nèi)容。
6.根據(jù)權(quán)利要求5的方法,其中步驟A進一步包括步驟Al、解碼單元對torrent文件進行解碼以獲得torrent內(nèi)容,其中該torrent內(nèi)容包括η個文件塊;Α2、文件管理單元根據(jù)所述η個文件塊來劃分相應(yīng)視頻大小的鏡像空間并對應(yīng)編號;A3、啟動下載單元執(zhí)行各個文件塊的啟動下載。
7.根據(jù)權(quán)利要求6的方法,其中步驟B進一步包括步驟 Bi、Iibtorrent節(jié)點選擇接口篩選擁有各個文件塊的連接對象; Β2、Iibtorrent的上傳下載接口從連接對象獲取相應(yīng)的數(shù)據(jù)塊; Β3、填充單元將獲取的數(shù)據(jù)塊填充到在相應(yīng)編號的鏡像空間上。
8.根據(jù)權(quán)利要求5的方法,其中連接對象是SP和/或其他客戶端。
全文摘要
一種基于BitTorrent的客戶端及其視頻點播方法,其中該客戶端包括會話管理模塊,用于對點擊鏈接的頻道信息中的torrent文件進行解碼并在網(wǎng)絡(luò)中搜尋擁有該torrent文件內(nèi)容的連接對象;內(nèi)容獲取模塊,用于與擁有torrent文件內(nèi)容的連接對象相連并獲取數(shù)據(jù)內(nèi)容;以及播放模塊用于播放下載就緒的內(nèi)容。本發(fā)明基于成熟的bittorrent協(xié)議,能夠迅速搭建起性能優(yōu)異的整個平臺,而不需要考慮到底層的數(shù)據(jù)傳輸細節(jié),并且相對公開的bittorrent協(xié)議及用戶基數(shù)能夠提高用戶體驗。
文檔編號G06F17/30GK102025752SQ20091010228
公開日2011年4月20日 申請日期2009年9月10日 優(yōu)先權(quán)日2009年9月10日
發(fā)明者葉挺群, 袁江, 邢小良, 黃煒 申請人:浙江省公眾信息產(chǎn)業(yè)有限公司