專(zhuān)利名稱(chēng):一種流媒體數(shù)據(jù)共享方法、共享系統(tǒng)和流媒體節(jié)點(diǎn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種P2P技術(shù),尤其涉及一種流媒體數(shù)據(jù)共享方法、共享系統(tǒng)和流媒體節(jié)點(diǎn)。
背景技術(shù):
P2P技術(shù)屬于覆蓋層網(wǎng)絡(luò)(Overlay Network)的范疇,是相對(duì)于客戶(hù)機(jī)/服務(wù)器(C/S)模式來(lái)說(shuō)的一種網(wǎng)絡(luò)信息交換方式。P2P文件共享和P2P流媒體在線播放是P2P的兩個(gè)非常重要的應(yīng)用。 P2P文件共享最典型的應(yīng)用是BitTorrent。 BitTorrent中的節(jié)點(diǎn)在共享一個(gè)文件時(shí),首先將文件分片并將文件和分片信息保存在一個(gè)Torrent類(lèi)型文件中,這種節(jié)點(diǎn)被形象地稱(chēng)作"種子"節(jié)點(diǎn)。其他用戶(hù)在下載該文件時(shí)根據(jù)Torrent文件的信息,將文件的部分分片下載下來(lái),然后在其他下載該文件的節(jié)點(diǎn)之間共享自己已經(jīng)下載的分片,互通有無(wú),從而實(shí)現(xiàn)文件的快速分發(fā)。由于每個(gè)節(jié)點(diǎn)在下載文件的同時(shí)也在為其他用戶(hù)上傳該文件的分片,所以整體來(lái)看,不會(huì)隨著用戶(hù)數(shù)的增加而降低下載速度,反而下載的人越多,速度越快。
流媒體是指在數(shù)據(jù)網(wǎng)絡(luò)上按時(shí)間先后次序傳輸和播放的連續(xù)音頻/視頻數(shù)據(jù)流。傳統(tǒng)流媒體服務(wù)都是C/S模式,即用戶(hù)從流媒體服務(wù)器點(diǎn)擊觀看節(jié)目,然后流媒體服務(wù)器以單播方式把媒體流推送給用戶(hù)。這種方式在流媒體業(yè)務(wù)用戶(hù)量增大之后就會(huì)顯現(xiàn)出流媒體服務(wù)器帶寬占用大和流媒體負(fù)載均衡要求高的問(wèn)題。 流媒體業(yè)務(wù)在到達(dá)一定階段后,就需要大規(guī)模擴(kuò)充帶寬、服務(wù)器以滿足需求,這些舉措都會(huì)大大增加開(kāi)銷(xiāo)。它無(wú)法從根本上解決流媒體業(yè)務(wù)發(fā)展所遭遇到的瓶頸問(wèn)題。在這種背景下,P2P技術(shù)走入人們的視野,開(kāi)始在流媒體領(lǐng)域引入P2P技術(shù)。P2P流媒體技術(shù)和傳統(tǒng)流媒體不同之處在于用戶(hù)在播放過(guò)程中不僅僅可以從流媒體服務(wù)器取得媒體流,還可以從其它用戶(hù)那里取得媒體流,與此同時(shí),用戶(hù)還會(huì)向其它用戶(hù)提供自己擁有的、別人需要的媒體流。 P2P流媒體的應(yīng)用可以分為流媒體直播和流媒體點(diǎn)播。流媒體直播中,觀看同一個(gè)節(jié)目的用戶(hù);流媒體點(diǎn)播系統(tǒng)中,用戶(hù)隨時(shí)可以啟動(dòng)觀看,也可以拖動(dòng)后定位到流媒體節(jié)目的任意位置,因此觀看的節(jié)目時(shí)間和進(jìn)度不一致,導(dǎo)致節(jié)點(diǎn)間能共享數(shù)據(jù)的概率遠(yuǎn)遠(yuǎn)不如P2P直播。 從系統(tǒng)架構(gòu)上來(lái)看,如圖1所示,P2P流媒體的下載和在線播放的系統(tǒng)包括發(fā)布服務(wù)器如網(wǎng)站(使用瀏覽器訪問(wèn))、或者特定的服務(wù)器(通過(guò)終端軟件訪問(wèn)),在這里用戶(hù)能瀏覽或找到想下載的文件、或者想看的流媒體節(jié)目;索引(Tracker)服務(wù)器維護(hù)有哪些節(jié)點(diǎn)正在下載文件、或者觀看流媒體節(jié)目;節(jié)點(diǎn)可以向其發(fā)出查詢(xún)請(qǐng)求,由其返回一批節(jié)點(diǎn),實(shí)現(xiàn)后續(xù)的節(jié)點(diǎn)間數(shù)據(jù)分享。 現(xiàn)有基于P2P技術(shù)的流媒體點(diǎn)播系統(tǒng)因?yàn)辄c(diǎn)播系統(tǒng)的用戶(hù)可自由定位的特性,造成用戶(hù)觀看時(shí)間不一致,觀看的節(jié)目進(jìn)度也不一致,導(dǎo)致節(jié)點(diǎn)間能共享數(shù)據(jù)的概率遠(yuǎn)遠(yuǎn)不如P2P直播,從而運(yùn)營(yíng)成本比P2P直播大得多。因此基于P2P技術(shù)的點(diǎn)播系統(tǒng)并不像P2P
4直播系統(tǒng)那樣容易擴(kuò)展。 現(xiàn)有的P2P文件下載系統(tǒng),對(duì)流媒體這類(lèi)實(shí)時(shí)數(shù)據(jù)并沒(méi)有優(yōu)化處理,其處理模式和普通文件在分片和下載方式?jīng)]有區(qū)別,通常不提供在線播放功能或者提供流暢的在線播放功能。 因此,如何解決P2P流媒體點(diǎn)播系統(tǒng)用戶(hù)間由于數(shù)據(jù)共享率低導(dǎo)致服務(wù)器帶寬成本比較大,以及P2P文件下載流媒體視頻文件時(shí)無(wú)法實(shí)時(shí)播放或者播放效果差,同時(shí)也不能為流媒體點(diǎn)播系統(tǒng)服務(wù)的缺陷成為現(xiàn)有技術(shù)中急需解決的技術(shù)問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的第一 目的在于,針對(duì)現(xiàn)有技術(shù)中P2P流媒體點(diǎn)播系統(tǒng)用戶(hù)間由于數(shù)據(jù)共享率低導(dǎo)致服務(wù)器帶寬成本比較大,以及P2P文件下載流媒體視頻文件時(shí)無(wú)法實(shí)時(shí)播放或者播放效果差,同時(shí)也不能為流媒體點(diǎn)播系統(tǒng)服務(wù)的缺陷,提供一種在下載用戶(hù)和在線播放用戶(hù)之間可以相互提供數(shù)據(jù),提高流媒體數(shù)據(jù)共享率并降低服務(wù)器帶寬成本的流媒體數(shù)據(jù)共享方法。 本發(fā)明的第二目的在于,針對(duì)現(xiàn)有技術(shù)中P2P流媒體點(diǎn)播系統(tǒng)用戶(hù)間由于數(shù)據(jù)共享率低導(dǎo)致服務(wù)器帶寬成本比較大,以及P2P文件下載流媒體視頻文件時(shí)無(wú)法實(shí)時(shí)播放或者播放效果差,同時(shí)也不能為流媒體點(diǎn)播系統(tǒng)服務(wù)的缺陷,提供一種在下載用戶(hù)和在線播放用戶(hù)之間可以相互提供數(shù)據(jù),提高流媒體數(shù)據(jù)共享率并降低服務(wù)器帶寬成本的流媒體節(jié)點(diǎn)。 本發(fā)明的第三目的在于,針對(duì)現(xiàn)有技術(shù)中P2P流媒體點(diǎn)播系統(tǒng)用戶(hù)間由于數(shù)據(jù)共享率低導(dǎo)致服務(wù)器帶寬成本比較大,以及P2P文件下載流媒體視頻文件時(shí)無(wú)法實(shí)時(shí)播放或者播放效果差,同時(shí)也不能為流媒體點(diǎn)播系統(tǒng)服務(wù)的缺陷,提供一種在下載用戶(hù)和在線播放用戶(hù)之間可以相互提供數(shù)據(jù),提高流媒體數(shù)據(jù)共享率并降低服務(wù)器帶寬成本的流媒體數(shù)據(jù)共享系統(tǒng)。 根據(jù)本發(fā)明的第一 目的提供一種流媒體數(shù)據(jù)共享方法包括流媒體節(jié)點(diǎn)報(bào)告自身的狀態(tài)信息,并查詢(xún)其它流媒體節(jié)點(diǎn)的狀態(tài)信息;流媒體節(jié)點(diǎn)從其它流媒體節(jié)點(diǎn)下載和/或調(diào)度所述流媒體節(jié)點(diǎn)自身沒(méi)有的流媒體數(shù)據(jù)。 其中,狀態(tài)信息包括流媒體節(jié)點(diǎn)的工作模式信息、第一數(shù)據(jù)和第二數(shù)據(jù)。工作模式信息用于描述所述流媒體節(jié)點(diǎn)處于下載模式或在線播放模式;第一數(shù)據(jù)用于描述所述流媒體節(jié)點(diǎn)在下載模式時(shí)已下載及未下載的流媒體數(shù)據(jù);第二數(shù)據(jù)用于描述所述流媒體節(jié)點(diǎn)在線播放模式時(shí)已下載的流媒體數(shù)據(jù)及需要調(diào)度的流媒體數(shù)據(jù)。 優(yōu)選地,流媒體節(jié)點(diǎn)從其它流媒體節(jié)點(diǎn)下載自身沒(méi)有的流媒體數(shù)據(jù)的操作之后還包括對(duì)所述下載或調(diào)度的流媒體數(shù)據(jù)進(jìn)行校驗(yàn)。 優(yōu)選地,所述流媒體數(shù)據(jù)包括多個(gè)分片,每個(gè)分片中包含相同數(shù)量的幀。
優(yōu)選地,每個(gè)分片的數(shù)據(jù)小于或等于512Kbyte。 根據(jù)本發(fā)明的第二目的提供一種流媒體節(jié)點(diǎn)包括數(shù)據(jù)管理模塊,用于生成所述流媒體節(jié)點(diǎn)的狀態(tài)信息,并生成查詢(xún)其他流媒體節(jié)點(diǎn)的狀態(tài)查詢(xún)信息;下載調(diào)度模塊,用于當(dāng)所述流媒體節(jié)點(diǎn)的工作模式為下載時(shí),根據(jù)所述狀態(tài)信息及其他流媒體節(jié)點(diǎn)的狀態(tài)信息下載自身沒(méi)有的流媒體數(shù)據(jù);在線播放調(diào)度模塊,用于當(dāng)所述流媒體節(jié)點(diǎn)的工作模式為在線播放時(shí),根據(jù)所述狀態(tài)信息及其他流媒體節(jié)點(diǎn)的狀態(tài)信息順序調(diào)度自身沒(méi)有的流媒體數(shù) 據(jù);數(shù)據(jù)收發(fā)模塊,用于向其他流媒體節(jié)點(diǎn)發(fā)送所述狀態(tài)查詢(xún)信息,接收其他流媒體節(jié)點(diǎn)的 狀態(tài)信息,并接收/發(fā)送流媒體數(shù)據(jù)。 其中,數(shù)據(jù)管理模塊包括工作模式信息生成子模塊,用于生成所述流媒體節(jié)點(diǎn)的 工作模式信息;第一數(shù)據(jù)生成子模塊,用于生成所述第一數(shù)據(jù),所述第一數(shù)據(jù)用于描述所述 流媒體節(jié)點(diǎn)在下載模式時(shí)已下載及未下載的流媒體數(shù)據(jù);第二數(shù)據(jù)生成子模塊,用于生成 所述第二數(shù)據(jù),所述第二數(shù)據(jù)用于描述所述流媒體節(jié)點(diǎn)在線播放模式時(shí)已下載的流媒體數(shù) 據(jù)及需要調(diào)度的流媒體數(shù)據(jù)。 優(yōu)選地,數(shù)據(jù)管理模塊還包括數(shù)據(jù)更新子模塊,根據(jù)所述數(shù)據(jù)收發(fā)模塊接收的流 媒體數(shù)據(jù)對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)進(jìn)行更新。 優(yōu)選地,流媒體節(jié)點(diǎn)還包括數(shù)據(jù)校驗(yàn)?zāi)K,用于對(duì)所述數(shù)據(jù)接收模塊接收的流媒 體數(shù)據(jù)進(jìn)行校驗(yàn)。 根據(jù)本發(fā)明的第三目的提供一種流媒體數(shù)據(jù)共享系統(tǒng),包括發(fā)布服務(wù)器和多個(gè) 流媒體節(jié)點(diǎn),發(fā)布服務(wù)器,用于存儲(chǔ)流媒體數(shù)據(jù)并將所述流媒體數(shù)據(jù)發(fā)布給所述流媒體節(jié) 點(diǎn);流媒體節(jié)點(diǎn),用于報(bào)告自身的狀態(tài)信息,并查詢(xún)其它流媒體節(jié)點(diǎn)的狀態(tài)信息,從所述發(fā) 布服務(wù)器和/或其它流媒體節(jié)點(diǎn)下載或調(diào)度自身沒(méi)有的流媒體數(shù)據(jù)。 優(yōu)選地,索引服務(wù)器,用于存儲(chǔ)所有流媒體節(jié)點(diǎn)的狀態(tài)信息,接收所述流媒體節(jié)點(diǎn)
注冊(cè)的自身狀態(tài)信息,并將其他流媒體節(jié)點(diǎn)的狀態(tài)信息發(fā)送至所述流媒體節(jié)點(diǎn)。 優(yōu)選地,發(fā)布服務(wù)器包括數(shù)據(jù)分片模塊,用于按照所述流媒體數(shù)據(jù)中幀的順序?qū)?br>
所述流媒體數(shù)據(jù)進(jìn)行分片,每個(gè)流媒體數(shù)據(jù)分片中包含相同數(shù)量的幀。 本發(fā)明的流媒體數(shù)據(jù)共享方法、共享系統(tǒng)和流媒體節(jié)點(diǎn),通過(guò)報(bào)告各個(gè)流媒體節(jié) 點(diǎn)的狀態(tài)信息,流媒體節(jié)點(diǎn)可以從其他流媒體節(jié)點(diǎn)下載或調(diào)度自身所沒(méi)有的流媒體數(shù)據(jù), 使得流媒體數(shù)據(jù)可以在下載用戶(hù)和在線播放用戶(hù)之間可以相互提供,不僅提高流媒體數(shù)據(jù) 共享率,還降低服務(wù)器帶寬成本。 另外,本發(fā)明的優(yōu)選實(shí)施例通過(guò)設(shè)置下載調(diào)度模塊和實(shí)時(shí)調(diào)度模塊,分別完成分 片隨機(jī)下載和幀的在線播放順序調(diào)度,采用第一數(shù)據(jù)和第二數(shù)據(jù)來(lái)實(shí)現(xiàn)兩種工作模式的數(shù) 據(jù)共享。由于無(wú)論是實(shí)時(shí)調(diào)度的在線播放方式,還是非實(shí)時(shí)調(diào)度的下載方式,都采用基于幀 或幀分組來(lái)進(jìn)行P2P數(shù)據(jù)調(diào)度,提高數(shù)據(jù)分享的效率,從而使得下載和在線播放能很好融
圖1是現(xiàn)有技術(shù)中P2P流媒體下載/在線播放的系統(tǒng)結(jié)構(gòu)圖; 圖2是本發(fā)明第一實(shí)施例流媒體共享系統(tǒng)的結(jié)構(gòu)圖; 圖3是本發(fā)明第一實(shí)施例流媒體節(jié)點(diǎn)的具體結(jié)構(gòu)圖; 圖4是本發(fā)明第一實(shí)施例流媒體共享方法的流程圖; 圖5是本發(fā)明第一實(shí)施例流媒體數(shù)據(jù)、bitm即—a11及bitm即—sche數(shù)據(jù)結(jié)構(gòu)示意 圖; 圖6是本發(fā)明第二實(shí)施例流媒體節(jié)點(diǎn)下載過(guò)程中bitmap_all的數(shù)據(jù)結(jié)構(gòu)示意 圖7是本發(fā)明第二實(shí)施例流媒體節(jié)點(diǎn)在線播放過(guò)程中bitm即—sche的數(shù)據(jù)結(jié)構(gòu)示 意圖; 圖8是本發(fā)明第二實(shí)施例流媒體節(jié)點(diǎn)在線播放調(diào)度結(jié)束后bitmap_all的數(shù)據(jù)結(jié) 構(gòu)示意圖。
具體實(shí)施例方式
以下結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。 如圖2所示,本發(fā)明第一實(shí)施例流媒體數(shù)據(jù)共享系統(tǒng)包括發(fā)布服務(wù)器20,用于存 儲(chǔ)流媒體數(shù)據(jù);流媒體節(jié)點(diǎn)40,報(bào)告自身的信息,并查詢(xún)其它流媒體節(jié)點(diǎn)的信息,流媒體節(jié) 點(diǎn)40從發(fā)布服務(wù)器20和/或其它流媒體節(jié)點(diǎn)下載或調(diào)度自身沒(méi)有的流媒體數(shù)據(jù)。例如第 一實(shí)施例中流媒體節(jié)點(diǎn)40a報(bào)告其自身的信息,并查詢(xún)流媒體節(jié)點(diǎn)40b、40c的信息,并從流 媒體節(jié)點(diǎn)40b、40c下載或調(diào)度流媒體節(jié)點(diǎn)40a自身沒(méi)有的流媒體數(shù)據(jù)。
該流媒體數(shù)據(jù)共享系統(tǒng)還包括Tracker服務(wù)器60,存儲(chǔ)流媒體節(jié)點(diǎn)40a、40b和 40c的信息,各個(gè)流媒體節(jié)點(diǎn)在Tracker服務(wù)器60上注冊(cè)自身信息,并從Tracker服務(wù)器 60獲得其它流媒體節(jié)點(diǎn)的信息。 發(fā)布服務(wù)器20包括數(shù)據(jù)分片模塊,按照流媒體中幀的順序?qū)α髅襟w數(shù)據(jù)進(jìn)行分
片,每個(gè)流媒體數(shù)據(jù)分片中包含相同數(shù)量的幀。如圖5所示,流媒體數(shù)據(jù)中各幀的編號(hào)為1、
2、3、...n,將每三個(gè)幀分為一片,將n個(gè)幀分為N個(gè)分片。N可依據(jù)不同的比特率或者不同
格式的流媒體數(shù)據(jù)來(lái)定,通常每個(gè)分片包含幀的總長(zhǎng)度為不超過(guò)512Kbyte。對(duì)流媒體數(shù)據(jù)
進(jìn)行合適的分片可以使得下載節(jié)點(diǎn)的數(shù)據(jù)與在線播放節(jié)點(diǎn)的數(shù)據(jù)高效共享。 在流媒體數(shù)據(jù)共享的初始階段,各個(gè)流媒體節(jié)點(diǎn)首先從發(fā)布服務(wù)器獲取該流媒體
數(shù)據(jù),隨著業(yè)務(wù)的進(jìn)行,請(qǐng)求數(shù)據(jù)的流媒體節(jié)點(diǎn)越來(lái)越多,各個(gè)流媒體節(jié)點(diǎn)之間就會(huì)共享自
身已下載或調(diào)度的流媒體數(shù)據(jù),這樣就會(huì)大大節(jié)省帶寬并降低對(duì)發(fā)布服務(wù)器的規(guī)模的要求。 如圖3所示,流媒體節(jié)點(diǎn)40a包括數(shù)據(jù)收發(fā)模塊42,用于向其他流媒體節(jié)點(diǎn)發(fā)送 狀態(tài)查詢(xún)信息,接收其他流媒體節(jié)點(diǎn)的狀態(tài)信息,并接收/發(fā)送流媒體數(shù)據(jù);數(shù)據(jù)管理模塊 44,用于生成流媒體節(jié)點(diǎn)的狀態(tài)信息,并生成查詢(xún)其他流媒體節(jié)點(diǎn)的狀態(tài)查詢(xún)信息;下載調(diào) 度模塊46,用于當(dāng)流媒體節(jié)點(diǎn)的工作模式為下載時(shí),根據(jù)狀態(tài)信息及其他流媒體節(jié)點(diǎn)的狀 態(tài)信息下載自身沒(méi)有的流媒體數(shù)據(jù);在線播放調(diào)度模塊48,用于當(dāng)流媒體節(jié)點(diǎn)的工作模式 為在線播放時(shí),根據(jù)狀態(tài)信息及其他流媒體節(jié)點(diǎn)的狀態(tài)信息順序調(diào)度自身沒(méi)有的流媒體數(shù) 據(jù); 其中數(shù)據(jù)管理模塊44包括工作模式信息生成子模塊,用于生成流媒體節(jié)點(diǎn)的工 作模式信息;第一數(shù)據(jù)生成子模塊,用于生成第一數(shù)據(jù)bitm即—a11, bitm即—a11用于描述 流媒體節(jié)點(diǎn)在下載模式時(shí)已下載及未下載的流媒體數(shù)據(jù);第二數(shù)據(jù)生成子模塊,用于生成 第二數(shù)據(jù)bitm即—sche, bitm即—sche用于描述流媒體節(jié)點(diǎn)在線播放模式時(shí)已下載的流媒 體數(shù)據(jù)及需要調(diào)度的流媒體數(shù)據(jù);數(shù)據(jù)更新子模塊,根據(jù)數(shù)據(jù)收發(fā)模塊接收的流媒體數(shù)據(jù) 對(duì)bitmap_all禾口 bitmap—sche進(jìn)行更新。 優(yōu)選地,流媒體節(jié)點(diǎn)40a還包括數(shù)據(jù)校驗(yàn)?zāi)K,用于對(duì)數(shù)據(jù)接收模塊42接收的流 媒體數(shù)據(jù)進(jìn)行校驗(yàn)。
7
其他流媒體節(jié)點(diǎn)40b、40c的結(jié)構(gòu)均與流媒體節(jié)點(diǎn)40a相同,在此不再贅述。 如圖4所示,第一實(shí)施例中,流媒體數(shù)據(jù)共享方法包括如下步驟 步驟72,流媒體節(jié)點(diǎn)40a報(bào)告自身的狀態(tài)信息,并查詢(xún)流媒體節(jié)點(diǎn)40b、40c的狀態(tài)
信息;步驟74,流媒體節(jié)點(diǎn)40a從流媒體節(jié)點(diǎn)40b、40c下載和/或調(diào)度自身沒(méi)有的流媒體數(shù)據(jù)。 步驟72中流媒體節(jié)點(diǎn)40a報(bào)告的狀態(tài)信息的包括工作模式信息,用于描述流媒 體節(jié)點(diǎn)處于下載模式或在線播放模式;第一數(shù)據(jù)bitm即—all,用于描述流媒體節(jié)點(diǎn)40a在 下載模式時(shí)已下載及未下載的流媒體數(shù)據(jù);第二數(shù)據(jù)bitm即—sche,用于描述流媒體節(jié)點(diǎn) 40a在線播放模式時(shí)已下載的流媒體數(shù)據(jù)及需要調(diào)度的流媒體數(shù)據(jù)。 如圖5所示,第一實(shí)施例中,bitm即—a11為一組二進(jìn)制碼,每個(gè)比特的數(shù)據(jù)表示流 媒體節(jié)點(diǎn)40a自身是否擁有一個(gè)分片的有無(wú),當(dāng)?shù)谝槐忍財(cái)?shù)據(jù)為l,則該流媒體節(jié)點(diǎn)有該第 一分片,第二比特?cái)?shù)據(jù)為O,則該流媒體節(jié)點(diǎn)沒(méi)有第二分片。 如圖5所示,第一實(shí)施例中,bitm即—sche用于描述該流媒體節(jié)點(diǎn)40a在在線播放 時(shí)調(diào)度數(shù)據(jù)的情況。bitm即—sche包括起始幀序號(hào)start、當(dāng)前幀序號(hào)current、bitm即數(shù) 據(jù)、末尾幀序號(hào)end。其中,從start到curent之間的幀均為該流媒體節(jié)點(diǎn)40a已有的幀, 即已下載到本地,存儲(chǔ)在內(nèi)存或磁盤(pán)的幀。bitmap數(shù)據(jù)表示從current之后該流媒體節(jié)點(diǎn) 40a自身所擁有的幀的情況,bitmap為一組二進(jìn)制碼,每個(gè)比特的數(shù)據(jù)表示一個(gè)幀的有無(wú)。 末尾幀序號(hào)end表示bitmap中最后一個(gè)已有的幀的序號(hào)。 隨著流媒體數(shù)據(jù)的調(diào)度和接收,current、 end、 bitmap和end都會(huì)相應(yīng)進(jìn)行更新。 當(dāng)start和current之間包含一個(gè)分片的所有幀時(shí),將更新bitmap_all數(shù)據(jù)中對(duì)應(yīng)該分片 的的比特?cái)?shù)據(jù)為l,表示自身已有相應(yīng)的分片。 本發(fā)明第二實(shí)施例,流媒體數(shù)據(jù)共享的具體工作過(guò)程如下 (1)流媒體節(jié)點(diǎn)40a先從發(fā)布服務(wù)器20下載流媒體數(shù)據(jù)相關(guān)的種子文件,與現(xiàn)有 技術(shù)中的BT下載類(lèi)似,該種子文件包括該流媒體數(shù)據(jù)的以下信息文件特征值,可以用安 全哈希算法1 (Secure HashAlgorithml,簡(jiǎn)稱(chēng)SHA-1)算法得到的所有分片的摘要;總的幀
數(shù)量;每分片包含的幀數(shù)量;每個(gè)分片的校驗(yàn)碼,可以用SHA-l算法得到某個(gè)分片的摘要;
Tracker服務(wù)器地址。 (2)流媒體節(jié)點(diǎn)40a將自身注冊(cè)到Tracker服務(wù)器60上,并從Tracker服務(wù)器60 獲得其它流媒體節(jié)點(diǎn),包括下載中的和在線播放中的節(jié)點(diǎn)的信息。第二實(shí)施例中,流媒體節(jié) 點(diǎn)40a中數(shù)據(jù)管理模塊42生成bitm即—a11和bitm即—sche,流媒體節(jié)點(diǎn)40a初始為下載 模式,bitimp_all_al為0。流媒體節(jié)點(diǎn)40a向Tracker服務(wù)器60報(bào)告自身的工作模式、 bitm即—a11和bitm即—sche,并從Tracker服務(wù)器60獲得流媒體節(jié)點(diǎn)40b、40c的工作模式、 bitmap_all禾口 bitmap—sche。 (3)流媒體節(jié)點(diǎn)40a從Tracker服務(wù)器60獲得流媒體節(jié)點(diǎn)40b的bitimp_all_b 圖6所示,流媒體節(jié)點(diǎn)40b為下載模式。流媒體節(jié)點(diǎn)40a中的下載調(diào)度模塊46從流媒體節(jié) 點(diǎn)40b下載序號(hào)為3、7和13的分片。 (4)流媒體節(jié)點(diǎn)40a中數(shù)據(jù)收發(fā)模塊42接收到流媒體節(jié)點(diǎn)40b返回的分片數(shù)據(jù), 當(dāng)分片下載完整時(shí),根據(jù)種子文件中該分片校驗(yàn)碼校驗(yàn)數(shù)據(jù)是否接收正確。當(dāng)驗(yàn)證正確時(shí), 繼續(xù)下載其它分片。流媒體節(jié)點(diǎn)40a下載完成三個(gè)分片如序號(hào)為3、7和13的分片后,如圖6所示,更新流媒體節(jié)點(diǎn)40a的bitm即—all—a2的第3、7和13個(gè)比特的數(shù)據(jù)變?yōu)?。
(5)此時(shí)流媒體節(jié)點(diǎn)40a切換到在線播放模式,下載調(diào)度模塊46停止下載數(shù)據(jù)的 請(qǐng)求。在線播放調(diào)度模塊48根據(jù)用戶(hù)觀看的起始位置(根據(jù)播放器所提供的時(shí)間戳、偏移 量等信息)獲得在線播放的起始幀序號(hào)。例如,此時(shí)起始幀序號(hào)start為650,而每個(gè)分片 包含100個(gè)幀,則該起始幀位于序號(hào)為7的分片中,第7分片的數(shù)據(jù)已經(jīng)下載完成,可以重 復(fù)加以利用。此時(shí),如圖7所示,流媒體節(jié)點(diǎn)40a的bitmap_SChe_al起始幀序號(hào)start為 650 ;當(dāng)前幀序號(hào)current為700 ;bitmap包括從第700個(gè)幀之后各個(gè)幀的有無(wú);末尾幀序 號(hào)end為1300。 (6)流媒體節(jié)點(diǎn)40a的在線播放調(diào)度模塊48從第701號(hào)幀開(kāi)始向其他流媒體節(jié)點(diǎn) 調(diào)度數(shù)據(jù)。流媒體節(jié)點(diǎn)40b擁有第8分片的數(shù)據(jù),因此,在線播放調(diào)度模塊48可以繼續(xù)向 流媒體節(jié)點(diǎn)40b請(qǐng)求調(diào)用第8分片的數(shù)據(jù)。 如果此時(shí)流媒體節(jié)點(diǎn)40c處于在線播放模式,如圖7所示,流媒體節(jié)點(diǎn)40c的 bitmap_sche_c起始幀序號(hào)start為1000 ;當(dāng)前幀序號(hào)current為20000 ;末尾幀序號(hào)end 為20280。流媒體節(jié)點(diǎn)40c擁有從1000到20000之間的所有幀的數(shù)據(jù)。因此,流媒體節(jié)點(diǎn) 40c擁有流媒體節(jié)點(diǎn)40a需要實(shí)時(shí)順序調(diào)度的bitmap范圍內(nèi)的數(shù)據(jù),流媒體節(jié)點(diǎn)40a也可 以向流媒體節(jié)點(diǎn)40c調(diào)度數(shù)據(jù)。 (7)在線播放一段時(shí)間后,在線播放調(diào)度模塊48下載了一批數(shù)據(jù)后,當(dāng)發(fā)現(xiàn)某分 片包含的所有幀數(shù)據(jù)都已經(jīng)接收完成,則將數(shù)據(jù)保存到文件中,并更新bitmap—sche,如圖 7所示,更新后的bitnrap_sche_a2起始幀序號(hào)start為630 ;當(dāng)前幀序號(hào)current為1050 ; 末尾幀序號(hào)end為1500。 (8)當(dāng)流媒體節(jié)點(diǎn)40a再次切換到下載模式時(shí),在線播放調(diào)度模塊48停止調(diào)度數(shù) 據(jù),序號(hào)為8和9的分片下載完成,數(shù)據(jù)管理模塊44更新Bitmap_all_a3,如圖8所示,第8 和9比特的數(shù)據(jù)變?yōu)?。同時(shí),下載調(diào)度模塊46啟動(dòng),重復(fù)執(zhí)行第(3)步操作。
對(duì)于下載模式的流媒體節(jié)點(diǎn),當(dāng)所有幀都下載完之后,將所有流媒體數(shù)據(jù)重新按 照源格式組裝成相應(yīng)格式的文件。如果下載的是asf格式,則組裝成asf格式的文件,如果 下載的是rmvb格式則組裝成rmvb格式的文件。 與現(xiàn)有技術(shù)相比,本發(fā)明的流媒體節(jié)點(diǎn)包含兩種數(shù)據(jù)調(diào)度模塊下載調(diào)度模塊 和實(shí)時(shí)調(diào)度模塊,分別完成分片隨機(jī)下載和幀的在線播放順序調(diào)度,采用Bitmap—all和 Bitmap—sche兩種數(shù)據(jù)來(lái)實(shí)現(xiàn)兩種工作模式的數(shù)據(jù)共享。同時(shí)當(dāng)有其他流媒體節(jié)點(diǎn)來(lái)請(qǐng)求 數(shù)據(jù)時(shí),可以?xún)?yōu)先給在線播放的流媒體節(jié)點(diǎn)提供數(shù)據(jù)上傳服務(wù)。 本發(fā)明提出的流媒體數(shù)據(jù)共享方法和系統(tǒng),在對(duì)同一流媒體文件提供P2P下載和 P2P在線播放時(shí),可以隨意切換下載和在線播放模式。同時(shí),下載用戶(hù)的數(shù)據(jù)也能提供給在 線播放用戶(hù),在線播放用戶(hù)的數(shù)據(jù)也可以提供給下載用戶(hù),從而提高用戶(hù)間的數(shù)據(jù)分享率, 減少服務(wù)器帶寬負(fù)載。并且,由于無(wú)論是實(shí)時(shí)調(diào)度的在線播放方式,還是非實(shí)時(shí)調(diào)度的下載 方式,都采用基于幀或幀分組來(lái)進(jìn)行P2P數(shù)據(jù)調(diào)度,提高數(shù)據(jù)分享的效率,從而使得下載和 在線播放能很好融合。 應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明而非限制,本發(fā)明也并不僅限于上述 舉例,一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利 要求范圍中。
權(quán)利要求
一種流媒體數(shù)據(jù)共享方法,其特征在于,包括流媒體節(jié)點(diǎn)報(bào)告自身的狀態(tài)信息,并查詢(xún)其它流媒體節(jié)點(diǎn)的狀態(tài)信息;所述流媒體節(jié)點(diǎn)從其它流媒體節(jié)點(diǎn)下載和/或調(diào)度所述流媒體節(jié)點(diǎn)自身沒(méi)有的流媒體數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的流媒體數(shù)據(jù)共享方法,其特征在于,所述狀態(tài)信息包括所述 流媒體節(jié)點(diǎn)的工作模式信息、第一數(shù)據(jù)和第二數(shù)據(jù),所述工作模式信息用于描述所述流媒體節(jié)點(diǎn)處于下載模式或在線播放模式; 所述第一數(shù)據(jù)用于描述所述流媒體節(jié)點(diǎn)在下載模式時(shí)已下載及未下載的流媒體數(shù)據(jù);所述第二數(shù)據(jù)用于描述所述流媒體節(jié)點(diǎn)在線播放模式時(shí)已下載的流媒體數(shù)據(jù)及需要 調(diào)度的流媒體數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的流媒體數(shù)據(jù)共享方法,其特征在于,所述流媒體節(jié)點(diǎn)從其它 流媒體節(jié)點(diǎn)下載自身沒(méi)有的流媒體數(shù)據(jù)的操作之后還包括對(duì)所述下載或調(diào)度的流媒體數(shù)據(jù)進(jìn)行校驗(yàn)。
4. 根據(jù)權(quán)利要求2所述的流媒體數(shù)據(jù)共享方法,其特征在于,還包括所述流媒體節(jié)點(diǎn) 根據(jù)下載或調(diào)度的流媒體數(shù)據(jù)對(duì)所述第一數(shù)據(jù)和第二數(shù)據(jù)進(jìn)行更新。
5. 根據(jù)權(quán)利要求1至4中任意一項(xiàng)所述的流媒體數(shù)據(jù)共享方法,其特征在于,所述流媒 體數(shù)據(jù)包括多個(gè)分片,每個(gè)分片中包含相同數(shù)量的幀。
6. 根據(jù)權(quán)利要求5所述的流媒體數(shù)據(jù)共享方法,其特征在于,所述每個(gè)分片的數(shù)據(jù)小 于或等于512Kbyte。
7. —種流媒體節(jié)點(diǎn),其特征在于,包括數(shù)據(jù)管理模塊,用于生成所述流媒體節(jié)點(diǎn)的狀態(tài)信息,并生成查詢(xún)其他流媒體節(jié)點(diǎn)的 狀態(tài)查詢(xún)信息;下載調(diào)度模塊,用于當(dāng)所述流媒體節(jié)點(diǎn)的工作模式為下載時(shí),根據(jù)所述狀態(tài)信息及其 他流媒體節(jié)點(diǎn)的狀態(tài)信息下載自身沒(méi)有的流媒體數(shù)據(jù);在線播放調(diào)度模塊,用于當(dāng)所述流媒體節(jié)點(diǎn)的工作模式為在線播放時(shí),根據(jù)所述狀態(tài) 信息及其他流媒體節(jié)點(diǎn)的狀態(tài)信息順序調(diào)度自身沒(méi)有的流媒體數(shù)據(jù);數(shù)據(jù)收發(fā)模塊,用于向其他流媒體節(jié)點(diǎn)發(fā)送所述狀態(tài)查詢(xún)信息,接收其他流媒體節(jié)點(diǎn) 的狀態(tài)信息,并接收/發(fā)送流媒體數(shù)據(jù)。
8. 根據(jù)權(quán)利要求7所述的流媒體節(jié)點(diǎn),其特征在于,所述數(shù)據(jù)管理模塊包括 工作模式信息生成子模塊,用于生成所述流媒體節(jié)點(diǎn)的工作模式信息; 第一數(shù)據(jù)生成子模塊,用于生成所述第一數(shù)據(jù),所述第一數(shù)據(jù)用于描述所述流媒體節(jié)點(diǎn)在下載模式時(shí)已下載及未下載的流媒體數(shù)據(jù);第二數(shù)據(jù)生成子模塊,用于生成所述第二數(shù)據(jù),所述第二數(shù)據(jù)用于描述所述流媒體節(jié) 點(diǎn)在線播放模式時(shí)已下載的流媒體數(shù)據(jù)及需要調(diào)度的流媒體數(shù)據(jù)。
9. 根據(jù)權(quán)利要求8所述的流媒體節(jié)點(diǎn),其特征在于,所述數(shù)據(jù)管理模塊還包括 數(shù)據(jù)更新子模塊,根據(jù)所述數(shù)據(jù)收發(fā)模塊接收的流媒體數(shù)據(jù)對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)進(jìn)行更新。
10. 根據(jù)權(quán)利要求7至9中任意一項(xiàng)所述的流媒體節(jié)點(diǎn),其特征在于,還包括數(shù)據(jù)校驗(yàn)?zāi)K,用于對(duì)所述數(shù)據(jù)接收模塊接收的流媒體數(shù)據(jù)進(jìn)行校驗(yàn)。
11. 一種流媒體數(shù)據(jù)共享系統(tǒng),其特征在于,包括發(fā)布服務(wù)器和多個(gè)流媒體節(jié)點(diǎn), 所述發(fā)布服務(wù)器,用于存儲(chǔ)流媒體數(shù)據(jù)并將所述流媒體數(shù)據(jù)發(fā)布給所述流媒體節(jié)點(diǎn); 所述流媒體節(jié)點(diǎn),用于報(bào)告自身的狀態(tài)信息,并查詢(xún)其它流媒體節(jié)點(diǎn)的狀態(tài)信息,從所述發(fā)布服務(wù)器和/或其它流媒體節(jié)點(diǎn)下載或調(diào)度自身沒(méi)有的流媒體數(shù)據(jù)。
12. 根據(jù)權(quán)利要求11所述的流媒體數(shù)據(jù)共享系統(tǒng),其特征在于,還包括 索引服務(wù)器,用于存儲(chǔ)所有流媒體節(jié)點(diǎn)的狀態(tài)信息,接收所述流媒體節(jié)點(diǎn)注冊(cè)的自身狀態(tài)信息,并將其他流媒體節(jié)點(diǎn)的狀態(tài)信息發(fā)送至所述流媒體節(jié)點(diǎn)。
13. 根據(jù)權(quán)利要求12所述的流媒體數(shù)據(jù)共享系統(tǒng),其特征在于,所述發(fā)布服務(wù)器包括數(shù)據(jù)分片模塊,用于按照所述流媒體數(shù)據(jù)中幀的順序?qū)λ隽髅襟w數(shù)據(jù)進(jìn)行分片,每個(gè)流 媒體數(shù)據(jù)分片中包含相同數(shù)量的幀。
14. 根據(jù)權(quán)利要求11至13中任意一項(xiàng)所述的流媒體數(shù)據(jù)共享系統(tǒng),其特征在于,所述 流媒體節(jié)點(diǎn)包括數(shù)據(jù)管理模塊,用于生成所述流媒體節(jié)點(diǎn)的狀態(tài)信息,并生成查詢(xún)其他流媒體節(jié)點(diǎn)的 狀態(tài)查詢(xún)信息;下載調(diào)度模塊,用于當(dāng)所述流媒體節(jié)點(diǎn)的工作模式為下載時(shí),根據(jù)所述狀態(tài)信息及其 他流媒體節(jié)點(diǎn)的狀態(tài)信息下載自身沒(méi)有的流媒體數(shù)據(jù);在線播放調(diào)度模塊,用于當(dāng)所述流媒體節(jié)點(diǎn)的工作模式為在線播放時(shí),根據(jù)所述狀態(tài) 信息及其他流媒體節(jié)點(diǎn)的狀態(tài)信息順序調(diào)度自身沒(méi)有的流媒體數(shù)據(jù);數(shù)據(jù)收發(fā)模塊,用于向其他流媒體節(jié)點(diǎn)發(fā)送所述狀態(tài)查詢(xún)信息,接收其他流媒體節(jié)點(diǎn) 的狀態(tài)信息,并接收/發(fā)送流媒體數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種流媒體數(shù)據(jù)共享方法、共享系統(tǒng)和流媒體節(jié)點(diǎn)。其中流媒體數(shù)據(jù)共享方法包括流媒體節(jié)點(diǎn)報(bào)告自身的狀態(tài)信息,并查詢(xún)其它流媒體節(jié)點(diǎn)的狀態(tài)信息;流媒體節(jié)點(diǎn)從其它流媒體節(jié)點(diǎn)下載和/或調(diào)度流媒體節(jié)點(diǎn)自身沒(méi)有的流媒體數(shù)據(jù)。本發(fā)明的流媒體數(shù)據(jù)共享方法、共享系統(tǒng)和流媒體節(jié)點(diǎn),通過(guò)流媒體節(jié)點(diǎn)之間的數(shù)據(jù)共享,使得下載用戶(hù)的數(shù)據(jù)也能提供給在線播放用戶(hù),在線播放用戶(hù)的數(shù)據(jù)也可以提供給下載用戶(hù),提高用戶(hù)間的數(shù)據(jù)分享率,減少服務(wù)器帶寬負(fù)載。
文檔編號(hào)H04L29/08GK101764831SQ200810240749
公開(kāi)日2010年6月30日 申請(qǐng)日期2008年12月24日 優(yōu)先權(quán)日2008年12月24日
發(fā)明者吳亦川, 周乃寶, 廖洪鑾, 張?jiān)骑w, 彭晉 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)公司