專利名稱:基于p2p流媒體的二次編碼播放方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)流媒體傳輸技術(shù)領(lǐng)域,特別涉及一種基于P2P流媒體的二次編碼 播放方法及系統(tǒng)。
背景技術(shù):
對(duì)等網(wǎng)絡(luò)(Peer to peer network)是近幾年新興的網(wǎng)絡(luò)技術(shù),相對(duì)于傳統(tǒng)的C/S 模式,P2P模式一個(gè)非常顯著的特點(diǎn)就是節(jié)點(diǎn)無(wú)需依賴集中式服務(wù)器資源,各節(jié)點(diǎn)可以直接 進(jìn)行通信。每個(gè)節(jié)點(diǎn)具有相同的地位,既可以請(qǐng)求服務(wù),也可以提供服務(wù),同時(shí)扮演著C/S 模式中服務(wù)器和客戶端的雙重角色,甚至還可以具有路由器和高速緩存的功能。在P2P模 式下,由于每個(gè)節(jié)點(diǎn)都具有客戶端和服務(wù)器的功能,這樣,每個(gè)節(jié)點(diǎn)在從別的節(jié)點(diǎn)接收數(shù)據(jù) 流的同時(shí)還向其他節(jié)點(diǎn)發(fā)送數(shù)據(jù)流。由于這個(gè)特點(diǎn),P2P網(wǎng)絡(luò)技術(shù)目前被廣泛應(yīng)用于互聯(lián) 網(wǎng)上大規(guī)模網(wǎng)絡(luò)流媒體播放系統(tǒng)。異構(gòu)網(wǎng)絡(luò)特點(diǎn)目前網(wǎng)絡(luò)的發(fā)展呈現(xiàn)規(guī)模性、異構(gòu)性、動(dòng)態(tài)性的特點(diǎn)。隨著網(wǎng)絡(luò)技 術(shù)迅猛發(fā)展,網(wǎng)絡(luò)的異構(gòu)性會(huì)越來(lái)越突出。就有線網(wǎng)絡(luò)和無(wú)線網(wǎng)絡(luò)自身而言,也存在異構(gòu)。 尤其是近年來(lái)3G、WLAN、WiMAX, UffB等各種無(wú)線技術(shù)紛紛涌現(xiàn),未來(lái)網(wǎng)絡(luò)的異構(gòu)性更加突 出。不僅在無(wú)線接入方面具有這樣的趨勢(shì),在終端技術(shù)、網(wǎng)絡(luò)技術(shù)和業(yè)務(wù)平臺(tái)技術(shù)等方面 異構(gòu)化、多樣化的趨勢(shì)也愈加明顯。針對(duì)互聯(lián)網(wǎng)上不同類型客戶端的接入,如ADSL用戶、 Modem用戶、無(wú)線網(wǎng)絡(luò)用戶等,其網(wǎng)絡(luò)環(huán)境各不相同,其各個(gè)節(jié)點(diǎn)在P2P流媒體網(wǎng)絡(luò)中的帶 寬能力也各不相同,有些節(jié)點(diǎn)帶寬能力較強(qiáng),稱為強(qiáng)節(jié)點(diǎn)(強(qiáng)客戶端),有些較差,稱為弱節(jié) 點(diǎn)(弱客戶端),弱節(jié)點(diǎn)一般在P2P網(wǎng)絡(luò)中處于葉子節(jié)點(diǎn)。傳統(tǒng)的P2P流媒體直播系統(tǒng)中傳播算法對(duì)節(jié)點(diǎn)間存在的異構(gòu)性均考慮不足,即無(wú) 論節(jié)點(diǎn)的網(wǎng)絡(luò)訪問(wèn)帶寬如何,傳輸?shù)墓?jié)目源帶寬不會(huì)因?yàn)榻邮展?jié)點(diǎn)的帶寬能力受限而降 低。傳統(tǒng)的P2P流媒體直播數(shù)據(jù)來(lái)源于父節(jié)點(diǎn),數(shù)據(jù)傳輸策略上主要考慮不同節(jié)點(diǎn)之間的 數(shù)據(jù)傳輸網(wǎng)絡(luò)服務(wù)質(zhì)量(Quality of Service, Qos)保障,例如防止網(wǎng)絡(luò)抖動(dòng)、丟包重傳機(jī) 制、低延時(shí)效果等方法,但這些策略并未考慮低帶寬弱客戶端的收看能力,對(duì)于弱客戶端, 其收看能力會(huì)因?yàn)橄滦袔挼南拗贫嬖诖罅康膩G包_重傳_再丟包的現(xiàn)象,最終導(dǎo)致弱 節(jié)點(diǎn)客戶端無(wú)法正常收看。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問(wèn)題本發(fā)明要解決的技術(shù)問(wèn)題是在P2P流媒體直播過(guò)程中,在節(jié)點(diǎn)接收帶寬受限的 情況下,如何避免丟包_重傳_再丟包導(dǎo)致無(wú)法正常播放的問(wèn)題。( 二 )技術(shù)方案一種基于P2P流媒體的二次編碼播放方法,包括以下步驟Sl 當(dāng)前節(jié)點(diǎn)向鄰居節(jié)點(diǎn)發(fā)出播放連接請(qǐng)求,并播放鄰居節(jié)點(diǎn)發(fā)來(lái)的媒體流;S2 播放過(guò)程中,所述當(dāng)前節(jié)點(diǎn)實(shí)時(shí)估算自己的接收帶寬;
S3:若所述接收帶寬低于預(yù)定值,則當(dāng)前節(jié)點(diǎn)請(qǐng)求其鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn) 行二次編碼;S4:所述鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼后,將二次編碼后的媒體流傳輸 給當(dāng)前節(jié)點(diǎn)。其中,所述步驟Sl之前還包括當(dāng)前節(jié)點(diǎn)估算各個(gè)鄰居節(jié)點(diǎn)的傳輸帶寬的步驟所述當(dāng)前節(jié)點(diǎn)定期的向全部鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求;所述當(dāng)前節(jié)點(diǎn)接收所述鄰居節(jié)點(diǎn)在兩次請(qǐng)求的間隔t內(nèi)發(fā)來(lái)的數(shù)據(jù)包,將該數(shù)據(jù) 包數(shù)量作為該鄰居節(jié)點(diǎn)傳輸帶寬;在規(guī)定的時(shí)間T內(nèi),T > t,統(tǒng)計(jì)發(fā)送數(shù)據(jù)包數(shù)量大于或等于請(qǐng)求的數(shù)據(jù)包總數(shù)的 鄰居節(jié)點(diǎn)。其中,當(dāng)鄰居節(jié)點(diǎn)在一次請(qǐng)求后發(fā)來(lái)的數(shù)據(jù)包數(shù)量等于請(qǐng)求的數(shù)據(jù)包的數(shù)量時(shí), 所述當(dāng)前節(jié)點(diǎn)在下次請(qǐng)求時(shí)增加請(qǐng)求數(shù)據(jù)包的數(shù)量。其中,所述步驟S3中請(qǐng)求所述統(tǒng)計(jì)的鄰居節(jié)點(diǎn)中傳輸帶寬最大的鄰居節(jié)點(diǎn)進(jìn)行 二次編碼,并通過(guò)所述請(qǐng)求將自己的接收帶寬通知給所述傳輸帶寬最大的鄰居節(jié)點(diǎn)。其中,所述步驟S2中當(dāng)前節(jié)點(diǎn)通過(guò)實(shí)時(shí)統(tǒng)計(jì)媒體流數(shù)據(jù)接收緩沖區(qū)中的丟包率 估算自己的接收帶寬。其中,所述步驟S4中對(duì)播放的媒體流二次編碼的步驟包括
對(duì)播放的媒體流進(jìn)行下采樣;按所述當(dāng)前節(jié)點(diǎn)可接收帶寬對(duì)下采樣后的媒體流進(jìn)行重新編碼。其中,所述預(yù)定值為媒體流發(fā)布源的發(fā)送帶寬。其中,若進(jìn)行二次編碼的鄰居節(jié)點(diǎn)退出P2P流媒體直播網(wǎng)絡(luò),則所述當(dāng)前節(jié)點(diǎn)重 復(fù)步驟S3和S4。一種基于P2P流媒體的二次編碼播放系統(tǒng),包括播放請(qǐng)求模塊,用于當(dāng)前節(jié)點(diǎn)向鄰居節(jié)點(diǎn)發(fā)出播放連接請(qǐng)求,并播放鄰居節(jié)點(diǎn)發(fā) 來(lái)的媒體流;接收帶寬估算模塊,用于在播放過(guò)程中,所述當(dāng)前節(jié)點(diǎn)實(shí)時(shí)估算自己的接收帶 寬;二次編碼請(qǐng)求模塊,用于在所述接收帶寬低于預(yù)定值時(shí),當(dāng)前節(jié)點(diǎn)請(qǐng)求其鄰居節(jié) 點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼;二次編碼模塊,用于所述鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼后,將二次編碼 后的媒體流傳輸給當(dāng)前節(jié)點(diǎn)。其中,還包括鄰居節(jié)點(diǎn)傳輸帶寬估算模塊,具體包括定期請(qǐng)求模塊,用于所述當(dāng)前節(jié)點(diǎn)定期的向鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求;數(shù)據(jù)包接收模塊,用于所述當(dāng)前節(jié)點(diǎn)接收所述鄰居節(jié)點(diǎn)在兩次請(qǐng)求的間隔t內(nèi)發(fā) 來(lái)的數(shù)據(jù)包,將該數(shù)據(jù)包數(shù)量作為該鄰居節(jié)點(diǎn)傳輸帶寬;數(shù)據(jù)包數(shù)量判斷模塊,用于在規(guī)定的時(shí)間T內(nèi),T >t,統(tǒng)計(jì)發(fā)送數(shù)據(jù)包數(shù)量大于或 等于請(qǐng)求的數(shù)據(jù)包總數(shù)的鄰居節(jié)點(diǎn)。(三)有益效果本發(fā)明通過(guò)請(qǐng)求傳輸帶寬較強(qiáng)的節(jié)點(diǎn)對(duì)媒體流進(jìn)行二次編碼,在將二次編碼后的媒體流傳送給接收帶寬較弱的節(jié)點(diǎn),避免了在接收帶寬較弱的節(jié)點(diǎn)處出現(xiàn)丟包-重傳-再 丟包的現(xiàn)象,使得在劇烈變化的網(wǎng)絡(luò)環(huán)境下,仍能確保客戶端享受到連續(xù)的、平穩(wěn)的、高質(zhì) 量的流媒體服務(wù)。
圖1是本發(fā)明實(shí)施例的基于P2P流媒體的二次編碼播放方法流程圖;圖2是圖1中強(qiáng)節(jié)點(diǎn)對(duì)弱節(jié)點(diǎn)進(jìn)行二次編碼時(shí)的示意圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。以下實(shí)施 例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。本發(fā)明實(shí)施例中,判斷節(jié)點(diǎn)的帶寬強(qiáng)弱,通過(guò)接收帶寬小的節(jié)點(diǎn)(簡(jiǎn)稱弱節(jié)點(diǎn),一 般指接收帶寬小于媒體流發(fā)布源的發(fā)送帶寬的節(jié)點(diǎn))請(qǐng)求傳輸帶寬大的節(jié)點(diǎn)(簡(jiǎn)稱強(qiáng)節(jié) 點(diǎn))對(duì)流媒體進(jìn)行二次編碼,然后強(qiáng)節(jié)點(diǎn)將二次編碼后的媒體流傳輸給弱節(jié)點(diǎn),從而避免 丟包_重傳_再丟包的現(xiàn)象,達(dá)到流暢觀看視頻的目的。具體方法流程如圖1所示。步驟S101,加入P2P媒體流直播網(wǎng)絡(luò)的當(dāng)前節(jié)點(diǎn)估算其鄰居節(jié)點(diǎn)的傳輸帶寬,其 中,傳輸帶寬包括鄰居節(jié)點(diǎn)的數(shù)據(jù)處理能力以及鄰居的處理負(fù)載等因素。具體估算方法如 下在P2P視頻直播過(guò)程中,當(dāng)前節(jié)點(diǎn)定期的向鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求。鄰居節(jié)點(diǎn)在 當(dāng)前節(jié)點(diǎn)兩次請(qǐng)求的間隔內(nèi)返回給當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)包的最大數(shù)量作為鄰居節(jié)點(diǎn)的網(wǎng)絡(luò)傳 輸帶寬。當(dāng)前節(jié)點(diǎn)在每次執(zhí)行調(diào)度算法之前都需要計(jì)算每個(gè)鄰居節(jié)點(diǎn)的傳輸帶寬。鄰居節(jié) 點(diǎn)傳輸帶寬的計(jì)算公式如下
門,· [^rec if {N <= Nrec)^ = (θ IRNreq > NrJ其中Cfl^nd表示第i個(gè)鄰居節(jié)點(diǎn)的傳輸帶寬,Nrai表示當(dāng)前節(jié)點(diǎn)請(qǐng)求的鄰居節(jié)點(diǎn)的 發(fā)包個(gè)數(shù),Nre。表示實(shí)際接收的數(shù)據(jù)包個(gè)數(shù),如果在指定的時(shí)間T (如5秒)內(nèi),接收的數(shù)據(jù) 包個(gè)數(shù)大于或等于請(qǐng)求的數(shù)據(jù)包個(gè)數(shù),即Nra ^ Nrai,則表示當(dāng)前鄰居節(jié)點(diǎn)具有的傳輸帶寬 為Nra,如果接收的數(shù)據(jù)包個(gè)數(shù)小于請(qǐng)求的數(shù)據(jù)包個(gè)數(shù),即Nre。< Ν_,則表示當(dāng)前鄰居節(jié)點(diǎn) 的帶寬上行發(fā)送能力不夠,需要減小Nrai重新測(cè)試,一直到Nra彡Nreq為止,。則Nra表示當(dāng) 前鄰居節(jié)點(diǎn)的上行帶寬能力。當(dāng)前節(jié)點(diǎn)通過(guò)比較接收到的數(shù)據(jù)包數(shù)量和請(qǐng)求的數(shù)據(jù)包數(shù)量 來(lái)動(dòng)態(tài)更改鄰居的傳輸帶寬,如果指定的時(shí)間內(nèi)接收的數(shù)據(jù)包數(shù)量不能夠達(dá)到請(qǐng)求數(shù)據(jù)包 的數(shù)量,那么鄰居的節(jié)點(diǎn)的帶寬較低,上行傳輸帶寬不能滿足要求,鄰居的傳輸能力降低。 如果接收到的數(shù)據(jù)包數(shù)量大于或等于請(qǐng)求的包的數(shù)量,這時(shí)要判斷請(qǐng)求的數(shù)據(jù)包的數(shù)量是 否等于鄰居節(jié)點(diǎn)的發(fā)送數(shù)據(jù)包的數(shù)量,如果等于,則說(shuō)明鄰居現(xiàn)在可能有原始碼流以上的 能力,那么就要對(duì)鄰居的帶寬動(dòng)態(tài)增長(zhǎng)。對(duì)鄰居節(jié)點(diǎn)最大帶寬的限制,可以減輕對(duì)某一節(jié)點(diǎn) 的依賴程度,減少該鄰居節(jié)點(diǎn)出現(xiàn)異常對(duì)當(dāng)前節(jié)點(diǎn)的影響。步驟S102,當(dāng)前節(jié)點(diǎn)向各鄰居節(jié)點(diǎn)發(fā)出播放連接請(qǐng)求,建立連接后,播放鄰居節(jié)點(diǎn) 發(fā)來(lái)的媒體流。步驟S103,在播放過(guò)程中,當(dāng)前節(jié)點(diǎn)實(shí)時(shí)地估算自己的接收帶寬,確定自己的帶寬大小,以確定自己是否為弱節(jié)點(diǎn)。估算方式如下為保證播放的順利,本系統(tǒng)采用接收緩沖區(qū)和播放緩沖區(qū)雙緩沖機(jī)制,用來(lái)控制 數(shù)據(jù)包的接收和播放調(diào)度。接收緩沖區(qū)中接收多個(gè)上層節(jié)點(diǎn)傳過(guò)來(lái)的流媒體數(shù)據(jù),并按序 列號(hào)進(jìn)行數(shù)據(jù)重新排序,如果在一定時(shí)間內(nèi)數(shù)據(jù)未完全到達(dá),則請(qǐng)求上層節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包 重傳,找回網(wǎng)絡(luò)丟失的數(shù)據(jù)包。另外,接收緩沖區(qū)還能根據(jù)接收數(shù)據(jù)的速度和數(shù)量來(lái)統(tǒng)計(jì)本 節(jié)點(diǎn)的數(shù)據(jù)包丟包率,用來(lái)表示本節(jié)點(diǎn)網(wǎng)絡(luò)可用帶寬狀態(tài),如果統(tǒng)計(jì)丟包率很低或者為0, 則表示本節(jié)點(diǎn)的帶寬能力較強(qiáng),可正常觀看節(jié)目;如果一段時(shí)間統(tǒng)計(jì)丟包率很高,則表示本 節(jié)點(diǎn)的帶寬能力較差,需要請(qǐng)求更低帶寬的編碼碼流,根據(jù)統(tǒng)計(jì)的狀態(tài)來(lái)動(dòng)態(tài)調(diào)整連接策 略。步驟S104,根據(jù)S103中帶寬的大小判斷當(dāng)前節(jié)點(diǎn)是否為弱節(jié)點(diǎn),即接收帶寬是否 低于預(yù)定值,該預(yù)定值一般為媒體流發(fā)布源的發(fā)送帶寬,若是,則執(zhí)行步驟S105,否則執(zhí)行 步驟S106。判斷過(guò)程如下步驟S105,若該當(dāng)前節(jié)點(diǎn)不為弱節(jié)點(diǎn),則按媒體流發(fā)布源的發(fā)送帶寬播放媒體流。步驟S106,當(dāng)前節(jié)點(diǎn)若為弱節(jié)點(diǎn),其統(tǒng)計(jì)的帶寬能力遠(yuǎn)遠(yuǎn)小于目前傳過(guò)來(lái)的媒體 流帶寬,該弱節(jié)點(diǎn)向鄰居節(jié)點(diǎn)中的強(qiáng)節(jié)點(diǎn)提出二次編碼請(qǐng)求,優(yōu)選請(qǐng)求最近最強(qiáng)帶寬的節(jié) 點(diǎn)進(jìn)行二次編碼,并通過(guò)所述請(qǐng)求將自己的接收帶寬通知給所述強(qiáng)節(jié)點(diǎn)。步驟S107,強(qiáng)節(jié)點(diǎn)按若弱點(diǎn)的帶寬進(jìn)行二次編碼后的數(shù)據(jù)傳遞到弱節(jié)點(diǎn)播放。如 圖2所示,為對(duì)音頻進(jìn)行二次編碼的數(shù)據(jù)調(diào)度過(guò)程示意圖。選用原始發(fā)送帶寬為512kbits/ s,此傳輸帶寬對(duì)于目前互聯(lián)網(wǎng)上大多數(shù)用戶(如ADSL用戶)基本可以滿足其正常觀看要 求,但對(duì)于很多弱節(jié)點(diǎn)客戶端(如電話Modem上網(wǎng)用戶、無(wú)線用戶),其可用帶寬低至幾十 k,原始的512kbits/s多媒體數(shù)據(jù)大大超過(guò)其接收能力,此時(shí)在弱節(jié)點(diǎn)的請(qǐng)求下,強(qiáng)節(jié)點(diǎn)對(duì) 音頻媒體流進(jìn)行下采樣,然后按弱節(jié)點(diǎn)可接收帶寬56kbits/s對(duì)下采樣后的媒體流進(jìn)行重 新編碼,并將編碼后的媒體流發(fā)送給弱節(jié)點(diǎn)。步驟S108,弱節(jié)點(diǎn)接收到強(qiáng)節(jié)點(diǎn)發(fā)來(lái)的二次編碼后的媒體流,并播放。步驟S109,在播放過(guò)程中,若進(jìn)行二次編碼的強(qiáng)節(jié)點(diǎn)退出該P(yáng)2P媒體流直播網(wǎng)絡(luò), 則弱節(jié)點(diǎn)從鄰居節(jié)點(diǎn)中重新請(qǐng)求強(qiáng)節(jié)點(diǎn)進(jìn)行媒體流二次編碼,即返回步驟S106執(zhí)行,否則 一直執(zhí)行步驟S108直到播放完成。本發(fā)明還公開了一種基于P2P流媒體的二次編碼播放系統(tǒng)系統(tǒng),包括播放請(qǐng)求 模塊,用于當(dāng)前節(jié)點(diǎn)向鄰居節(jié)點(diǎn)發(fā)出播放連接請(qǐng)求,并播放媒體流;接收帶寬估算模塊,用 于在播放過(guò)程中,所述當(dāng)前節(jié)點(diǎn)實(shí)時(shí)估算自己的接收帶寬;二次編碼請(qǐng)求模塊,用于在所述 接收帶寬低于預(yù)定值時(shí),當(dāng)前節(jié)點(diǎn)請(qǐng)求其鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼;二次編 碼模塊,用于所述鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼后,將二次編碼后的媒體流傳輸 給當(dāng)前節(jié)點(diǎn)。其中,還包括鄰居節(jié)點(diǎn)傳輸帶寬估算模塊,具體包括定期請(qǐng)求模塊,用于所述當(dāng) 前節(jié)點(diǎn)定期的向鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求;數(shù)據(jù)包接收模塊,用于所述當(dāng)前節(jié)點(diǎn)接收所述鄰 居節(jié)點(diǎn)在兩次請(qǐng)求的間隔之間發(fā)來(lái)的數(shù)據(jù)包;數(shù)據(jù)報(bào)數(shù)量判斷模塊,用于在規(guī)定的時(shí)間內(nèi) 比較若鄰居節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)包數(shù)量是否大于等于請(qǐng)求的數(shù)據(jù)包的數(shù)量,若是,則將該鄰居 節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)包數(shù)量作為其傳輸帶寬。以上實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有 等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
一種基于P2P流媒體的二次編碼播放方法,其特征在于,包括以下步驟S1當(dāng)前節(jié)點(diǎn)向鄰居節(jié)點(diǎn)發(fā)出播放連接請(qǐng)求,并播放鄰居節(jié)點(diǎn)發(fā)來(lái)的媒體流;S2播放過(guò)程中,所述當(dāng)前節(jié)點(diǎn)實(shí)時(shí)估算自己的接收帶寬;S3若所述接收帶寬低于預(yù)定值,則當(dāng)前節(jié)點(diǎn)請(qǐng)求其鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼;S4所述鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼后,將二次編碼后的媒體流傳輸給當(dāng)前節(jié)點(diǎn)。
2.如權(quán)利要求1所述的基于P2P流媒體的二次編碼播放方法,其特征在于,所述步驟 Sl之前還包括當(dāng)前節(jié)點(diǎn)估算各個(gè)鄰居節(jié)點(diǎn)的傳輸帶寬的步驟所述當(dāng)前節(jié)點(diǎn)定期的向全部鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求;所述當(dāng)前節(jié)點(diǎn)接收所述鄰居節(jié)點(diǎn)在兩次請(qǐng)求的間隔t內(nèi)發(fā)來(lái)的數(shù)據(jù)包,將該數(shù)據(jù)包數(shù) 量作為該鄰居節(jié)點(diǎn)傳輸帶寬;在規(guī)定的時(shí)間T內(nèi),T > t,統(tǒng)計(jì)發(fā)送數(shù)據(jù)包數(shù)量大于或等于請(qǐng)求的數(shù)據(jù)包總數(shù)的鄰居 節(jié)點(diǎn)。
3.如權(quán)利要求2所述的基于P2P流媒體的二次編碼播放方法,其特征在于,當(dāng)鄰居節(jié)點(diǎn) 在一次請(qǐng)求后發(fā)來(lái)的數(shù)據(jù)包數(shù)量等于請(qǐng)求的數(shù)據(jù)包的數(shù)量時(shí),所述當(dāng)前節(jié)點(diǎn)在下次請(qǐng)求時(shí) 增加請(qǐng)求數(shù)據(jù)包的數(shù)量。
4.如權(quán)利要求2所述的基于P2P流媒體的二次編碼播放方法,其特征在于,所述步驟 S3中請(qǐng)求所述統(tǒng)計(jì)的鄰居節(jié)點(diǎn)中傳輸帶寬最大的鄰居節(jié)點(diǎn)進(jìn)行二次編碼,并通過(guò)所述請(qǐng)求 將自己的接收帶寬通知給所述傳輸帶寬最大的鄰居節(jié)點(diǎn)。
5.如權(quán)利要求1所述的基于P2P流媒體的二次編碼播放方法,其特征在于,所述步驟 S2中當(dāng)前節(jié)點(diǎn)通過(guò)實(shí)時(shí)統(tǒng)計(jì)媒體流數(shù)據(jù)接收緩沖區(qū)中的丟包率估算自己的接收帶寬。
6.如權(quán)利要求1所述的基于P2P流媒體的二次編碼播放方法,其特征在于,所述步驟 S4中對(duì)播放的媒體流二次編碼的步驟包括對(duì)播放的媒體流進(jìn)行下采樣;按所述當(dāng)前節(jié)點(diǎn)可接收帶寬對(duì)下采樣后的媒體流進(jìn)行重新編碼。
7.如權(quán)利要求1所述的基于P2P流媒體的二次編碼播放方法,其特征在于,所述預(yù)定值 為媒體流發(fā)布源的發(fā)送帶寬。
8.如權(quán)利要求1 7中任一項(xiàng)所述的基于P2P流媒體的二次編碼播放方法,其特征在 于,若進(jìn)行二次編碼的鄰居節(jié)點(diǎn)退出P2P流媒體直播網(wǎng)絡(luò),則所述當(dāng)前節(jié)點(diǎn)重復(fù)步驟S3和 S4。
9.一種基于P2P流媒體的二次編碼播放系統(tǒng),其特征在于,包括播放請(qǐng)求模塊,用于當(dāng)前節(jié)點(diǎn)向鄰居節(jié)點(diǎn)發(fā)出播放連接請(qǐng)求,并播放鄰居節(jié)點(diǎn)發(fā)來(lái)的 媒體流;接收帶寬估算模塊,用于在播放過(guò)程中,所述當(dāng)前節(jié)點(diǎn)實(shí)時(shí)估算自己的接收帶寬;二次編碼請(qǐng)求模塊,用于在所述接收帶寬低于預(yù)定值時(shí),當(dāng)前節(jié)點(diǎn)請(qǐng)求其鄰居節(jié)點(diǎn)對(duì) 播放的媒體流進(jìn)行二次編碼;二次編碼模塊,用于所述鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼后,將二次編碼后的 媒體流傳輸給當(dāng)前節(jié)點(diǎn)。
10.如權(quán)利要求9所述的基于P2P流媒體的二次編碼播放系統(tǒng),其特征在于,還包括鄰 居節(jié)點(diǎn)傳輸帶寬估算模塊,具體包括定期請(qǐng)求模塊,用于所述當(dāng)前節(jié)點(diǎn)定期的向鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù)請(qǐng)求; 數(shù)據(jù)包接收模塊,用于所述當(dāng)前節(jié)點(diǎn)接收所述鄰居節(jié)點(diǎn)在兩次請(qǐng)求的間隔t內(nèi)發(fā)來(lái)的 數(shù)據(jù)包,將該數(shù)據(jù)包數(shù)量作為該鄰居節(jié)點(diǎn)傳輸帶寬;數(shù)據(jù)包數(shù)量判斷模塊,用于在規(guī)定的時(shí)間T內(nèi),T > t,統(tǒng)計(jì)發(fā)送數(shù)據(jù)包數(shù)量大于或等于 請(qǐng)求的數(shù)據(jù)包總數(shù)的鄰居節(jié)點(diǎn)。
全文摘要
本發(fā)明公開了一種基于P2P流媒體的二次編碼播放方法,包括當(dāng)前節(jié)點(diǎn)向鄰居節(jié)點(diǎn)發(fā)出播放連接請(qǐng)求,并播放媒體流;播放過(guò)程中,所述當(dāng)前節(jié)點(diǎn)實(shí)時(shí)估算自己的接收帶寬;所述接收帶寬低于預(yù)定值,則當(dāng)前節(jié)點(diǎn)請(qǐng)求其鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼;所述鄰居節(jié)點(diǎn)對(duì)播放的媒體流進(jìn)行二次編碼后,將二次編碼后的媒體流傳輸給當(dāng)前節(jié)點(diǎn)。還公開了一種基于P2P流媒體的二次編碼播放系統(tǒng),包括播放請(qǐng)求模塊、接收帶寬估算模塊、二次編碼請(qǐng)求模塊、二次編碼模塊和鄰居節(jié)點(diǎn)傳輸帶寬估算模塊。本發(fā)明避免了由于客戶端受接收帶寬限制的情況下產(chǎn)生丟包-重傳-再丟包的問(wèn)題,從而使客戶端享受到連續(xù)、平穩(wěn)、高質(zhì)量的流媒體服務(wù)。
文檔編號(hào)H04L29/08GK101924793SQ20101025631
公開日2010年12月22日 申請(qǐng)日期2010年8月17日 優(yōu)先權(quán)日2010年8月17日
發(fā)明者華仁紅 申請(qǐng)人:北京易視騰科技有限公司