欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

云流媒體數(shù)據(jù)傳輸方法及系統(tǒng)的制作方法

文檔序號(hào):7710219閱讀:564來源:國知局
專利名稱:云流媒體數(shù)據(jù)傳輸方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通訊領(lǐng)域,具體而言,涉及一種云流媒體數(shù)據(jù)傳輸方法及系統(tǒng)。
背景技術(shù)
流媒體是指采用流式傳輸?shù)姆绞皆诨ヂ?lián)網(wǎng)上實(shí)時(shí)播放的媒體,包括在線的視頻直播和點(diǎn)播業(yè)務(wù)。隨著視頻會(huì)議、遠(yuǎn)程教學(xué)、在線游戲和娛樂等應(yīng)用的日益廣泛,流媒體傳輸技術(shù)經(jīng)歷了從IP組播、CDN內(nèi)容分發(fā)技術(shù)到P2P技術(shù)的發(fā)展,然而現(xiàn)有流媒體技術(shù)仍然無法完全滿足高性能、大規(guī)模的系統(tǒng)運(yùn)營需求。由于用戶規(guī)模的劇增,傳統(tǒng)基于客戶/服務(wù)器 (C/S)模式或內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)模式存在服務(wù)器性能的瓶頸,無法滿足擴(kuò)展性的要求;同時(shí),流媒體業(yè)務(wù)中媒體內(nèi)容即時(shí)性獲取的要求,不同與傳統(tǒng)的P2P文件共享系統(tǒng),使得完全依靠P2P模式時(shí)間換取空間模式同樣不再可行。為了解決上述問題,現(xiàn)有技術(shù)通過結(jié)合傳統(tǒng)的CDN和P2P流媒體技術(shù),能夠滿足大規(guī)模并發(fā)用戶的流媒體分發(fā)要求,且可靠性高和可擴(kuò)展性強(qiáng),上述傳輸技術(shù)是“以數(shù)據(jù)為中心”的流媒體數(shù)據(jù)傳輸方法,但當(dāng)系統(tǒng)中出現(xiàn)網(wǎng)絡(luò)抖動(dòng)或單節(jié)點(diǎn)失效等故障的時(shí)候,客戶端獲取流媒體數(shù)據(jù)的過程將不可避免出現(xiàn)中斷或不流暢的問題。目前云計(jì)算模式的出現(xiàn)為構(gòu)建可管理、可擴(kuò)展和有質(zhì)量保障的流媒體應(yīng)用創(chuàng)造了新的機(jī)遇。狹義云計(jì)算是指IT基礎(chǔ)設(shè)施的交付和使用模式,將動(dòng)態(tài)伸縮的虛擬化資源通過互聯(lián)網(wǎng)以服務(wù)的方式提供給用戶。廣義云計(jì)算是指服務(wù)的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的服務(wù)。云計(jì)算流媒體(簡稱云流媒體),指通過網(wǎng)絡(luò)以按需、 易擴(kuò)展的方式向不同終端用戶提供有質(zhì)量保障流媒體服務(wù)。作為支撐云流媒體業(yè)務(wù)的關(guān)鍵技術(shù),流媒體數(shù)據(jù)傳輸將直接影響服務(wù)平臺(tái)的穩(wěn)定性、播放的連續(xù)性和用戶的服務(wù)質(zhì)量。傳統(tǒng)流媒體傳輸技術(shù)由于缺乏對(duì)大規(guī)模的、異構(gòu)的用戶的充分考慮,無法很好地實(shí)現(xiàn)數(shù)據(jù)傳輸及時(shí)性和穩(wěn)定性的保障,故而無法滿足云流媒體業(yè)務(wù)中不同終端和不同質(zhì)量要求用戶按需分發(fā)的需求。目前針對(duì)相關(guān)技術(shù)的流媒體傳輸方法無法保障流媒體數(shù)據(jù)傳輸?shù)募皶r(shí)性和穩(wěn)定性的問題,目前尚未提出有效的解決方案。

發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種云流媒體數(shù)據(jù)傳輸方法及系統(tǒng),以解決上述相關(guān)技術(shù)的流媒體傳輸方法無法保障流媒體數(shù)據(jù)傳輸?shù)募皶r(shí)性和穩(wěn)定性的問題。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種云流媒體數(shù)據(jù)傳輸方法, 該流媒體數(shù)據(jù)傳輸方法包括客戶端發(fā)起對(duì)流媒體數(shù)據(jù)的訪問;中心目錄服務(wù)器根據(jù)條件參數(shù)向客戶端返回一個(gè)或多個(gè)內(nèi)容源終端的地址,并將地址加入伙伴終端列表;客戶端與伙伴終端列表中的內(nèi)容源終端建立連接,并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端的連接方式; 客戶端從內(nèi)容源終端上獲取流媒體數(shù)據(jù)。進(jìn)一步地,中心目錄服務(wù)器根據(jù)條件參數(shù)向客戶端返回一個(gè)或多個(gè)內(nèi)容源終端的地址包括中心目錄服務(wù)器接收點(diǎn)播或直播內(nèi)容請求;中心目錄服務(wù)器將滿足條件參數(shù)的一個(gè)或多個(gè)內(nèi)容源終端的地址返回至客戶端;客戶端接收返回的內(nèi)容源終端的地址;其中,條件參數(shù)包括內(nèi)容源終端的位置、運(yùn)行狀態(tài)、優(yōu)先級(jí)以及提供的流媒體數(shù)據(jù)的內(nèi)容。進(jìn)一步地,中心目錄服務(wù)器根據(jù)條件參數(shù)來返回一個(gè)或多個(gè)內(nèi)容源終端的地址包括中心目錄服務(wù)器按照內(nèi)容源終端的優(yōu)先級(jí)依次返回內(nèi)容源終端的地址,內(nèi)容源終端包括以下任意一個(gè)或多個(gè)設(shè)備普通用戶終端、優(yōu)選用戶終端以及服務(wù)器終端,其中,內(nèi)容源終端的優(yōu)先級(jí)通過以下公式獲得modescore = K/(2+rtti/500)*(minrtti/ rtti)2*(recVprecent)2*R,其中,K為基礎(chǔ)因子常數(shù),rtti為終端節(jié)點(diǎn)間的動(dòng)態(tài)網(wǎng)絡(luò)延時(shí), minrtti為終端節(jié)點(diǎn)間的靜態(tài)最佳網(wǎng)絡(luò)延時(shí),recvpercent為終端節(jié)點(diǎn)間的數(shù)據(jù)成功接收率,R為當(dāng)前碼流量化值。進(jìn)一步地,客戶端與伙伴終端列表中的內(nèi)容源終端建立連接,并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端的連接方式包括在客戶端的網(wǎng)絡(luò)帶寬低于第一預(yù)定值時(shí),客戶端選擇與伙伴終端列表中的服務(wù)器終端建立單向直接接入式的連接;在客戶端的網(wǎng)絡(luò)帶寬高于第一預(yù)定值時(shí),客戶端選擇與伙伴終端列表中的服務(wù)器終端、優(yōu)選用戶終端以及普通用戶終端建立連接,其中,客戶端以單向直接接入的方式與服務(wù)器終端連接,以雙向共享接入的方式與優(yōu)選用戶終端或者普通用戶終端建立連接。進(jìn)一步地,客戶端選擇與伙伴終端列表中的服務(wù)器終端建立單向直接接入式的連接包括判斷客戶端與服務(wù)器終端的訪問時(shí)延是否大于或等于預(yù)設(shè)的靜態(tài)訪問時(shí)延,其中, 在大于等于靜態(tài)訪問時(shí)延的情況下,客戶端服務(wù)器終端建立基于UDP協(xié)議訪問的連接;在小于靜態(tài)訪問時(shí)延的情況下,客戶端服務(wù)器終端建立基于TCP協(xié)議訪問的連接。進(jìn)一步地,服務(wù)器終端之間通過TCP協(xié)議建立共享互聯(lián),優(yōu)選用戶終端與普通用戶終端之間以及普通用戶終端彼此之間通過TCP協(xié)議建立共享互聯(lián),共享互聯(lián)用于獲取 P2P內(nèi)容共享。進(jìn)一步地,客戶端從內(nèi)容源終端上獲取流媒體數(shù)據(jù)包括客戶端按照先通過UDP 協(xié)議讀取普通用戶終端,再通過UDP協(xié)議讀取優(yōu)選用戶終端,最后通過TCP協(xié)議讀取服務(wù)器終端的優(yōu)先級(jí)順序,來獲取流媒體數(shù)據(jù);將流媒體數(shù)據(jù)保存至客戶端的緩存。進(jìn)一步地,在將流媒體數(shù)據(jù)保存至客戶端的緩存之后,方法還包括客戶端播放并共享緩存中的流媒體數(shù)據(jù),其中,當(dāng)客戶端緩存中的流媒體數(shù)據(jù)大小低于第二預(yù)定值時(shí),客戶端選擇向服務(wù)器終端讀取流媒體數(shù)據(jù);當(dāng)客戶端緩存中的流媒體數(shù)據(jù)大小處于第二預(yù)定值和第三預(yù)定值之間時(shí),客戶端選擇向服務(wù)器終端、優(yōu)選用戶終端以及普通用戶終端中的任意一個(gè)終端讀取流媒體數(shù)據(jù);當(dāng)客戶端緩存中的流媒體數(shù)據(jù)大小超過第三預(yù)定值時(shí),客戶端選擇向普通客戶端讀取流媒體數(shù)據(jù)。進(jìn)一步地,讀取流媒體數(shù)據(jù)的步驟包括預(yù)先將流媒體數(shù)據(jù)按照播放順序劃分成數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包括一個(gè)或多個(gè)數(shù)據(jù)包;客戶端從內(nèi)容源終端上按照隨機(jī)順序獲取一個(gè)或多個(gè)數(shù)據(jù)包,并將流媒體數(shù)據(jù)以數(shù)據(jù)包為單位進(jìn)行共享;客戶端根據(jù)各個(gè)數(shù)據(jù)包的索引編號(hào)將獲得的一個(gè)或多個(gè)數(shù)據(jù)包進(jìn)行排序組合,以獲取完整的流媒體數(shù)據(jù)。進(jìn)一步地,在客戶端從內(nèi)容源終端上獲取流媒體數(shù)據(jù)之前,方法還包括內(nèi)容源終端向滿足以下任意一個(gè)或多個(gè)條件的客戶端優(yōu)先上傳流媒體數(shù)據(jù),條件包括客戶端需要上傳的流媒體數(shù)據(jù)最多;客戶端與內(nèi)容源終端處于相同的網(wǎng)段;客戶端為新加入的終端節(jié)點(diǎn)ο進(jìn)一步地,在客戶端根據(jù)條件參數(shù)在中心目錄服務(wù)器中獲取一個(gè)或多個(gè)內(nèi)容源終端的地址,并將地址加入客戶端的伙伴終端列表之后,方法還包括按照預(yù)定周期來定期更新伙伴終端列表,并周期性的共享伙伴終端列表中內(nèi)容源終端的終端數(shù)據(jù)。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種云流媒體數(shù)據(jù)傳輸系統(tǒng), 該流媒體數(shù)據(jù)傳輸系統(tǒng)包括中心目錄服務(wù)器,用于保存所有內(nèi)容源終端的地址以及伙伴終端列表;客戶端,用于與伙伴終端列表中的內(nèi)容源終端建立連接,以獲取流媒體數(shù)據(jù),并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端的連接方式;其中,中心目錄服務(wù)器根據(jù)條件參數(shù)向客戶端返回一個(gè)或多個(gè)內(nèi)容源終端的地址,并將地址加入伙伴終端列表。進(jìn)一步地,客戶端包括發(fā)射裝置,用于向中心目錄服務(wù)器發(fā)送點(diǎn)播或直播內(nèi)容請求;接收裝置,用于接收中心目錄服務(wù)器中滿足條件參數(shù)的一個(gè)或多個(gè)內(nèi)容源終端的地址; 其中,條件參數(shù)包括內(nèi)容源終端的位置、運(yùn)行狀態(tài)、優(yōu)先級(jí)以及提供的流媒體數(shù)據(jù)的內(nèi)容。進(jìn)一步地,中心目錄服務(wù)器包括第一處理裝置,用于按照內(nèi)容源終端的優(yōu)先級(jí)依次返回內(nèi)容源終端的地址,內(nèi)容源終端包括以下任意一個(gè)或多個(gè)設(shè)備普通用戶終端、優(yōu)選用戶終端以及服務(wù)器終端,其中,內(nèi)容源終端的優(yōu)先級(jí)通過以下公式獲得modescore = K/ (2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K 為基礎(chǔ)因子常數(shù),rtti 為終端節(jié)點(diǎn)間的動(dòng)態(tài)網(wǎng)絡(luò)延時(shí),minrtti為終端節(jié)點(diǎn)間的靜態(tài)最佳網(wǎng)絡(luò)延時(shí),recvpercent為終端節(jié)點(diǎn)間的數(shù)據(jù)成功接收率,R為當(dāng)前碼流量化值。進(jìn)一步地,客戶端還包括第二處理裝置,用于在客戶端的網(wǎng)絡(luò)帶寬低于第一預(yù)定值時(shí),客戶端選擇與伙伴終端列表中的服務(wù)器終端建立單向直接接入式的連接;在客戶端的網(wǎng)絡(luò)帶寬高于第一預(yù)定值時(shí),客戶端選擇與伙伴終端列表中的服務(wù)器終端、優(yōu)選用戶終端以及普通用戶終端建立連接,其中,客戶端以單向直接接入的方式與服務(wù)器終端連接,以雙向共享接入的方式與優(yōu)選用戶終端或者普通用戶終端建立連接,在客戶端與服務(wù)器終端的訪問時(shí)延大于等于預(yù)設(shè)的靜態(tài)訪問時(shí)延的情況下,客戶端服務(wù)器終端建立基于UDP協(xié)議訪問的連接,否則,客戶端服務(wù)器終端建立基于TCP協(xié)議訪問的連接。進(jìn)一步地,客戶端還包括讀取裝置,用于按照先通過UDP協(xié)議讀取普通用戶終端,再通過UDP協(xié)議讀取優(yōu)選用戶終端,最后通過TCP協(xié)議讀取服務(wù)器終端的優(yōu)先級(jí)順序, 來獲取流媒體數(shù)據(jù),并將流媒體數(shù)據(jù)保存至緩存;播放裝置,用于播放緩存中的流媒體數(shù)據(jù),其中,當(dāng)客戶端緩存中的流媒體數(shù)據(jù)大小低于第二預(yù)定值時(shí),客戶端選擇向服務(wù)器終端讀取流媒體數(shù)據(jù);當(dāng)客戶端緩存中的流媒體數(shù)據(jù)大小處于第二預(yù)定值和第三預(yù)定值之間時(shí),客戶端選擇向服務(wù)器終端、優(yōu)選用戶終端以及普通用戶終端中的任意一個(gè)終端讀取流媒體數(shù)據(jù);當(dāng)客戶端緩存中的流媒體數(shù)據(jù)大小超過第三預(yù)定值時(shí),客戶端選擇向普通客戶端讀取流媒體數(shù)據(jù)。進(jìn)一步地,客戶端還包括第三處理裝置,與內(nèi)容源終端連接,用于從內(nèi)容源終端上按照隨機(jī)順序獲取一個(gè)或多個(gè)數(shù)據(jù)包,并將流媒體數(shù)據(jù)以數(shù)據(jù)包為單位進(jìn)行共享;并根據(jù)各個(gè)數(shù)據(jù)包的索引編號(hào)將獲得的一個(gè)或多個(gè)數(shù)據(jù)包進(jìn)行排序組合,以獲取完整的流媒體數(shù)據(jù),其中,流媒體數(shù)據(jù)按照播放順序劃分成數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包括一個(gè)或多個(gè)數(shù)據(jù)包。進(jìn)一步地,服務(wù)器終端之間通過TCP協(xié)議建立共享互聯(lián),優(yōu)選用戶終端與普通用戶終端之間以及普通用戶終端彼此之間通過TCP協(xié)議建立共享互聯(lián),共享互聯(lián)用于獲取P2P內(nèi)容共享。通過本發(fā)明,采用客戶端發(fā)起對(duì)流媒體數(shù)據(jù)的訪問;中心目錄服務(wù)器根據(jù)條件參數(shù)向客戶端返回一個(gè)或多個(gè)內(nèi)容源終端的地址,并將地址加入伙伴終端列表;客戶端與伙伴終端列表中的內(nèi)容源終端建立連接,并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端的連接方式;客戶端從內(nèi)容源終端上獲取流媒體數(shù)據(jù),實(shí)現(xiàn)了通過基于客戶端自身網(wǎng)絡(luò)狀況的動(dòng)態(tài)數(shù)據(jù)來獲取實(shí)現(xiàn)按需的流媒體數(shù)據(jù)分發(fā),解決了相關(guān)技術(shù)的流媒體傳輸方法無法保障流媒體數(shù)據(jù)傳輸?shù)募皶r(shí)性和穩(wěn)定性的問題,進(jìn)而實(shí)現(xiàn)了在出現(xiàn)網(wǎng)絡(luò)抖動(dòng)或單節(jié)點(diǎn)失效等故障的時(shí)候, 保障流媒體數(shù)據(jù)獲取的及時(shí)性和穩(wěn)定性的效果。


此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)本發(fā)明實(shí)施例的云流媒體數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖;圖2是根據(jù)圖1所示實(shí)施例的云流媒體數(shù)據(jù)傳輸系統(tǒng)的工作流程示意圖;圖3是根據(jù)本發(fā)明實(shí)施例的云流媒額體數(shù)據(jù)傳輸方法的流程圖;圖4是根據(jù)圖3所示實(shí)施例的多發(fā)式訪問機(jī)制的工作流程示意圖;圖5是與圖4相對(duì)應(yīng)的多發(fā)式訪問機(jī)制的坐標(biāo)示意圖;以及圖6是根據(jù)本發(fā)明實(shí)施例的云流媒體數(shù)據(jù)播放過程中的動(dòng)態(tài)數(shù)據(jù)調(diào)度機(jī)制示意圖。
具體實(shí)施例方式需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。本申請中所涉及到的優(yōu)選用戶終端是從用戶終端中選取的性能較好的節(jié)點(diǎn),優(yōu)選用戶終端具有數(shù)據(jù)傳出大于數(shù)據(jù)輸入的特性,即優(yōu)選用戶終端起到種子終端的作用,以提供給其他用戶有保障的可供獲取的數(shù)據(jù)流,其一般選擇標(biāo)準(zhǔn)是1)下行帶寬超過2Mbps ;2) 在一個(gè)固定時(shí)段內(nèi)被請求用戶成功連接次數(shù)超過某個(gè)設(shè)定標(biāo)準(zhǔn)。在網(wǎng)絡(luò)系統(tǒng)中不具備上述特點(diǎn)的用戶終端為普通用戶終端。本發(fā)明中的客戶端為發(fā)出云流媒體數(shù)據(jù)訪問的用戶終端。圖1是根據(jù)本發(fā)明實(shí)施例的云流媒體數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖;圖2是根據(jù)圖 1所示實(shí)施例的云流媒體數(shù)據(jù)傳輸系統(tǒng)的工作流程示意圖。如圖1所示,該云流媒體數(shù)據(jù)傳輸系統(tǒng)包括中心目錄服務(wù)器30,用于保存所有內(nèi)容源終端50的地址以及伙伴終端列表;客戶端10,用于與伙伴終端列表中的內(nèi)容源終端50 建立連接,以獲取流媒體數(shù)據(jù),并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端50的連接方式;其中,中心目錄服務(wù)器30根據(jù)條件參數(shù)向客戶端10返回一個(gè)或多個(gè)內(nèi)容源終端50的地址,并將該地址加入伙伴終端列表。本發(fā)明上述實(shí)施例中的內(nèi)容源終端50可以是圖1中的流媒體邊緣服務(wù)器、優(yōu)選用戶終端503以及普通用戶終端502,這些終端都可以提供客戶端10所需的流媒體數(shù)據(jù)。該實(shí)施例不同于傳統(tǒng)的“以數(shù)據(jù)為中心”的流媒體數(shù)據(jù)傳輸系統(tǒng),實(shí)現(xiàn)“以用戶為中心”的設(shè)計(jì)理念,以客戶端10用戶端的網(wǎng)絡(luò)帶寬情況為基礎(chǔ),動(dòng)態(tài)選擇與內(nèi)容源終端50按需的接入方式以及內(nèi)容源數(shù)據(jù)的獲取優(yōu)先級(jí),保障了用戶終端流媒體數(shù)據(jù)的即時(shí)和連續(xù)播放質(zhì)量, 實(shí)現(xiàn)在發(fā)生網(wǎng)絡(luò)抖動(dòng)或終端單節(jié)點(diǎn)失效的情況下,仍舊可以保障流媒體數(shù)據(jù)獲取的及時(shí)性和穩(wěn)定性問題。該實(shí)施例充分滿足了云計(jì)算流媒體業(yè)務(wù)對(duì)按需的和易擴(kuò)展的特性的要求,通過服務(wù)器和用戶兩層的互聯(lián)共享實(shí)現(xiàn)系統(tǒng)的擴(kuò)展性,通過基于用戶自身網(wǎng)絡(luò)狀況的動(dòng)態(tài)數(shù)據(jù)獲取實(shí)現(xiàn)按需的流媒體內(nèi)容分發(fā)。具體的,如圖2所示,本發(fā)明具體的實(shí)施例提供的云流媒體傳輸系統(tǒng)包括客戶端 10、流媒體中心目錄服務(wù)器30,內(nèi)容源終端50 (例如流媒體終端服務(wù)器),其中內(nèi)容源終端 50又包括普通用戶終端節(jié)點(diǎn)502和優(yōu)選用戶終端節(jié)點(diǎn)503。用戶節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)之間的連接方式如圖2所示??傮w上分為兩層,服務(wù)器間互聯(lián)層和用戶終端節(jié)點(diǎn)間互聯(lián)層。在實(shí)時(shí)流媒體數(shù)據(jù)傳輸過程中,在中心目錄服務(wù)器管理下,服務(wù)器間互聯(lián)層采用TCP協(xié)議進(jìn)行流媒體終端服務(wù)器之間的數(shù)據(jù)交換,用戶間互聯(lián)層采用UDP協(xié)議進(jìn)行用戶間的數(shù)據(jù)交換。服務(wù)器和用戶之間采用基于UDP或TCP的協(xié)議進(jìn)行數(shù)據(jù)交換。其中,服務(wù)器與服務(wù)器之間的數(shù)據(jù)傳輸是雙向的,服務(wù)器與用戶之間的數(shù)據(jù)傳輸是單向的,用戶節(jié)點(diǎn)之間的數(shù)據(jù)傳輸是雙向的。特別地,優(yōu)選用戶節(jié)的數(shù)據(jù)傳出要大于輸入。本發(fā)明上述圖1所示的實(shí)施例中,所涉及到的客戶端10可以包括發(fā)射裝置101, 用于向中心目錄服務(wù)器30發(fā)送點(diǎn)播或直播內(nèi)容請求;接收裝置102,用于接收中心目錄服務(wù)器30中滿足條件參數(shù)的一個(gè)或多個(gè)內(nèi)容源終端50的地址;其中,條件參數(shù)包括內(nèi)容源終端50的位置、運(yùn)行狀態(tài)、優(yōu)先級(jí)以及提供的流媒體數(shù)據(jù)的內(nèi)容。上述實(shí)施例實(shí)現(xiàn)了本申請內(nèi)容源節(jié)點(diǎn)選取的功能,具體的,如圖1和圖2所示,當(dāng)客戶端10(即新用戶)加入到網(wǎng)絡(luò)時(shí),可以以網(wǎng)頁重導(dǎo)向等方式通過發(fā)射裝置101向流媒體中心目錄服務(wù)器30 (Tracker)發(fā)送點(diǎn)播或直播內(nèi)容請求,中心目錄服務(wù)器30根據(jù)客戶端 10請求節(jié)目和位置情況,返回正在播放用戶所請求節(jié)目的內(nèi)容源終端50節(jié)點(diǎn),內(nèi)容源終端 50可以包括普通用戶終端502,優(yōu)選用戶終端503和服務(wù)器終端501,該服務(wù)器終端501可以是流媒體邊緣服務(wù)器。中心目錄服務(wù)器30選擇返回給內(nèi)容源節(jié)點(diǎn)的機(jī)制為P2P優(yōu)先的本地化節(jié)點(diǎn)選擇策略。其中,中心目錄服務(wù)器30選擇可供客戶端10用戶訪問的內(nèi)容源終端50節(jié)點(diǎn)的基本標(biāo)準(zhǔn)是1)該內(nèi)容源終端50節(jié)點(diǎn)擁有客戶端10用戶所請求內(nèi)容一致的數(shù)據(jù)片段;2)該內(nèi)容終端的運(yùn)行狀態(tài)處于活躍狀態(tài),存在上下行帶寬。優(yōu)選的,中心目錄服務(wù)器30選擇可供客戶端10用戶訪問的內(nèi)容源終端50節(jié)點(diǎn)的附加標(biāo)準(zhǔn)是1)該內(nèi)容源終端50節(jié)點(diǎn)在物理位置上離請求用戶在固定時(shí)延范圍內(nèi),如30 秒;2)該內(nèi)容源終端50節(jié)點(diǎn)不處于滿負(fù)荷狀態(tài),即連接它的內(nèi)容源終端50節(jié)點(diǎn)數(shù)量不超過某固定設(shè)定值,一般普通用戶終端502節(jié)點(diǎn)為5個(gè),優(yōu)選用戶終端503節(jié)點(diǎn)為20個(gè),服務(wù)器終端501節(jié)點(diǎn)為200個(gè)。本發(fā)明上述實(shí)施例中,如圖1所示,所涉及到的中心目錄服務(wù)器30可以包括第一處理裝置301301,用于按照內(nèi)容源終端50的優(yōu)先級(jí)依次返回內(nèi)容源終端50的地址, 內(nèi)容源終端50包括以下任意一個(gè)或多個(gè)設(shè)備普通用戶終端502、優(yōu)選用戶終端503以及服務(wù)器終端501,其中,內(nèi)容源終端50的優(yōu)先級(jí)通過以下公式獲得modescore = K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K 為基礎(chǔ)因子常數(shù),rtti 為終端節(jié)點(diǎn)間的動(dòng)態(tài)網(wǎng)絡(luò)延時(shí),minrtti為終端節(jié)點(diǎn)間的靜態(tài)最佳網(wǎng)絡(luò)延時(shí),recvpercent為終端節(jié)點(diǎn)間的數(shù)據(jù)成功接收率,R為當(dāng)前碼流量化值。具體的,中心目錄服務(wù)器30向請求節(jié)點(diǎn)返回可供訪問的內(nèi)容源終端50節(jié)點(diǎn)的優(yōu)先級(jí)順序?yàn)槠胀ㄓ脩艚K端502節(jié)點(diǎn);優(yōu)選用戶終端503節(jié)點(diǎn);服務(wù)器終端501節(jié)點(diǎn)。同一類型的終端節(jié)點(diǎn)的選擇標(biāo)準(zhǔn)是在用戶同一 IP段的優(yōu)先,以減少端到端的訪問時(shí)延和過多的跨ISP流量。優(yōu)選用戶終端503節(jié)點(diǎn)是從用戶節(jié)點(diǎn)中選取的性能較好的節(jié)點(diǎn),優(yōu)選用戶終端503具有數(shù)據(jù)傳出大于數(shù)據(jù)輸入的特性,即優(yōu)選用戶終端503起到種子終端的作用,以提供給其他用戶有保障的可供獲取的數(shù)據(jù)流,其一般選擇標(biāo)準(zhǔn)是1)下行帶寬超過2Mbps ; 2)在一個(gè)固定時(shí)段內(nèi)被請求用戶成功連接次數(shù)超過某個(gè)設(shè)定標(biāo)準(zhǔn)?;趦?nèi)容源終端50的標(biāo)準(zhǔn),中心目錄服務(wù)器30通過對(duì)所有內(nèi)容源終端50節(jié)點(diǎn) (包括用戶節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn))進(jìn)行打分來確定其優(yōu)先級(jí),即對(duì)內(nèi)容源終端50節(jié)點(diǎn)進(jìn)行量化的評(píng)分機(jī)制,分?jǐn)?shù)較高的將被優(yōu)先返回。作為量化標(biāo)準(zhǔn)的一種可能實(shí)現(xiàn)形式示例,具體的評(píng)分公式如下1)nodescore = K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R, 1 ^ ζ 為內(nèi)容源終端50的節(jié)點(diǎn)級(jí)別值(nodescore)的獲取公式,這個(gè)節(jié)點(diǎn)級(jí)別值(nodescore)的計(jì)算結(jié)果就是選取的某一個(gè)內(nèi)容終端節(jié)點(diǎn)評(píng)分后的優(yōu)先級(jí)值,nodescore值越大,越優(yōu)先被選取為共享內(nèi)容的終端節(jié)點(diǎn)。2) nodescore (now) = (nodescore (pre) +3水nodescore) /4,該公式為當(dāng)前節(jié)點(diǎn)值 =(前一個(gè)節(jié)點(diǎn)值+3*節(jié)點(diǎn)級(jí)別值)/4,用于體現(xiàn)一個(gè)動(dòng)態(tài)調(diào)整,表征在不同的統(tǒng)計(jì)時(shí)間段, 當(dāng)前節(jié)點(diǎn)的nodescore值和之前節(jié)點(diǎn)的nodescore值有什么關(guān)系,體現(xiàn)一個(gè)動(dòng)態(tài)遞推關(guān)系。參數(shù)說明K為基礎(chǔ)因子常數(shù),是經(jīng)驗(yàn)實(shí)測值,當(dāng)node為服務(wù)器時(shí),因子較小,node 為相同網(wǎng)段的用戶節(jié)點(diǎn)時(shí),取值較大。典型值源服務(wù)器K = 700 ;分發(fā)服務(wù)器K = 800 ;一般節(jié)點(diǎn)K = 1000 ;相同網(wǎng)段用戶節(jié)點(diǎn)K = 1300。rtti為節(jié)點(diǎn)間的動(dòng)態(tài)網(wǎng)絡(luò)延時(shí);minrtti 為節(jié)點(diǎn)間的靜態(tài)最佳網(wǎng)絡(luò)延時(shí);recvpercent為節(jié)點(diǎn)間的數(shù)據(jù)成功接收率,相當(dāng)于1_包率; R為當(dāng)前碼流量化值。其中,相關(guān)rtti計(jì)算參考TCP標(biāo)準(zhǔn),一般用兩個(gè)節(jié)點(diǎn)間互發(fā)包的接收時(shí)間計(jì)算,在計(jì)算機(jī)命令里面用現(xiàn)成的Ping命令即可實(shí)現(xiàn)。如圖1所示,本發(fā)明上述各個(gè)實(shí)施例中的客戶端10還可以包括第二處理裝置 103,用于在客戶端10的網(wǎng)絡(luò)帶寬低于第一預(yù)定值時(shí),客戶端10選擇與伙伴終端列表中的服務(wù)器終端501建立單向直接接入式的連接;在客戶端10的網(wǎng)絡(luò)帶寬高于第一預(yù)定值時(shí), 客戶端10選擇與伙伴終端列表中的服務(wù)器終端501、優(yōu)選用戶終端503以及普通用戶終端 502建立連接,其中,客戶端10以單向直接接入的方式與服務(wù)器終端501連接,以雙向共享接入的方式與優(yōu)選用戶終端503或者普通用戶終端502建立連接,其中,在客戶端10與服務(wù)器終端501的訪問時(shí)延大于等于預(yù)設(shè)的靜態(tài)訪問時(shí)延的情況下,客戶端10服務(wù)器終端 501建立基于UDP協(xié)議訪問的連接,否則,客戶端10服務(wù)器終端501建立基于TCP協(xié)議訪問的連接。上述實(shí)施例涉及使用TCP與UDP相結(jié)合的基于緩存動(dòng)態(tài)調(diào)度的流媒體數(shù)據(jù)傳輸方法,其特征是在連接方式上基于客戶端10用戶的網(wǎng)絡(luò)狀況為觸發(fā),動(dòng)態(tài)選擇與服務(wù)器直連和/或與用戶終端節(jié)點(diǎn)P2P連接的混合連接方式,優(yōu)先選擇多個(gè)用戶終端節(jié)點(diǎn)間基于UDP的P2P連接,其次選擇與服務(wù)器間的TCP或UDP直連,同時(shí)服務(wù)器間按TCP方式進(jìn)行直連和 P2P共享。本申請上述實(shí)施例中,客戶端10的第二處理裝置103用于控制客戶端10與內(nèi)容源終端50之間連接方式的選取。主要基于新終端用戶當(dāng)前的網(wǎng)絡(luò)情況和所處的位置,按需動(dòng)態(tài)選擇連接方式,向內(nèi)容源節(jié)點(diǎn)發(fā)送請求,在連接成功后從內(nèi)容源節(jié)點(diǎn)處接收數(shù)據(jù)。具體包括以下動(dòng)態(tài)選擇機(jī)制1)用戶帶寬優(yōu)先的連接策略。如圖2所示,當(dāng)用戶網(wǎng)絡(luò)接入帶寬低于某第一預(yù)定值(如1M)時(shí),用戶進(jìn)行與服務(wù)器的直接連接,不參與用戶之間的P2P連接;當(dāng)用戶接入帶寬大于該第一預(yù)定值(如1M)時(shí),進(jìn)行客戶端10與優(yōu)選用戶終端503或普通用戶終端502 節(jié)點(diǎn)以P2P方式連接以及和服務(wù)器終端501直連連接的混合連接方式。在連接的協(xié)議上,將TCP和UDP協(xié)議融合,當(dāng)用戶節(jié)點(diǎn)離服務(wù)器終端501較遠(yuǎn)(超過設(shè)定靜態(tài)訪問時(shí)延),采用基于UDP協(xié)議的直接連接方式;當(dāng)用戶節(jié)點(diǎn)離服務(wù)器較近(低于設(shè)定靜態(tài)訪問時(shí)延),采用基于TCP協(xié)議的直接連接方式。用戶終端節(jié)點(diǎn)之間進(jìn)行UDP連接,實(shí)現(xiàn)分布式的P2P充分共享。并利用基于UDP的打洞機(jī)制,實(shí)現(xiàn)對(duì)NAT局域網(wǎng)后用戶內(nèi)容的充分共享。2)可擴(kuò)展的服務(wù)器互聯(lián)策略。如圖2所示,多個(gè)服務(wù)器(如流媒體邊緣服務(wù)器) 之間進(jìn)行TCP連接,實(shí)現(xiàn)P2P內(nèi)容共享。中心媒體庫將熱點(diǎn)的點(diǎn)播視頻和直播流提前在各服務(wù)器中進(jìn)行預(yù)分發(fā),在用戶連接時(shí),根據(jù)服務(wù)器負(fù)載情況,以相互共享形式提供給用戶; 非熱點(diǎn)內(nèi)容和較大的視頻內(nèi)容只在部分服務(wù)器存儲(chǔ),根據(jù)客戶端10用戶請求情況在各服務(wù)器間進(jìn)行調(diào)度,下載到本地服務(wù)器的視頻可成為新內(nèi)容源供客戶端10用戶下載。3)公平與效率兼顧的連接請求判定策略。如圖2所示,當(dāng)擁有內(nèi)容的節(jié)點(diǎn)收到新用戶請求后,要確定是否向請求用戶發(fā)送數(shù)據(jù),首先必須滿足一個(gè)約束總連接數(shù)不超過本節(jié)點(diǎn)最大連接數(shù)(如一般普通用戶終端502節(jié)點(diǎn)為5個(gè),優(yōu)選用戶終端503節(jié)點(diǎn)為20個(gè), 服務(wù)器終端501節(jié)點(diǎn)為200個(gè)),以保證內(nèi)容源節(jié)點(diǎn)不會(huì)負(fù)載過重。具體滿足三個(gè)標(biāo)準(zhǔn)1) 向該節(jié)點(diǎn)上傳內(nèi)容數(shù)據(jù)多的節(jié)點(diǎn)優(yōu)先,保障互相共享;2)同一網(wǎng)段的節(jié)點(diǎn)優(yōu)先,促進(jìn)本地化訪問;幻新加入的節(jié)點(diǎn)優(yōu)先,保障新節(jié)點(diǎn)能快速啟動(dòng)和擁有初始內(nèi)容進(jìn)行共享。既保證 P2P效率,也保證公平。4)動(dòng)態(tài)伙伴節(jié)點(diǎn)更新和連接策略。如圖2所示,當(dāng)內(nèi)容源終端50節(jié)點(diǎn)接收客戶端 10用戶的請求后,它成為客戶端10用戶維護(hù)伙伴終端列表,即伙伴節(jié)點(diǎn)(Partner)目錄中的一個(gè)。每個(gè)內(nèi)容源終端50節(jié)點(diǎn)的伙伴節(jié)點(diǎn)數(shù)量固定(一般為10到20個(gè)),并且周期性更新,以維持一定數(shù)量的能向本節(jié)點(diǎn)提供數(shù)據(jù)的活躍伙伴節(jié)點(diǎn)。每個(gè)網(wǎng)絡(luò)中的節(jié)點(diǎn)周期性地與其伙伴節(jié)點(diǎn)交換各自擁有數(shù)據(jù)信息,進(jìn)而從其他節(jié)點(diǎn)中獲取其不擁有的內(nèi)容片,同時(shí)為其他節(jié)點(diǎn)提供其擁有的內(nèi)容片。如圖1所示,本申請上述各個(gè)實(shí)施例中的客戶端10還可以包括讀取裝置104,用于按照先通過UDP協(xié)議讀取普通用戶終端502,再通過UDP協(xié)議讀取優(yōu)選用戶終端503,最后通過TCP協(xié)議讀取服務(wù)器終端501的優(yōu)先級(jí)順序,來獲取流媒體數(shù)據(jù),并將流媒體數(shù)據(jù)保存至緩存;播放裝置105,用于播放緩存中的流媒體數(shù)據(jù),其中,當(dāng)客戶端10緩存中的流媒體數(shù)據(jù)大小低于第二預(yù)定值時(shí),客戶端10選擇向服務(wù)器終端501讀取流媒體數(shù)據(jù);當(dāng)客戶端10緩存中的流媒體數(shù)據(jù)大小處于第二預(yù)定值和第三預(yù)定值之間時(shí),客戶端10選擇向服務(wù)器終端501、優(yōu)選用戶終端503以及普通用戶終端502中的任意一個(gè)終端讀取流媒體數(shù)據(jù);當(dāng)客戶端10緩存中的流媒體數(shù)據(jù)大小超過第三預(yù)定值時(shí),客戶端10選擇向普通客戶端 10讀取流媒體數(shù)據(jù)。優(yōu)選地,如圖1和2所示,本申請各個(gè)實(shí)施例中的服務(wù)器終端501之間通過TCP協(xié)議建立共享互聯(lián),優(yōu)選用戶終端503與普通用戶終端502之間以及普通用戶終端502彼此之間通過TCP協(xié)議建立共享互聯(lián),共享互聯(lián)用于獲取P2P內(nèi)容共享。同時(shí)不影響用戶的其他應(yīng)用,實(shí)現(xiàn)服務(wù)器和用戶的負(fù)載均衡。具體傳輸方式上,不簡單依賴純P2P方式的按可用性共享,實(shí)現(xiàn)按需的內(nèi)容分發(fā),既保障了 P2P的效率,也保障了公平。本發(fā)明上述實(shí)施例實(shí)現(xiàn)在云流媒體數(shù)據(jù)塊內(nèi)容獲取方式上,在播放啟動(dòng)時(shí)利用緩存獲取即將播放內(nèi)容,以大于播放速度的并行多發(fā)快速獲取即將播放的內(nèi)容,在播放過程中以三級(jí)報(bào)警機(jī)制觸發(fā)用戶從不同源節(jié)點(diǎn)獲取內(nèi)容,并且將內(nèi)存緩存和硬盤存儲(chǔ)的數(shù)據(jù)與其他節(jié)點(diǎn)共享。利用用戶緩存預(yù)先獲取即將播放內(nèi)容,啟動(dòng)時(shí)以大于播放速度的并行多發(fā)快速獲取即將播放的內(nèi)容,播放過程中以三級(jí)報(bào)警機(jī)制觸發(fā)用戶從不同源節(jié)點(diǎn)獲取內(nèi)容, 并且將緩存的數(shù)據(jù)與其他節(jié)點(diǎn)共享。如圖1所示,用戶終端節(jié)點(diǎn)可以是普通用戶終端502 或優(yōu)選用戶終端503,服務(wù)器可以是流媒體邊緣服務(wù)器。優(yōu)選地,客戶端還包括第三處理裝置,與內(nèi)容源終端連接,用于從內(nèi)容源終端上按照隨機(jī)順序獲取一個(gè)或多個(gè)數(shù)據(jù)包,并將流媒體數(shù)據(jù)以數(shù)據(jù)包為單位進(jìn)行共享;并根據(jù)各個(gè)數(shù)據(jù)包的索引編號(hào)將獲得的一個(gè)或多個(gè)數(shù)據(jù)包進(jìn)行排序組合,以獲取完整的流媒體數(shù)據(jù),其中,流媒體數(shù)據(jù)按照播放順序劃分成數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包括一個(gè)或多個(gè)數(shù)據(jù)包。該第三處理裝置與第二處理裝置為等同的處理裝置。上述實(shí)施例實(shí)現(xiàn)了本申請?jiān)屏髅襟w數(shù)據(jù)的獲取方式選取,具體如下在視頻播放過程中,用戶提前將即將播放的流媒體數(shù)據(jù)存放到緩存中,實(shí)現(xiàn)基于動(dòng)態(tài)緩存的邊下邊播和數(shù)據(jù)共享。包括如下選取機(jī)制和算法1)基于UDP多傳的快速啟動(dòng)策略。如圖1和2所示,在緩存中數(shù)據(jù)未滿時(shí),用戶客戶端10啟動(dòng)多個(gè)并發(fā)連接,利用基于UDP的多傳機(jī)制,保障以當(dāng)前播放速度η倍的速度 (一般為幻獲取緩存中即將播放的數(shù)據(jù),以保障在用戶啟動(dòng)、拖動(dòng)、斷開重連過程中播放的流暢,并預(yù)防網(wǎng)絡(luò)抖動(dòng)對(duì)播放的影響。2)基于三級(jí)預(yù)警的數(shù)據(jù)獲取。如圖2所示,緩存管理上采取三級(jí)報(bào)警機(jī)制來保障獲取內(nèi)容源的穩(wěn)定性,當(dāng)緩存中數(shù)據(jù)低于緩存大小的20%時(shí),啟動(dòng)紅色警報(bào),用戶將以最高優(yōu)先級(jí)向服務(wù)器節(jié)點(diǎn)發(fā)起連接;當(dāng)緩存中數(shù)據(jù)低于緩存大小的40%時(shí),啟動(dòng)橙色警報(bào),目錄服務(wù)器將返回更多的服務(wù)器節(jié)點(diǎn)和用戶節(jié)點(diǎn)(特別是優(yōu)選用戶節(jié)點(diǎn))供用戶選擇和連接;當(dāng)緩存中數(shù)據(jù)低于緩存大小的60%時(shí),啟動(dòng)黃色警報(bào),目錄服務(wù)器將返回更多的用戶節(jié)點(diǎn)供用戶選擇和連接。實(shí)現(xiàn)上利用客戶端10軟件上的設(shè)定策略進(jìn)行預(yù)警操作觸發(fā)。3)按需和隨機(jī)結(jié)合的數(shù)據(jù)塊請求優(yōu)先級(jí)。如圖2和6所示,流媒體數(shù)據(jù)根據(jù)播放先后順序分成數(shù)據(jù)塊(chunk),每數(shù)據(jù)塊包括若干固定長度的數(shù)據(jù)包(packet)。對(duì)于緩存中的數(shù)據(jù),用戶請求數(shù)據(jù)的優(yōu)先級(jí)確定原則是當(dāng)前播放數(shù)據(jù)塊的下一個(gè)數(shù)據(jù)塊首先下載; 排序靠前的數(shù)據(jù)塊比排序靠后的數(shù)據(jù)塊先下載,實(shí)現(xiàn)按序獲??;同一數(shù)據(jù)塊內(nèi)的數(shù)據(jù)包,根據(jù)內(nèi)容可用性,進(jìn)行隨機(jī)順序獲取,以提高P2P請求的效率。緩存數(shù)據(jù)下載并播放后,存放到用戶物理硬盤中,可供其他節(jié)點(diǎn)以隨機(jī)順序進(jìn)行分享下載。
圖3是根據(jù)本發(fā)明實(shí)施例的云流媒額體數(shù)據(jù)傳輸方法的流程圖;圖4是根據(jù)圖3 所示實(shí)施例的多發(fā)式訪問機(jī)制的工作流程示意圖;圖5是與圖4相對(duì)應(yīng)的多發(fā)式訪問機(jī)制的坐標(biāo)示意圖;以及圖6是根據(jù)本發(fā)明實(shí)施例的云流媒體數(shù)據(jù)播放過程中的動(dòng)態(tài)數(shù)據(jù)調(diào)度機(jī)制示意圖。如圖3所示該方法包括如下步驟步驟S102,通過圖1和圖2中的客戶端10發(fā)起對(duì)流媒體數(shù)據(jù)的訪問。步驟S104,圖1和圖2中的中心目錄服務(wù)器30根據(jù)條件參數(shù)向客戶端10返回一個(gè)或多個(gè)內(nèi)容源終端的地址,并將地址加入伙伴終端列表。步驟S106,圖1和圖2中客戶端10與伙伴終端列表中的內(nèi)容源終端50建立連接, 并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端50的連接方式。步驟S108,圖1和圖2中客戶端10從內(nèi)容源終端50上獲取流媒體數(shù)據(jù)。本發(fā)明該實(shí)施例不同于傳統(tǒng)的“以數(shù)據(jù)為中心”的流媒體數(shù)據(jù)傳輸系統(tǒng),實(shí)現(xiàn)“以用戶為中心”的設(shè)計(jì)理念,以客戶端10用戶端的網(wǎng)絡(luò)帶寬情況為基礎(chǔ),動(dòng)態(tài)選擇與內(nèi)容源終端50按需的接入方式以及內(nèi)容源數(shù)據(jù)的獲取優(yōu)先級(jí),保障了用戶終端云流媒體數(shù)據(jù)的即時(shí)和連續(xù)播放質(zhì)量,實(shí)現(xiàn)在發(fā)生網(wǎng)絡(luò)抖動(dòng)或終端單節(jié)點(diǎn)失效的情況下,仍舊可以保障流媒體數(shù)據(jù)獲取的及時(shí)性和穩(wěn)定性問題,同時(shí)不影響用戶的其他應(yīng)用,實(shí)現(xiàn)服務(wù)器和用戶的負(fù)載均衡,不簡單依賴純P2P方式的按可用性共享,實(shí)現(xiàn)按需的內(nèi)容分發(fā),既保障了 P2P的效率,也保障了公平。本專利充分滿足了云計(jì)算流媒體業(yè)務(wù)對(duì)按需的和易擴(kuò)展的特性的要求, 通過服務(wù)器和用戶兩層的互聯(lián)共享實(shí)現(xiàn)系統(tǒng)的擴(kuò)展性,通過基于用戶自身網(wǎng)絡(luò)狀況的動(dòng)態(tài)數(shù)據(jù)獲取實(shí)現(xiàn)按需的流媒體內(nèi)容分發(fā)。本申請上述實(shí)施例中,步驟S104,中心目錄服務(wù)器30根據(jù)條件參數(shù)向客戶端10返回一個(gè)或多個(gè)內(nèi)容源終端的地址,并將地址加入伙伴終端列表可以包括如下步驟中心目錄服務(wù)器30接收點(diǎn)播或直播內(nèi)容請求;中心目錄服務(wù)器30根據(jù)條件參數(shù)來返回一個(gè)或多個(gè)內(nèi)容源終端50的地址,內(nèi)容源終端50正在播放點(diǎn)播或直播內(nèi)容請求對(duì)應(yīng)的流媒體數(shù)據(jù); 客戶端10接收返回的內(nèi)容源終端50的地址;其中,條件參數(shù)包括內(nèi)容源終端50的位置、 運(yùn)行狀態(tài)、優(yōu)先級(jí)以及提供的流媒體數(shù)據(jù)的內(nèi)容。優(yōu)選地,中心目錄服務(wù)器30根據(jù)條件參數(shù)來返回一個(gè)或多個(gè)內(nèi)容源終端50的地址的步驟包括中心目錄服務(wù)器30按照內(nèi)容源終端50的優(yōu)先級(jí)依次返回內(nèi)容源終端50的地址,內(nèi)容源終端50包括以下任意一個(gè)或多個(gè)設(shè)備普通用戶終端502、優(yōu)選用戶終端503 以及服務(wù)器終端501,其中,內(nèi)容源終端50的優(yōu)先級(jí)通過以下公式獲得nodescore = K/(2+rtti/500)*(minrtti/rtti) 2*(recvprecent) 2*R,K ^ 基礎(chǔ)因子常數(shù),rtti為終端節(jié)點(diǎn)間的動(dòng)態(tài)網(wǎng)絡(luò)延時(shí),minrtti為終端節(jié)點(diǎn)間的靜態(tài)最佳網(wǎng)絡(luò)延時(shí),recvpercent為終端節(jié)點(diǎn)間的數(shù)據(jù)成功接收率,R為當(dāng)前碼流量化值。本發(fā)明上述實(shí)施例中,步驟S106,客戶端10與伙伴終端列表中的內(nèi)容源終端50建立連接,并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端50的連接方式的步驟可以包括在客戶端10的網(wǎng)絡(luò)帶寬低于第一預(yù)定值時(shí),客戶端10選擇與伙伴終端列表中的服務(wù)器終端501建立單向直接接入式的連接;在客戶端10的網(wǎng)絡(luò)帶寬高于第一預(yù)定值時(shí),客戶端10選擇與伙伴終端列表中的服務(wù)器終端501、優(yōu)選用戶終端503以及普通用戶終端502建立連接,其中,客戶端 10以單向直接接入的方式與服務(wù)器終端501連接,以雙向共享接入的方式與優(yōu)選用戶終端503或者普通用戶終端502建立連接。優(yōu)選地,客戶端10選擇與伙伴終端列表中的服務(wù)器終端501建立單向直接接入式的連接的步驟可以包括判斷客戶端10與服務(wù)器終端501的訪問時(shí)延是否大于或等于預(yù)設(shè)的靜態(tài)訪問時(shí)延,其中,在大于等于靜態(tài)訪問時(shí)延的情況下,客戶端10服務(wù)器終端501建立基于UDP協(xié)議訪問的連接;在小于靜態(tài)訪問時(shí)延的情況下,客戶端10服務(wù)器終端501建立基于TCP協(xié)議訪問的連接。本申請上述各個(gè)實(shí)施例中的服務(wù)器終端501之間通過TCP協(xié)議建立共享互聯(lián),優(yōu)選用戶終端503與普通用戶終端502之間以及普通用戶終端502彼此之間通過TCP協(xié)議建立共享互聯(lián),共享互聯(lián)用于獲取P2P內(nèi)容共享。如圖2和3所示,本發(fā)明上述實(shí)施例中的步驟S108,在步驟客戶端10從內(nèi)容源終端50上獲取流媒體數(shù)據(jù)的過程中可以包括客戶端10按照先通過UDP協(xié)議讀取普通用戶終端502,再通過UDP協(xié)議讀取優(yōu)選用戶終端503,最后通過TCP協(xié)議讀取服務(wù)器終端501 的優(yōu)先級(jí)順序,來獲取流媒體數(shù)據(jù);將流媒體數(shù)據(jù)保存至客戶端10的緩存。優(yōu)選地,如圖2和3所示,在步驟將流媒體數(shù)據(jù)保存至客戶端10的緩存之后,方法還可以包括客戶端10播放并共享緩存中的流媒體數(shù)據(jù),其中,當(dāng)客戶端10緩存中的流媒體數(shù)據(jù)大小低于第二預(yù)定值時(shí),客戶端10選擇向服務(wù)器終端501讀取流媒體數(shù)據(jù);當(dāng)客戶端10緩存中的流媒體數(shù)據(jù)大小處于第二預(yù)定值和第三預(yù)定值之間時(shí),客戶端10選擇向服務(wù)器終端501、優(yōu)選用戶終端503以及普通用戶終端502中的任意一個(gè)終端讀取流媒體數(shù)據(jù);當(dāng)客戶端10緩存中的流媒體數(shù)據(jù)大小超過第三預(yù)定值時(shí),客戶端10選擇向普通客戶端 10讀取流媒體數(shù)據(jù)。優(yōu)選地,讀取流媒體數(shù)據(jù)的步驟包括預(yù)先將流媒體數(shù)據(jù)按照播放順序劃分成數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包括一個(gè)或多個(gè)數(shù)據(jù)包;客戶端10從內(nèi)容源終端50上按照隨機(jī)順序獲取一個(gè)或多個(gè)數(shù)據(jù)包,并將流媒體數(shù)據(jù)以數(shù)據(jù)包為單位進(jìn)行共享;客戶端10根據(jù)各個(gè)數(shù)據(jù)包的索引編號(hào)將獲得的一個(gè)或多個(gè)數(shù)據(jù)包進(jìn)行排序組合,以獲取完整的流媒體數(shù)據(jù)。優(yōu)選地,在客戶端10從內(nèi)容源終端50上獲取流媒體數(shù)據(jù)之前,方法還可以包括如下步驟內(nèi)容源終端50向滿足以下任意一個(gè)或多個(gè)條件的客戶端10優(yōu)先上傳流媒體數(shù)據(jù), 條件包括客戶端10需要上傳的流媒體數(shù)據(jù)最多;客戶端10與內(nèi)容源終端50處于相同的網(wǎng)段;客戶端10為新加入的終端節(jié)點(diǎn)。優(yōu)選地,在客戶端10根據(jù)條件參數(shù)在中心目錄服務(wù)器30中獲取一個(gè)或多個(gè)內(nèi)容源終端50的地址,并將地址加入客戶端10的伙伴終端列表之后,方法還可以包括按照預(yù)定周期來定期更新伙伴終端列表,并周期性的共享伙伴終端列表中內(nèi)容源終端50的終端數(shù)據(jù)。如圖2-6所示,本發(fā)明具體的實(shí)施例提供的流媒體傳輸系統(tǒng)包括客戶端10、流媒體中心目錄服務(wù)器30,內(nèi)容源終端50(例如流媒體終端服務(wù)器),其中內(nèi)容源終端50又包括普通用戶終端節(jié)點(diǎn)502和優(yōu)選用戶終端節(jié)點(diǎn)503。用戶節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)之間的連接方式如圖2所示??傮w上分為兩層,服務(wù)器間互聯(lián)層和用戶終端節(jié)點(diǎn)間互聯(lián)層。在實(shí)時(shí)流媒體數(shù)據(jù)傳輸過程中,在中心目錄服務(wù)器管理下,服務(wù)器間互聯(lián)層采用TCP協(xié)議進(jìn)行流媒體終端服務(wù)器之間的數(shù)據(jù)交換,用戶間互聯(lián)層采用UDP協(xié)議進(jìn)行用戶間的數(shù)據(jù)交換。服務(wù)器和用戶之間采用基于UDP或TCP的協(xié)議進(jìn)行數(shù)據(jù)交換。其中,服務(wù)器與服務(wù)器之間的數(shù)據(jù)傳輸是雙向的,服務(wù)器與用戶之間的數(shù)據(jù)傳輸是單向的,用戶節(jié)點(diǎn)之間的數(shù)據(jù)傳輸是雙向的。 特別地,優(yōu)選用戶節(jié)的數(shù)據(jù)傳出要大于輸入。當(dāng)客戶端(即新用戶)請求流媒體數(shù)據(jù)時(shí),按照如下1)到17)的流程步驟進(jìn)行。具體地,本發(fā)明上述流媒體數(shù)據(jù)傳輸方法詳細(xì)的工作流程包括以下步驟1)預(yù)先地,流媒體服務(wù)器以TCP方式互連,并且在節(jié)目開始前將熱門直播和點(diǎn)播內(nèi)容預(yù)分發(fā)到各流媒體邊緣服務(wù)器。2)新用戶通過網(wǎng)頁或終端重定向訪問流媒體業(yè)務(wù)數(shù)據(jù),向中心目錄服務(wù)器30發(fā)送獲取特定點(diǎn)播或直播內(nèi)容請求(該用戶也稱為請求用戶),在訪問過程中,根據(jù)自身網(wǎng)絡(luò)情況,主動(dòng)選擇獲取流媒體業(yè)務(wù)方式單向直連接入或雙向共享接入。對(duì)于網(wǎng)絡(luò)帶寬過低的用戶(如撥號(hào)上網(wǎng)用戶或移動(dòng)用戶,一般接入帶寬小于IMbps),啟動(dòng)C/S模式單向直連接入。一般用戶默認(rèn)啟動(dòng)服務(wù)器與P2P結(jié)合的雙向共享接入模式,需要高清視頻的用戶默認(rèn)選擇雙向共享接入。3)中心目錄服務(wù)器接收到客戶端用戶請求后,對(duì)單向直連接入用戶直接返回就近的流媒體邊緣服務(wù)器地址列表;對(duì)雙向共享接入用戶的請求,目錄服務(wù)器根據(jù)不同內(nèi)容源節(jié)點(diǎn)優(yōu)先級(jí),對(duì)正在播放用戶所請求節(jié)目的用戶節(jié)點(diǎn)和流媒體服務(wù)器節(jié)點(diǎn)量化打分后,向用戶返回不同優(yōu)先級(jí)的可獲取所請求內(nèi)容的節(jié)點(diǎn)地址列表。4)客戶端用戶根據(jù)中心目錄服務(wù)器返回的地址列表向內(nèi)容源節(jié)點(diǎn)發(fā)送請求。5)內(nèi)容源終端節(jié)點(diǎn)在接收到客戶端的用戶數(shù)據(jù)請求后,根據(jù)一定原則同意部分用戶的請求。內(nèi)容源節(jié)點(diǎn)包括普通用戶節(jié)點(diǎn)、優(yōu)選用戶節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)。內(nèi)容源用戶節(jié)點(diǎn)根據(jù)請求用戶上傳帶寬優(yōu)先和新加入優(yōu)先結(jié)合的原則,有選擇地接受部分請求節(jié)點(diǎn);內(nèi)容源服務(wù)器節(jié)點(diǎn)在不超過自身負(fù)載情況下默認(rèn)接受所有節(jié)點(diǎn)請求,如本機(jī)沒有所請求內(nèi)容, 利用TCP協(xié)議從其他服務(wù)器節(jié)點(diǎn)中獲取,并緩存到本地供其他節(jié)點(diǎn)獲取。6)在內(nèi)容源終端節(jié)點(diǎn)接受請求后,新用戶將其加入伙伴終端列表,伙伴終端列表中包括一個(gè)或多個(gè)可以提供流媒體數(shù)據(jù)的內(nèi)容源終端的地址。7)根據(jù)接收請求的伙伴終端列表中的終端節(jié)點(diǎn)的情況,優(yōu)先地,新用戶通過UDP 協(xié)議向普通用戶終端節(jié)點(diǎn)獲取數(shù)據(jù);其次,通過UDP協(xié)議向優(yōu)選用戶終端獲取數(shù)據(jù);再次地,利用TCP協(xié)議向較近的服務(wù)器終端節(jié)點(diǎn);最后,利用UDP協(xié)議向較遠(yuǎn)的服務(wù)器終端節(jié)點(diǎn)獲取數(shù)據(jù)。8)客戶端新用戶在內(nèi)存中設(shè)置數(shù)據(jù)緩沖區(qū)來提前緩存一定長度的即將播放的視頻。如果新用戶緩存中內(nèi)容未滿,啟動(dòng)緩存P2P多發(fā)機(jī)制,以大于當(dāng)前播放速度一定倍數(shù)的下載速度獲取內(nèi)容,實(shí)現(xiàn)快速啟動(dòng)。9)在播放過程中,新用戶當(dāng)前播放的數(shù)據(jù)塊的后續(xù)數(shù)據(jù)塊按自然順序作為優(yōu)先級(jí)進(jìn)行獲取,組成數(shù)據(jù)塊的最小數(shù)據(jù)包按隨機(jī)順序獲取。10)當(dāng)新用戶緩存中數(shù)據(jù)低于設(shè)定刻度值,啟動(dòng)分級(jí)預(yù)警機(jī)制,由報(bào)警級(jí)別由高到底,以增加服務(wù)器TCP直連,增加優(yōu)選節(jié)點(diǎn)UDP共享,增加普通節(jié)點(diǎn)UDP共享為序,向新用戶提供內(nèi)容。11)新用戶播放緩存中的數(shù)據(jù),并將播放后和播放中的數(shù)據(jù)存到本地緩存和硬盤指定目錄。12)用戶周期性地主動(dòng)與其他伙伴節(jié)點(diǎn)交換其緩存中的數(shù)據(jù)塊信息,從其他伙伴節(jié)點(diǎn)中提前獲取未擁有的數(shù)據(jù)塊,分享在本地緩存和硬盤中擁有的其他節(jié)點(diǎn)未擁有的數(shù)據(jù)塊。13)如果用戶確認(rèn)之前連接的內(nèi)容源節(jié)點(diǎn)無法連接后,將主動(dòng)請求從其他伙伴節(jié)點(diǎn)獲取緩存中缺失的數(shù)據(jù),并周期性地聯(lián)系目錄服務(wù)器,動(dòng)態(tài)更新伙伴節(jié)點(diǎn)目錄。14)在新用戶自身播放的同時(shí),流媒體目錄服務(wù)器會(huì)導(dǎo)引其他在播放同一節(jié)目的用戶主動(dòng)連接到本用戶,向本用戶詢問擁有的數(shù)據(jù)塊。15)如果本用戶的緩存和本地硬盤存儲(chǔ)中擁有其它用戶需要的數(shù)據(jù)塊,則根據(jù)本用戶自身負(fù)載狀況,有選擇地向其它用戶返回所請求的數(shù)據(jù)塊。16)如果本用戶沒有其他用戶所請求的數(shù)據(jù)塊,返回本用戶的伙伴節(jié)點(diǎn)地址列表給其他請求用戶。17)當(dāng)用戶上下行速率達(dá)到總帶寬一定警戒比例時(shí),本用戶自發(fā)拒絕所有用戶的請求。特別地,在流媒體節(jié)目開始時(shí),用戶根據(jù)自身網(wǎng)絡(luò)狀況,主動(dòng)選擇單向直連式或者雙向共享式接入。如圖2、圖4和圖5所示,選擇服務(wù)器直連形式的客戶端用戶(一般為接入帶寬小于IMbps)將直接從服務(wù)器終端(例如流媒體邊緣服務(wù)器)處獲取穩(wěn)定的流媒體數(shù)據(jù);選擇雙向共享式的客戶端用戶,首先啟動(dòng)P2P多發(fā)訪問機(jī)制,以迅速下載部分流媒體數(shù)據(jù)以快速啟動(dòng)播放和為后續(xù)共享過程提供數(shù)據(jù)。按P2P方式接入的客戶端,一般選擇的獲取數(shù)據(jù)內(nèi)容源終端節(jié)點(diǎn)的優(yōu)先級(jí)為普通用戶終端節(jié)點(diǎn),優(yōu)選用戶終端節(jié)點(diǎn),同網(wǎng)段的終端流媒體服務(wù)器終端節(jié)點(diǎn),非同網(wǎng)段的終端流媒體服務(wù)器終端節(jié)點(diǎn)。特別地,在播放過程中,用戶預(yù)取部分流媒體數(shù)據(jù)塊存入緩存中,邊播放緩存中數(shù)據(jù),邊從其他節(jié)點(diǎn)(服務(wù)器或用戶節(jié)點(diǎn))中不斷獲取數(shù)據(jù),同時(shí)與其他用戶節(jié)點(diǎn)共享。如圖6 所示,根據(jù)不同的緩存報(bào)警機(jī)制,由報(bào)警級(jí)別由高到底,客戶端用戶選擇的數(shù)據(jù)獲取源優(yōu)先級(jí)為終端流媒體服務(wù)器節(jié)點(diǎn),優(yōu)選用戶終端節(jié)點(diǎn),普通用戶終端節(jié)點(diǎn)。流媒體數(shù)據(jù)在傳輸時(shí)被切分成固定大小的數(shù)據(jù)包,固定數(shù)量數(shù)據(jù)包形成數(shù)據(jù)塊。在與內(nèi)容源節(jié)點(diǎn)成功連接后, 用戶緩存中的數(shù)據(jù)要首先根據(jù)順序原則按播放順序的先后為優(yōu)先級(jí)獲取數(shù)據(jù)塊,而每個(gè)數(shù)據(jù)塊中的數(shù)據(jù)包根據(jù)可用性原則從不同節(jié)點(diǎn)源中以隨機(jī)順序獲取。用戶緩存中的數(shù)據(jù)在滿足播放的同時(shí),提供給其他用戶共享??傮w地,在空間上,本方案實(shí)現(xiàn)兩層P2P的構(gòu)建1)結(jié)構(gòu)化邊緣服務(wù)器P2P 優(yōu)化調(diào)度邊緣服務(wù)器節(jié)點(diǎn)資源,從超負(fù)荷服務(wù)器轉(zhuǎn)移負(fù)載給可用其他服務(wù)器節(jié)點(diǎn),實(shí)現(xiàn)負(fù)載均衡和帶寬高效利用。2)非結(jié)構(gòu)化終端用戶P2P:采用純多發(fā)送端多接收端P2P,實(shí)現(xiàn)系統(tǒng)最大擴(kuò)展性??傮w地,在時(shí)間上,本方案流媒體數(shù)據(jù)的分發(fā)可分為三個(gè)階段1)以服務(wù)器為主源的TCP分發(fā)。服務(wù)器節(jié)點(diǎn)之間進(jìn)行P2P式的內(nèi)容預(yù)分發(fā),和所有新加入節(jié)點(diǎn)從服務(wù)器獲取初始內(nèi)容源。2)服務(wù)器與用戶節(jié)點(diǎn)混合的TCP和UDP分發(fā)。隨著用戶數(shù)量的增加和用戶可共享內(nèi)容的增加,P2P網(wǎng)絡(luò)開始增長,部分節(jié)點(diǎn)仍從服務(wù)器獲取內(nèi)容,部分節(jié)點(diǎn)則可直接從其他P2P節(jié)點(diǎn)獲取所請求的媒體內(nèi)容。3)以用戶節(jié)點(diǎn)為主源的UDP分發(fā)。P2P網(wǎng)絡(luò)已經(jīng)發(fā)展成熟,可以直接支持節(jié)點(diǎn)需求。只有臨時(shí)節(jié)點(diǎn)失效才從服務(wù)器節(jié)點(diǎn)獲得支持。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。從以上的描述中,可以看出,本發(fā)明實(shí)現(xiàn)了如下技術(shù)效果針對(duì)現(xiàn)有技術(shù)存在的不足,本發(fā)明提出按需分發(fā)的云流媒體數(shù)據(jù)傳輸方法,主要實(shí)現(xiàn)傳統(tǒng)流媒體數(shù)據(jù)傳輸方法不能很好保障的如下功能1)連接方式根據(jù)用戶網(wǎng)絡(luò)帶寬情況,實(shí)現(xiàn)c/s(客戶端10/服務(wù)器)與P2P模式(對(duì)等互聯(lián))的主動(dòng)選擇;2)數(shù)據(jù)獲取方式上,利用緩存多發(fā)和緩存報(bào)警機(jī)制保證播放的連續(xù)性;幻保障流媒體數(shù)據(jù)獲取的及時(shí)性,在網(wǎng)絡(luò)抖動(dòng)和負(fù)載過重導(dǎo)致單節(jié)點(diǎn)失效的情況保證了流媒體數(shù)據(jù)的及時(shí)性和穩(wěn)定性。本發(fā)明提供的流媒體數(shù)據(jù)傳輸方法可應(yīng)用于大規(guī)模流媒體應(yīng)用和新一代云流媒體應(yīng)用,可以實(shí)現(xiàn)面向PC、IPTV機(jī)頂盒、手機(jī)、MID及其他移動(dòng)終端的高效內(nèi)容分發(fā),保障用戶穩(wěn)定、清晰、流暢的獲取流媒體數(shù)據(jù),按需獲取網(wǎng)絡(luò)直播、點(diǎn)播等流媒體服務(wù)。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種云流媒體數(shù)據(jù)傳輸方法,其特征在于,包括客戶端發(fā)起對(duì)流媒體數(shù)據(jù)的訪問;中心目錄服務(wù)器根據(jù)條件參數(shù)向所述客戶端返回一個(gè)或多個(gè)內(nèi)容源終端的地址,并將所述地址加入伙伴終端列表;所述客戶端與所述伙伴終端列表中的所述內(nèi)容源終端建立連接,并按照需求動(dòng)態(tài)選擇與所述內(nèi)容源終端的連接方式;所述客戶端從所述內(nèi)容源終端上獲取所述流媒體數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,中心目錄服務(wù)器根據(jù)條件參數(shù)向所述客戶端返回一個(gè)或多個(gè)內(nèi)容源終端的地址包括所述中心目錄服務(wù)器接收點(diǎn)播或直播內(nèi)容請求;所述中心目錄服務(wù)器將滿足所述條件參數(shù)的一個(gè)或多個(gè)所述內(nèi)容源終端的地址返回至所述客戶端;所述客戶端接收返回的所述內(nèi)容源終端的地址;其中,所述條件參數(shù)包括所述內(nèi)容源終端的位置、運(yùn)行狀態(tài)、優(yōu)先級(jí)以及提供的流媒體數(shù)據(jù)的內(nèi)容。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述中心目錄服務(wù)器根據(jù)所述條件參數(shù)來返回一個(gè)或多個(gè)所述內(nèi)容源終端的地址包括所述中心目錄服務(wù)器按照所述內(nèi)容源終端的優(yōu)先級(jí)依次返回所述內(nèi)容源終端的地址, 所述內(nèi)容源終端包括以下任意一個(gè)或多個(gè)設(shè)備普通用戶終端、優(yōu)選用戶終端以及服務(wù)器終端,其中,所述內(nèi)容源終端的優(yōu)先級(jí)通過以下公式獲得nodescore = K/ (2+rtti/500) * (minrtti/rtti) 2* (recvprecent) 2*R,其中,K為基礎(chǔ)因子常數(shù),rtti為終端節(jié)點(diǎn)間的動(dòng)態(tài)網(wǎng)絡(luò)延時(shí),minrtti為終端節(jié)點(diǎn)間的靜態(tài)最佳網(wǎng)絡(luò)延時(shí),recvpercent為終端節(jié)點(diǎn)間的數(shù)據(jù)成功接收率,R為當(dāng)前碼流量化值。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述客戶端與所述伙伴終端列表中的所述內(nèi)容源終端建立連接,并按照需求動(dòng)態(tài)選擇與所述內(nèi)容源終端的連接方式包括在所述客戶端的網(wǎng)絡(luò)帶寬低于第一預(yù)定值時(shí),所述客戶端選擇與所述伙伴終端列表中的所述服務(wù)器終端建立單向直接接入式的連接;在所述客戶端的網(wǎng)絡(luò)帶寬高于第一預(yù)定值時(shí),所述客戶端選擇與伙伴終端列表中的所述服務(wù)器終端、所述優(yōu)選用戶終端以及所述普通用戶終端建立連接,其中,所述客戶端以所述單向直接接入的方式與所述服務(wù)器終端連接,以雙向共享接入的方式與所述優(yōu)選用戶終端或者所述普通用戶終端建立連接。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述客戶端選擇與所述伙伴終端列表中的所述服務(wù)器終端建立單向直接接入式的連接包括判斷所述客戶端與所述服務(wù)器終端的訪問時(shí)延是否大于或等于預(yù)設(shè)的靜態(tài)訪問時(shí)延, 其中,在大于等于所述靜態(tài)訪問時(shí)延的情況下,所述客戶端所述服務(wù)器終端建立基于UDP協(xié)議訪問的連接;在小于所述靜態(tài)訪問時(shí)延的情況下,所述客戶端所述服務(wù)器終端建立基于TCP協(xié)議訪問的連接。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述服務(wù)器終端之間通過TCP協(xié)議建立共享互聯(lián),所述優(yōu)選用戶終端與所述普通用戶終端之間以及所述普通用戶終端彼此之間通過 TCP協(xié)議建立共享互聯(lián),所述共享互聯(lián)用于獲取P2P內(nèi)容共享。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述客戶端從所述內(nèi)容源終端上獲取所述流媒體數(shù)據(jù)包括所述客戶端按照先通過UDP協(xié)議讀取所述普通用戶終端,再通過UDP協(xié)議讀取所述優(yōu)選用戶終端,最后通過TCP協(xié)議讀取所述服務(wù)器終端的優(yōu)先級(jí)順序,來獲取所述流媒體數(shù)據(jù);將所述流媒體數(shù)據(jù)保存至所述客戶端的緩存。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在將所述流媒體數(shù)據(jù)保存至所述客戶端的緩存之后,所述方法還包括所述客戶端播放并共享所述緩存中的所述流媒體數(shù)據(jù),其中,當(dāng)所述客戶端緩存中的所述流媒體數(shù)據(jù)大小低于第二預(yù)定值時(shí),所述客戶端選擇向所述服務(wù)器終端讀取流媒體數(shù)據(jù);當(dāng)所述客戶端緩存中的所述流媒體數(shù)據(jù)大小處于所述第二預(yù)定值和第三預(yù)定值之間時(shí),所述客戶端選擇向所述服務(wù)器終端、所述優(yōu)選用戶終端以及所述普通用戶終端中的任意一個(gè)終端讀取流媒體數(shù)據(jù);當(dāng)所述客戶端緩存中的所述流媒體數(shù)據(jù)大小超過所述第三預(yù)定值時(shí),所述客戶端選擇向所述普通客戶端讀取流媒體數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,讀取流媒體數(shù)據(jù)的步驟包括預(yù)先將所述流媒體數(shù)據(jù)按照播放順序劃分成數(shù)據(jù)塊,每個(gè)所述數(shù)據(jù)塊包括一個(gè)或多個(gè)數(shù)據(jù)包;所述客戶端從所述內(nèi)容源終端上按照隨機(jī)順序獲取一個(gè)或多個(gè)所述數(shù)據(jù)包,并將所述流媒體數(shù)據(jù)以數(shù)據(jù)包為單位進(jìn)行共享;所述客戶端根據(jù)各個(gè)所述數(shù)據(jù)包的索引編號(hào)將獲得的一個(gè)或多個(gè)所述數(shù)據(jù)包進(jìn)行排序組合,以獲取完整的所述流媒體數(shù)據(jù)。
10.根據(jù)權(quán)利要求1-9中任一項(xiàng)所述的方法,其特征在于,在所述客戶端從所述內(nèi)容源終端上獲取所述流媒體數(shù)據(jù)之前,所述方法還包括所述內(nèi)容源終端向滿足以下任意一個(gè)或多個(gè)條件的所述客戶端優(yōu)先上傳所述流媒體數(shù)據(jù),所述條件包括所述客戶端需要上傳的所述流媒體數(shù)據(jù)最多;所述客戶端與所述內(nèi)容源終端處于相同的網(wǎng)段;所述客戶端為新加入的終端節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求1-9中任一項(xiàng)所述的方法,其特征在于,在所述客戶端根據(jù)條件參數(shù)在中心目錄服務(wù)器中獲取一個(gè)或多個(gè)內(nèi)容源終端的地址,并將所述地址加入所述客戶端的伙伴終端列表之后,所述方法還包括按照預(yù)定周期來定期更新所述伙伴終端列表,并周期性的共享所述伙伴終端列表中所述內(nèi)容源終端的終端數(shù)據(jù)。
12.—種云流媒體數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括中心目錄服務(wù)器,用于保存所有內(nèi)容源終端的地址以及伙伴終端列表;客戶端,用于與所述伙伴終端列表中的所述內(nèi)容源終端建立連接,以獲取所述流媒體數(shù)據(jù),并按照需求動(dòng)態(tài)選擇與所述內(nèi)容源終端的連接方式;其中,所述中心目錄服務(wù)器根據(jù)條件參數(shù)向所述客戶端返回一個(gè)或多個(gè)所述內(nèi)容源終端的地址,并將所述地址加入伙伴終端列表。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述客戶端包括發(fā)射裝置,用于向所述中心目錄服務(wù)器發(fā)送點(diǎn)播或直播內(nèi)容請求;接收裝置,用于接收所述中心目錄服務(wù)器中滿足所述條件參數(shù)的一個(gè)或多個(gè)所述內(nèi)容源終端的地址;其中,所述條件參數(shù)包括所述內(nèi)容源終端的位置、運(yùn)行狀態(tài)、優(yōu)先級(jí)以及提供的流媒體數(shù)據(jù)的內(nèi)容。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述中心目錄服務(wù)器包括第一處理裝置,用于按照所述內(nèi)容源終端的優(yōu)先級(jí)依次返回所述內(nèi)容源終端的地址, 所述內(nèi)容源終端包括以下任意一個(gè)或多個(gè)設(shè)備普通用戶終端、優(yōu)選用戶終端以及服務(wù)器終端,其中,所述內(nèi)容源終端的優(yōu)先級(jí)通過以下公式獲得nodescore = K/ (2+rtti/500) * (minrtti/rtti) 2* (recvprecent) 2*R,其中,K為基礎(chǔ)因子常數(shù),rtti為終端節(jié)點(diǎn)間的動(dòng)態(tài)網(wǎng)絡(luò)延時(shí),minrtti為終端節(jié)點(diǎn)間的靜態(tài)最佳網(wǎng)絡(luò)延時(shí),recvpercent為終端節(jié)點(diǎn)間的數(shù)據(jù)成功接收率,R為當(dāng)前碼流量化值。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述客戶端還包括第二處理裝置,用于在所述客戶端的網(wǎng)絡(luò)帶寬低于第一預(yù)定值時(shí),所述客戶端選擇與所述伙伴終端列表中的所述服務(wù)器終端建立單向直接接入式的連接;在所述客戶端的網(wǎng)絡(luò)帶寬高于第一預(yù)定值時(shí),所述客戶端選擇與伙伴終端列表中的所述服務(wù)器終端、所述優(yōu)選用戶終端以及所述普通用戶終端建立連接,其中,所述客戶端以所述單向直接接入的方式與所述服務(wù)器終端連接,以雙向共享接入的方式與所述優(yōu)選用戶終端或者所述普通用戶終端建立連接,在所述客戶端與所述服務(wù)器終端的訪問時(shí)延大于等于預(yù)設(shè)的靜態(tài)訪問時(shí)延的情況下,所述客戶端所述服務(wù)器終端建立基于UDP協(xié)議訪問的連接,否則,所述客戶端所述服務(wù)器終端建立基于TCP協(xié)議訪問的連接。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述客戶端還包括讀取裝置,用于按照先通過UDP協(xié)議讀取所述普通用戶終端,再通過UDP協(xié)議讀取所述優(yōu)選用戶終端,最后通過TCP協(xié)議讀取所述服務(wù)器終端的優(yōu)先級(jí)順序,來獲取所述流媒體數(shù)據(jù),并將所述流媒體數(shù)據(jù)保存至緩存;播放裝置,用于播放所述緩存中的所述流媒體數(shù)據(jù),其中,當(dāng)所述客戶端緩存中的所述流媒體數(shù)據(jù)大小低于第二預(yù)定值時(shí),所述客戶端選擇向所述服務(wù)器終端讀取流媒體數(shù)據(jù); 當(dāng)所述客戶端緩存中的所述流媒體數(shù)據(jù)大小處于所述第二預(yù)定值和第三預(yù)定值之間時(shí),所述客戶端選擇向所述服務(wù)器終端、所述優(yōu)選用戶終端以及所述普通用戶終端中的任意一個(gè)終端讀取流媒體數(shù)據(jù);當(dāng)所述客戶端緩存中的所述流媒體數(shù)據(jù)大小超過所述第三預(yù)定值時(shí),所述客戶端選擇向所述普通客戶端讀取流媒體數(shù)據(jù)。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述客戶端還包括第三處理裝置,與所述內(nèi)容源終端連接,用于從所述內(nèi)容源終端上按照隨機(jī)順序獲取一個(gè)或多個(gè)所述數(shù)據(jù)包,并將所述流媒體數(shù)據(jù)以數(shù)據(jù)包為單位進(jìn)行共享;并根據(jù)各個(gè)所述數(shù)據(jù)包的索引編號(hào)將獲得的一個(gè)或多個(gè)所述數(shù)據(jù)包進(jìn)行排序組合,以獲取完整的所述流媒體數(shù)據(jù),其中,所述流媒體數(shù)據(jù)按照播放順序劃分成數(shù)據(jù)塊,每個(gè)所述數(shù)據(jù)塊包括一個(gè)或多個(gè)數(shù)據(jù)包。
18.根據(jù)權(quán)利要求14-17中任一項(xiàng)所述的系統(tǒng),其特征在于,所述服務(wù)器終端之間通過 TCP協(xié)議建立共享互聯(lián),所述優(yōu)選用戶終端與所述普通用戶終端之間以及所述普通用戶終端彼此之間通過TCP協(xié)議建立共享互聯(lián),所述共享互聯(lián)用于獲取P2P內(nèi)容共享。
全文摘要
本發(fā)明公開了一種云流媒體數(shù)據(jù)傳輸方法及系統(tǒng)。其中,該方法包括客戶端發(fā)起對(duì)流媒體數(shù)據(jù)的訪問;中心目錄服務(wù)器根據(jù)條件參數(shù)向客戶端返回一個(gè)或多個(gè)內(nèi)容源終端的地址,并將地址加入伙伴終端列表;客戶端與伙伴終端列表中的內(nèi)容源終端建立連接,并按照需求動(dòng)態(tài)選擇與內(nèi)容源終端的連接方式;客戶端從內(nèi)容源終端上獲取流媒體數(shù)據(jù)。通過本發(fā)明,實(shí)現(xiàn)了通過基于客戶端自身網(wǎng)絡(luò)狀況的動(dòng)態(tài)數(shù)據(jù)來獲取實(shí)現(xiàn)按需的流媒體數(shù)據(jù)分發(fā),解決了相關(guān)技術(shù)的流媒體傳輸方法無法保障流媒體數(shù)據(jù)傳輸?shù)募皶r(shí)性和穩(wěn)定性的問題,能夠?qū)崿F(xiàn)在出現(xiàn)網(wǎng)絡(luò)抖動(dòng)或單節(jié)點(diǎn)失效等故障的時(shí)候,保障流媒體數(shù)據(jù)獲取的及時(shí)性和穩(wěn)定性。
文檔編號(hào)H04L29/08GK102355448SQ20111018028
公開日2012年2月15日 申請日期2011年6月29日 優(yōu)先權(quán)日2011年6月29日
發(fā)明者衛(wèi)國, 衛(wèi)小剛, 王默哲, 陳志佳 申請人:北京原力創(chuàng)新科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鄂尔多斯市| 扶沟县| 志丹县| 德惠市| 江永县| 吴旗县| 广水市| 都匀市| 庆城县| 沧源| 紫阳县| 米脂县| 师宗县| 斗六市| 佛坪县| 建平县| 日土县| 宿迁市| 碌曲县| 丘北县| 新巴尔虎左旗| 阳西县| 巴里| 新安县| 永吉县| 突泉县| 辽宁省| 保山市| 太和县| 枞阳县| 尼玛县| 乌兰县| 泾阳县| 柘荣县| 兴安盟| 芦溪县| 梨树县| 平利县| 彭水| 湖北省| 新兴县|