專利名稱:點對點下載方法、視頻設(shè)備和內(nèi)容發(fā)送方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用,數(shù)字廣播,網(wǎng)絡(luò)傳輸,P2P下載技術(shù),音視頻技術(shù)等領(lǐng)域。 主要應(yīng)用了 P2P網(wǎng)絡(luò)傳輸技術(shù),多媒體壓縮與傳輸技術(shù)等。
背景技術(shù):
隨著互聯(lián)網(wǎng)的普及,互聯(lián)網(wǎng)用戶可以分享互聯(lián)網(wǎng)上豐富的數(shù)據(jù)以及多媒體資源。 互聯(lián)網(wǎng)上一種常用的數(shù)據(jù)共享方式是,內(nèi)容提供者將內(nèi)容放置在服務(wù)器上,用戶從客戶端連接到內(nèi)容所在服務(wù)器,從服務(wù)器端下載位于該服務(wù)器上的共享文件。由于越來越多的多媒體內(nèi)容在互聯(lián)網(wǎng)上的共享,大數(shù)據(jù)量的傳輸造成了大量的網(wǎng)絡(luò)傳輸資源占用,不僅影響到其他用戶享用互聯(lián)網(wǎng)傳輸?shù)牧鲿承?,同時對下載者本地資源和服務(wù)器資源都有很大的消耗。比如大量的音視頻資源占用了大量的服務(wù)器和客戶端的存儲空間,而且下載整個內(nèi)容文件需要花費很長時間。網(wǎng)絡(luò)共享內(nèi)容良莠不齊,很多時候由于預(yù)先對文件內(nèi)容的不了解, 下載的文件可能是錯誤或者不能滿足要求的。有時下載過程中由于服務(wù)器的中斷導(dǎo)致下載不能完成影響用戶的使用。因此針對大數(shù)據(jù)量的文件共享需求一種點對點(P2P =Peer to Peer)的下載技術(shù)提供了一對多的下載方式,以解決服務(wù)器的負(fù)荷,并優(yōu)化傳輸資源的合理利用。P2P的下載原理是內(nèi)容提供者將內(nèi)容按照一定的規(guī)則進(jìn)行片段劃分處理,將內(nèi)容分割成大小一定的多個片段,然后將片段的劃分規(guī)則和片段的大小信息生成一個索引文件,通過該索引文件,下載客戶端就可以以片段為單位進(jìn)行下載,并將這些片段按照索引文件信息進(jìn)行重新組合,生成與原始文件一致的文件。以BT(BitTorrent)為例,其索引文件就是BT的種子文件,該種子文件大小相對于需要下載的目標(biāo)文件來說占用空間非常小,用戶可以很方便通過傳統(tǒng)方式從互聯(lián)網(wǎng)上下載得到。BT種子文件中除了包含片段劃分規(guī)則信息外,還包含跟蹤服務(wù)器(Tracker服務(wù)器)地址信息等。內(nèi)容提供者將種子文件上傳至互聯(lián)網(wǎng)上供其他用戶下載。當(dāng)普通用戶從網(wǎng)上下載了種子文件后,根據(jù)種子文件內(nèi)容訪問 Tracker服務(wù)器,然后Tracker服務(wù)器提供擁有該種子文件所對應(yīng)的目標(biāo)文件的客戶端列表。下載客戶端根據(jù)該列表訪問各個擁有該內(nèi)容的客戶端,并向他們請求下載目標(biāo)文件中的某一個片段內(nèi)容,最后當(dāng)所有的片段都下載完畢后,下載客戶端根據(jù)種子文件將這些片段組裝成與原始下載目標(biāo)文件一致的文件,完成整個目標(biāo)文件的下載過程。P2P下載中,下載客戶端可以同時和多個內(nèi)容擁有客戶端之間進(jìn)行連接,實現(xiàn)一對多的下載,并根據(jù)網(wǎng)絡(luò)傳輸優(yōu)化算法,優(yōu)先從與下載請求者之間傳輸速度比較快的客戶端那里進(jìn)行數(shù)據(jù)請求,實現(xiàn)最大效率的網(wǎng)絡(luò)利用和最短的下載時間。P2P下載由于采用一對多的方式,下載速度快,可靠性高,現(xiàn)在已經(jīng)成為互聯(lián)網(wǎng)上主要的下載方式之一。但是在P2P下載中,要求下載請求者必須下載完整個文件后才能夠正常使用該文件。而實際情況中經(jīng)常出現(xiàn)由于部分片段的擁有者數(shù)量非常少或者處于離線狀態(tài),導(dǎo)致整個文件中部分片段無法成功下載而影像到整個文件無法使用。同時,由于P2P下載中需要完整下載一個文件,因此下載量是固定的,每個用戶為此付出的網(wǎng)絡(luò)流量也是固定的,導(dǎo)致用戶即便是只需要其中的部分內(nèi)容,也要付出整個文件的網(wǎng)絡(luò)費用及下載等待時間。同時,隨著版權(quán)意識的深入,網(wǎng)絡(luò)上共享的文件的權(quán)利定義越來越細(xì)致,內(nèi)容提供者希望通過詳細(xì)的版權(quán)保護(hù)定義,更加細(xì)致地規(guī)定使用者的權(quán)利范圍。具體來說,對于一個影片文件,雖然其整部影片由于商業(yè)原因限制了其不能完全免費公開給所有用戶,但是其中的一些部分,如片花、內(nèi)容預(yù)告以及廣告片段等,內(nèi)容提供者希望無償提供給所有用戶, 以吸引更多的人認(rèn)識該影片的內(nèi)容并進(jìn)行合理的商業(yè)下載。當(dāng)前的解決辦法是將這部分內(nèi)容獨立抽取出來作為一個額外的文件,伴隨著影片或者獨立于影片文件進(jìn)行發(fā)布,免費用戶可以下載這部分花或者預(yù)告片等內(nèi)容,而不能下載或播放完整的影片。這無形中增加了下載文件的數(shù)量以及下載傳輸數(shù)據(jù)量。同樣,對于影片內(nèi)部的不同內(nèi)容,可能適合不同的用戶收看,比如有些內(nèi)容涉及恐怖、暴力等內(nèi)容并不適合未成年人收看,此時如果對電影根據(jù)內(nèi)容進(jìn)行不同的分級,按照不同的文件進(jìn)行發(fā)行,必然造成管理的復(fù)雜化和更大的下載流量,不方便節(jié)目的制作和用戶的下載??傊?,當(dāng)前的P2P下載中優(yōu)先考慮下載速度以優(yōu)化網(wǎng)絡(luò)傳輸性能,并沒有充分考慮下載請求者對內(nèi)容的需要程度以及下載請求者的網(wǎng)絡(luò)使用狀況,所有的用戶都是需要對目標(biāo)文件進(jìn)行完整下載。同時對于如何使用所下載的目標(biāo)文件,也不能提供任何的個性化建議。當(dāng)前P2P下載方式是以速度優(yōu)先,而沒有充分考慮每個片段對使用者的需求程度。為了彌補(bǔ)當(dāng)前P2P下載的一些局限性,很多新的實現(xiàn)方法對其進(jìn)行了擴(kuò)充,以支持特殊的應(yīng)用。如對實時收看的流媒體情況,需要對片段的優(yōu)先順序按照在流媒體中出現(xiàn)的先后順序進(jìn)行調(diào)度,使需求更為急迫的片段優(yōu)先擁有下載權(quán)利即使其下載速度較慢,而急迫性較低的片段雖然擁有更高的下載速度也被設(shè)置為較低的下載優(yōu)先權(quán)。這類解決方法如公知例基于P2P協(xié)議的媒體文件播放控制方法及裝置[CN101227590A]。該公知例公開了一種面向媒體文件點播的P2P下載控制方法和裝置,其核心在于,對流式媒體文件點播,優(yōu)先地下載文件控制信息所在的控制信息部分分片,對非流式媒體文件點播,優(yōu)先地下載文件控制信息所在的控制信息分片以及索引信息所在的索引信息分片,從而實現(xiàn)媒體文件在P2P協(xié)議下的邊下載邊播放。其關(guān)鍵點是根據(jù)流媒體當(dāng)前的播放位置,優(yōu)先下載距離當(dāng)前播放位置最近的片段,即根據(jù)當(dāng)前播放位置的時間距離決定片段的優(yōu)先下載順序。另外,作為另一公知例[日本特開2001-344242],公開了先從服務(wù)器接收內(nèi)容的一部分進(jìn)行再現(xiàn)后根據(jù)需要接收全部內(nèi)容的視頻設(shè)備。例如,在該專利文獻(xiàn)中,記載了一種便攜終端裝置,從服務(wù)器接收了電影的預(yù)告片之后,如果用戶表示想觀看完整的影片,則開始接收獨立于上述預(yù)告片的完整影片。
發(fā)明內(nèi)容
公知例[CN101227590A]中提供了一種針對音視頻點播的媒體文件應(yīng)用,按照其應(yīng)用的特點對P2P下載中片段下載的優(yōu)先順序進(jìn)行動態(tài)調(diào)整和下載優(yōu)化,解決了普通P2P 不能滿足實際點播業(yè)務(wù)需求的一些不足,有效的確保了點播業(yè)務(wù)中媒體文件的實時性和播放的流暢性。但是該公知例不能面向不同用戶提供個性化的下載和收看方式。在某些流媒體應(yīng)用場合,比如下載客戶端的速度有限制,即使是優(yōu)化后的片段下載順序或者連續(xù)下載都不能保證流媒體正常播放的需求,此時的實時播放就會出現(xiàn)內(nèi)容欠
6載而導(dǎo)致視頻的暫停。同時對非流媒體文件,同樣需要下載完全部的文件片段后,下載用戶才可以將所有片段根據(jù)種子文件的順序進(jìn)行重新組合,形成一個完整的文件后,才能開始使用此文件。而在所有的片段下載完畢之前,該文件仍然不能使用,或者使用有一定的問題。而針對音視頻媒體文件的特性,用戶更加關(guān)注的內(nèi)容往往是其中的部分內(nèi)容。比如,很多情況下,針對一個影片,用戶可能更加希望觀看其中的精彩部分,或者希望優(yōu)先下載其精彩片段用于收看,縮短全部內(nèi)容下載所需要的等待時間,然后在空閑的時間根據(jù)需要再選擇其他部分進(jìn)行收看?;蛘呦M螺d其中的內(nèi)容預(yù)告部分來大致了解此影片的故事梗概, 或者確認(rèn)影片內(nèi)容以及畫面質(zhì)量等等。這些對下載目標(biāo)文件的部分內(nèi)容感興趣的需求是實際存在的,而現(xiàn)在的P2P技術(shù)并不能給出很好的解決辦法。因此本發(fā)明提出了一種P2P的下載方法,支持部分片段的下載并使用,同時也支持用戶在收看后對影片精華部分進(jìn)行自定義,用于反復(fù)收看或推薦其他人收看等等。并為不同的用戶提供不同的下載播放等級,有利于進(jìn)行家長控制或版權(quán)保護(hù)等。因此,本發(fā)明的一個目的在于,提供一種P2P下載方法,使得下載用戶可以根據(jù)自己的具體需求,有選擇的下載并播放所需要的內(nèi)容。另外,公知例[日本特開2001-344242]公開的視頻設(shè)備,在接收完整的影片之前, 先了解此影片的故事梗概,再判斷是否接收完整的影片,因此不必先接收完整的影片。但是,該視頻設(shè)備存在以下課題在接收了預(yù)告片等部分內(nèi)容進(jìn)行再現(xiàn)之后,如果再重新接收完整的影片,由于部分影片內(nèi)容既屬于預(yù)告片中的部分,也屬于完整影片的部分,再次下載這部分重疊的內(nèi)容,則會浪費通信資源和通信時間。因此,本發(fā)明的另一目的在于,提供能夠節(jié)約接收影片等內(nèi)容時的通信資源和通信時間的視頻設(shè)備和內(nèi)容發(fā)送方法。本發(fā)明提供的一種P2P下載方法,其特征在于基于對內(nèi)容進(jìn)行個性化劃分的個性化內(nèi)容定義,對被劃分為多個片段的目標(biāo)文件進(jìn)行個性化下載,所述方法包括以下步驟 A)下載客戶端向內(nèi)容提供者發(fā)出下載請求,下載目標(biāo)文件中屬于指定的個性化級別的片段;B)下載客戶端對所下載的片段進(jìn)行組合,組成符合所述個性化級別的要求的個性化內(nèi)容本發(fā)明提供的一種視頻設(shè)備,其特征在于基于對內(nèi)容進(jìn)行個性化劃分的個性化內(nèi)容定義,對被劃分為多個片段的目標(biāo)文件進(jìn)行個性化下載和播放,包括下載裝置,向內(nèi)容提供者發(fā)出下載請求,下載目標(biāo)文件中屬于指定的個性化級別的片段;組合裝置,對所下載的片段進(jìn)行組合,組成符合所述個性化級別的要求的個性化內(nèi)容;和播放裝置,對所述組合裝置所組合的個性化內(nèi)容進(jìn)行播放。本發(fā)明提供的另一種視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后,接收另一部分進(jìn)行再現(xiàn),其特征在于所述目標(biāo)文件的內(nèi)容的一部分是所述目標(biāo)文件的內(nèi)容所包含的內(nèi)容片段中的多個內(nèi)容片段,所述另一部分是除所述目標(biāo)文件的內(nèi)容的一部分以外的所述目標(biāo)文件的一部分或全部的內(nèi)容片段。本發(fā)明提供的另一種視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后,接收另一部分進(jìn)行再現(xiàn),其特征在于所述內(nèi)容包括多個內(nèi)容片段,在該內(nèi)容片段的頭部附加有片段頭數(shù)據(jù),所述片段頭數(shù)據(jù)包括表示所述內(nèi)容片段的屬性的屬性信息,在所述視頻設(shè)備所接收的所述片段頭數(shù)據(jù)包含規(guī)定的所述屬性信息的情況下,接收附加有所述片段頭數(shù)據(jù)的內(nèi)容片段,將這些所接收的內(nèi)容片段再現(xiàn)后,接收所述片段頭數(shù)據(jù)不包含所述規(guī)定的屬性信息的內(nèi)容片段,對包含所述規(guī)定的屬性信息的內(nèi)容片段和不包含所述規(guī)定的屬性信息的內(nèi)容片段進(jìn)行再現(xiàn)。本發(fā)明提供的另一種視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后,接收另一部分進(jìn)行再現(xiàn),其特征在于該視頻設(shè)備能夠與不特定的多個終端連接進(jìn)行所述內(nèi)容的發(fā)送接收,所述內(nèi)容包括多個內(nèi)容片段,這些內(nèi)容片段存儲在不特定的多個終端, 所述視頻設(shè)備從存儲有表示所述內(nèi)容的屬性的多個屬性信息和各屬性信息所包含的內(nèi)容片段序號的網(wǎng)絡(luò)服務(wù)器接收規(guī)定的屬性信息所包含的內(nèi)容片段序號,從對所述不特定的多個終端所具有的內(nèi)容片段進(jìn)行管理的管理服務(wù)器接收具有所述內(nèi)容片段序號的終端地址, 從該地址的終端接收內(nèi)容片段進(jìn)行再現(xiàn)后,接收除所述所接收的內(nèi)容片段序號以外的內(nèi)容片段的一部分或全部的內(nèi)容片段進(jìn)行再現(xiàn)。本發(fā)明提供的一種內(nèi)容發(fā)送方法,對接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后對另一部分進(jìn)行再現(xiàn)的視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)發(fā)送所述內(nèi)容,其特征在于在所述目標(biāo)文件的內(nèi)容所包含的內(nèi)容片段的頭部,附加片段頭數(shù)據(jù),所述片段頭數(shù)據(jù)包括表示所述內(nèi)容片段的屬性的屬性信息。本文所述的發(fā)明,在基于P2P基本原理的基礎(chǔ)上,通過對具體的文件,根據(jù)片段本身所含內(nèi)容以片段為單位進(jìn)行片段屬性定義,生成不同的片段組合,并將這些組合通過種子文件、Tracker服務(wù)器、片段屬性定義或者其他方式,將片段組合的定義分發(fā)推薦給下載用戶。下載用戶可以根據(jù)自己的具體需求,參考個性化片段組合,有選擇的下載所需要的片段。該方法提供了一種人性化和個性化的下載方式,優(yōu)化了下載片段的下載優(yōu)先順序,減少了網(wǎng)絡(luò)傳輸數(shù)據(jù)量,減少了本地存儲所需空間,加快了下載的速度,同時能提供一種下載、 播放和管理的方法。而且,利用本發(fā)明的視頻設(shè)備,能夠節(jié)約接收影片等內(nèi)容時的通信資源和通信時間,提高通信速度。
圖1 本發(fā)明的基本原理
圖2:標(biāo)準(zhǔn)BT種子文件的主要構(gòu)成
圖3:該方法所示的P2P下載方式
圖4 本發(fā)明所示BT種子文件的主要構(gòu)成
圖5:MPEG幀結(jié)構(gòu)簡介
圖6 :MPEG幀的數(shù)據(jù)量大小與P2P下載中片段劃分
圖7:下載片段序列及播放時內(nèi)容
圖8 下載客戶端工作流程1
圖9 種子文件的定義
圖10包含片段控制頭的片段
圖11片段結(jié)構(gòu)定義
圖12下載客戶端工作流程2
圖13下載客戶端以屬性方式進(jìn)行內(nèi)容定制請求
圖14片段描述符中可包含的信息
圖15 應(yīng)用本發(fā)明的一種視頻裝置的示意圖。
具體實施例方式本發(fā)明是基于現(xiàn)有的P2P的基本原理,即對目標(biāo)文件進(jìn)行片段劃分,將下載單位從以文件為單位,縮減到以片段為單位進(jìn)行下載。這種方法可以實現(xiàn)對一個文件同時從多個內(nèi)容擁有者處下載不同的片段,實現(xiàn)了一對多的下載方式,從而提高了下載速度。BT下載作為本發(fā)明的一個基礎(chǔ)之一,首先我們對其原理進(jìn)行簡單介紹。在BT下載中,作為文件分片的關(guān)鍵索引信息,種子(seed)文件的作用至關(guān)重要,其中規(guī)定了所要下載的目標(biāo)文件的文件信息,文件名,目錄名,長度等,然后規(guī)定了目標(biāo)文件的分片狀態(tài)(如片段劃分大小PieceJength)和每一個片段的校驗碼(hash值),用以對下載片段數(shù)據(jù)完整性和正確性進(jìn)行校驗。同時種子文件中還定義了下載客戶端獲取擁有該目標(biāo)文件內(nèi)容的客戶端列表的Tracker服務(wù)器(announce tracker)。通過該服務(wù)器,下載客戶端可以獲取其他擁有該內(nèi)容用戶的列表,以及需要下載的目標(biāo)文件中每一個片段的擁有者。通過這些信息,下載客戶端可以直接請求其他客戶端以獲取指定的目標(biāo)文件片段,實現(xiàn)不同片段的并行下載。在BT下載中,數(shù)據(jù)的請求端和數(shù)據(jù)的提供者之間通過BT協(xié)議來進(jìn)行信息交互。BT 的基本原理可以參考BT官方協(xié)議定義書。這里將列舉其中幾個重要交互信息協(xié)議內(nèi)容。Have信息,用于表示當(dāng)前本地所已經(jīng)下載的且經(jīng)過校驗的數(shù)據(jù)片段IDBitfield信息,用于標(biāo)示當(dāng)前本地所擁有的全部片段集合的位置位圖表,用以標(biāo)示本地所擁有的片段狀態(tài)。Request信息,用以下載請求端向內(nèi)容提供者的請求下載信息,包括請求的片段 ID,請求數(shù)據(jù)片段內(nèi)的起始位置(相對片段頭的偏移量)和請求下載的數(shù)據(jù)長度。Piece信息,用以內(nèi)容提供者向下載請求端提供其所需要的數(shù)據(jù)。通過以上幾個主要信息,下載請求端和內(nèi)容提供者之間可以互相知道對方擁有的片段的情況,并且可以進(jìn)行片段實際數(shù)據(jù)的傳遞。基于以上BT下載原理和協(xié)議簡介,本發(fā)明將提供一種P2P下載方式,支持文件分片下載機(jī)制,同時支持不同片段組合下載與播放,通過對不同片段根據(jù)其具體內(nèi)容屬性進(jìn)行定義,極大的方便了基于文件片段的各種應(yīng)用。在本發(fā)明中,通過在種子文件中對片段按照不同內(nèi)容級別劃分和播放是通過多種方式進(jìn)行實現(xiàn)的,可以通過種子文件中直接定義各個個性化播放級別所對應(yīng)的片段列表, 或者是從文件頭的偏移量,或者定義個性化播放使用的片段屬性,通過配合片段內(nèi)的片段屬性,有效選擇符合其屬性的片段序列進(jìn)行下載和播放。所以在本發(fā)明中,具體的實施方法有多種,可以通過定義個性化種子文件,可以是種子文件的附加個性化內(nèi)容,也可以是用戶自定義的片段序列,或者是來自其他用戶或者內(nèi)容提供者或者是網(wǎng)絡(luò)上的推薦信息包含對該目標(biāo)文件中片段歸類信息的內(nèi)容。在得到了片段列表后,下載客戶端根據(jù)其對個性化級別(Profile)的選擇,得到需要下載的該目標(biāo)文件中的片段列表,然后只下載屬于用戶選中的個性化profile中定義的片段,而不用全部下載屬于該目標(biāo)文件中的所有片段。在播放過程中,將這些下載的片段(或者是該目標(biāo)文件中的全部的片段)根據(jù)profile中片段序列的定義,對其進(jìn)行重新排列,組成一個符合profile中定義的目標(biāo)文件中的部分內(nèi)容,然后以文件的形式呈現(xiàn)給用戶(而在普通的BT下載中,只有所有的片段都下載完畢后才以目標(biāo)文件的形式呈現(xiàn)給用戶)。用戶就可以播放屬于該profile定義的目標(biāo)文件中的內(nèi)容。比如圖1中,profile-Ι定義的是“預(yù)告片”,下載過程中下載客戶端根據(jù)“預(yù)告片profile”中定義出的片段列表,向內(nèi)容提供者請求下載屬于“預(yù)告片profile”片段列表中的片段,然后組合成目標(biāo)文件的預(yù)告片內(nèi)容。而內(nèi)容提供端依舊以一個完整的目標(biāo)文件形式存在,不需要提供獨立的預(yù)告片文件而占用額外的空間,在下載客戶端則可以依賴 profile的定義,將目標(biāo)文件生成多種形式的內(nèi)容級別文件,而同時并不會占用額外的磁盤空間,只是將目標(biāo)文件以一種片段庫的形式存在,在下載和播放過程中根據(jù)profile的定義取出其中的部分片段用于播放。如果用戶選擇完整下載(同樣為個性化profile的一個劃分級別完整下載),則屬于目標(biāo)文件的所有片段都會被下載、存儲,這種情況類似于現(xiàn)存的普通的P2P下載方式。 所以該發(fā)明完全兼容現(xiàn)有的下載方式,而同時提供更加多樣的個性化下載和播放控制。需要說明的是,本發(fā)明中雖然基于BT的下載原理,但是其應(yīng)用場景并不局限于BT 的下載過程中,本文所述的方法完全可以被利用在整個P2P下載方式中(包括BT下載, emule下載以及迅雷、快車等等的點對點下載方式中),以及類似網(wǎng)絡(luò)傳輸中,還可以利用在音視頻的廣播和下載中以及其他以包或者片段為單位的下載方式中,還可以被利用在以片段或者包為單位進(jìn)行數(shù)據(jù)交換的網(wǎng)絡(luò)傳輸或者廣播信號的傳輸中,如IP網(wǎng)絡(luò)或者數(shù)字廣播信號的傳送。該方法通過用戶的選擇或者視當(dāng)時的傳輸情況,手動或者自動選擇其中的部分包或者片段進(jìn)行下載,綜合考慮各種因素,提供給用戶多種個性化選擇方式。需要指出的是,內(nèi)容包或者片段的選擇可以是用戶指定的,也可以是來自于服務(wù)器推薦的,也可以是內(nèi)容提供者或內(nèi)容擁有者推薦的,或者可以是系統(tǒng)自動根據(jù)當(dāng)時狀況推薦的等等,可以是預(yù)先定義的,也可以是實時變化的。圖1顯示了本發(fā)明的基本原理。在圖1中,內(nèi)容提供者發(fā)布了希望共享的原始文件,對下載請求者來說是希望下載的目標(biāo)文件,其中包括所述目標(biāo)文件中的所有內(nèi)容,按照 P2P的下載方法,首先對目標(biāo)文件進(jìn)行片段劃分處理,將內(nèi)容提供者提供的原始文件分割成大小相等的若干片段(對不同的網(wǎng)絡(luò)應(yīng)用,包或者片段的劃分規(guī)則不同,也可能出現(xiàn)劃分的片段大小不一樣的情況)。標(biāo)準(zhǔn)的BT下載方式中,這些片段將通過種子文件進(jìn)行連接,下載客戶端將從不同的內(nèi)容提供者那里同時下載不同片段的內(nèi)容,然后按照種子文件中的定義進(jìn)行校驗和組合,最終形成與內(nèi)容提供者提供的文件一致的目標(biāo)文件,實現(xiàn)完整的下載過程。而在本發(fā)明所述的方法中,內(nèi)容提供者或者Tracker服務(wù)器向下載客戶端提供了多種下載或者包括播放的個性化選擇方式,如圖1所示的proile-l,profile-2等等。不同的profile定義了不同的內(nèi)容片段組合,這些片段同樣屬于內(nèi)容提供者提供的原始文件中的一部分。如profile-Ι的屬性為完整目標(biāo)文件的預(yù)告片,其中包括了第一,第二片段等, 而其他片段并沒有包含在profile-Ι定義中。同樣對于profile-4所示,其中大部分片段屬于prof i le-4中的定義,而有些片段由于內(nèi)容可能不適合未成年人觀看,因此在prof i le_4 中并沒有包含這些片段。對于這些profile對應(yīng)的內(nèi)容,并沒有包含所有的目標(biāo)文件中的片段,因此下載請求客戶端如果選擇這些下載方式,則只需要下載屬于其選定的profile中定義的片段內(nèi)容,即可享受到所選定的profile的內(nèi)容,并且進(jìn)行播放欣賞。按照這種方法,用戶只需要下載部分內(nèi)容,即可欣賞到其所選定等級的播放方式,極大的減少了下載的網(wǎng)絡(luò)帶寬、下載所需要的等待時間以及為之所付出的下載費用等。根據(jù)所選等級的下載/ 播放方式,用戶可以根據(jù)這些部分內(nèi)容主觀地評判該目標(biāo)文件是否值得進(jìn)行完整下載。如果用戶根據(jù)初始等級選擇部分下載,而播放后希望完整的欣賞這些影片,則只需要重新選擇內(nèi)容更加豐富的Profile進(jìn)行下載,而此時,由于部分片段已經(jīng)為之前選定的profile定義并且已經(jīng)進(jìn)行了下載,此時只需要將現(xiàn)在需求的prifile和之前的profile進(jìn)行簡單差分比較,確定出需要追加下載的內(nèi)容片段,將這些追加的片段進(jìn)行下載。在下載完畢后根據(jù)新選定的profile進(jìn)行重新組合,提供用戶全新的欣賞內(nèi)容。而在如profile-3的定義中,包含了所有屬于原始文件中的內(nèi)容片段,而同時將一些片段在文件的末尾進(jìn)行了重新追加,因此profile-3需要下載所有的原始文件中的片段,同時在播放的時候提供了額外的精彩回憶部分,而這些片段屬于原始文件中,因此無需要追加下載內(nèi)容的大小而在播放時候提供了更加自由的欣賞方式。使用本發(fā)明所描述的下載方法,不增加額外的下載內(nèi)容大小而提供了多種自由選擇的下載和欣賞等級,減少了網(wǎng)絡(luò)占用和下載時間以及本地磁盤空間占用,為用戶的下載和欣賞提供了更加自由的方式。而在普通的P2P下載方式中,不同等級的欣賞內(nèi)容則需要分別下載不同的文件,而這些文件中的大部分內(nèi)容可能是重復(fù)的,使用該發(fā)明所述方法,則盡可能避免數(shù)據(jù)的重復(fù)下載而提供多種個性化的下載/播放選擇。在本發(fā)明中,提供了一種個性化選擇下載/播放片段的P2P下載方式。原始的P2P 下載方式雖然對目標(biāo)文件進(jìn)行了片段劃分,但在下載和播放時并沒有基于片段的劃分方式,而仍舊需要下載和播放整個文件的方式,即以文件為單位的下載/播放方式。而在本發(fā)明中,下載和播放的方式則以P2P下載的片段為單位,進(jìn)行片段個性化選擇的下載和播放, 而這些個性化定制信息則直接定義了以片段為單位的屬性信息,即Profile的定義。而在本發(fā)明中,并沒有限制這些個性化片段屬性信息的定義方式,可以是直接定義在BT種子文件中,可以是作為每個片段額外的信息插入在片段內(nèi)容之前或之后或之中,也可以是直接嵌入在每個片段的內(nèi)容之中,或者是作為一個獨立存在的文件形式而存在。而這些對每個片段屬性定義的信息,既可以是種子文件中的一部分隨著種子文件分發(fā)給各個下載用戶, 也可以是獨立于種子文件而存在的,通過內(nèi)容提供者、Tracker服務(wù)器或者是提供下載的其他客戶端提供,或者是下載者自己定義的方式,也可以是用戶根據(jù)其他信息(如互聯(lián)網(wǎng)上的評論或者其他用戶的口頭推薦等)等等方式實現(xiàn)的。圖2顯示了以BT為例子的BT種子文件的標(biāo)準(zhǔn)形式,其中定義了 Tracker服務(wù)器地址,下載的目錄及文件名稱列表,每個片段劃分的片段長度,以及每個片段的校驗碼(Hash
值)等等。通過此BT種子文件,用戶可以得到Tracker服務(wù)器的地址,通過此地址訪問 Tracker服務(wù)器(可以有多個Tracker服務(wù)器)。然后Tracker服務(wù)器向下載客戶端提供擁有該目標(biāo)文件的其他客戶端的地址列表以及其有用的屬于該目標(biāo)文件的片段狀態(tài),下載客戶端可以通過該列表訪問其他的客戶端進(jìn)行連接,然后進(jìn)行實際的片段數(shù)據(jù)交換。圖3顯示一般的BT下載方式的連接狀況,也是本發(fā)明所示的連接方法之一。下載客戶端通過其他網(wǎng)絡(luò)方式(HTTP,F(xiàn)TP等)從互聯(lián)網(wǎng)上得到需要下載的目標(biāo)文件(或者文件夾)的種子文件,種子文件的結(jié)構(gòu)方式定義在圖2中。在圖3中,下載客戶端 (Downloaderclient)首先通過圖2所示的已經(jīng)下載到本地的BT種子文件,連接到種子文件中所示的Tracker服務(wù)器,通過此服務(wù)器得到其他擁有該內(nèi)容的內(nèi)容提供客戶端列表 (Content Provider-I, ..., η),然后下載客戶端分別連接其他的內(nèi)容提供者客戶端,然后根據(jù)BT協(xié)議分別向內(nèi)容提供者客戶端請求下載片段的數(shù)據(jù)。每個片段的長度和校驗用的 hash值存儲在BT種子文件中。每從其他客戶端那里下載到一個完整的片段內(nèi)容,通過此片段所對應(yīng)的校驗hash值進(jìn)行校驗,以確定該片段的正確性,如果正確則下載到本地的片段文件標(biāo)記為成功下載,如果校驗錯誤則需要重新下載該片段。通過之前所述的BT協(xié)議方式,下載客戶端與其他內(nèi)容提供者客戶端之間的信息交換可以有多種信息內(nèi)容,包括下載客戶端/內(nèi)容提供者客戶端所擁有的片段列表狀態(tài), 以及請求的片段ID,以及所請求的片段內(nèi)的具體數(shù)據(jù)(即BT協(xié)議中Piece協(xié)議,包括片段內(nèi)的起始位置,請求的數(shù)據(jù)長度等等)。同樣,內(nèi)容提供者客戶端則向下載客戶端發(fā)送其所申請的片段信息具體內(nèi)容。然后下載客戶端將這些同屬于一個片段的內(nèi)容組合起來,然后進(jìn)行hash校驗,校驗成功后將整個片段內(nèi)容存儲于本地的存儲器中并更新自己的實際片段擁有狀態(tài)。下載客戶端可以同時向多個內(nèi)容提供者客戶端申請屬于不同片段的內(nèi)容,也可以同時申請屬于相同片段的不同位置的內(nèi)容,從而實現(xiàn)多段內(nèi)容的同時下載。需要指出的是,下載客戶端以及其他內(nèi)容提供者客戶端都可能隨時根據(jù)需要成為內(nèi)容下載客戶端或者內(nèi)容提供者客戶端,并且根據(jù)需要隨時/定期向Tracker服務(wù)器更新自己的狀態(tài)信息,以便Tracker服務(wù)器能夠掌握當(dāng)前整個網(wǎng)絡(luò)中擁有該內(nèi)容的客戶端列表以及其狀態(tài)。圖4給出了本發(fā)明所述方法的一種實施辦法,即目標(biāo)文件內(nèi)容分類信息嵌入在BT 種子文件內(nèi)部的一種實現(xiàn)方式。如圖4所示,本發(fā)明所示的種子文件包含了標(biāo)準(zhǔn)BT種子文件(圖2)中的所有內(nèi)容,同時在種子文件中定義了 Profile的信息。在圖4中定義了兩個 Profile (Profile-Ι和Profile-2),其分別代表了是“預(yù)告片”和“精彩章節(jié)”兩種不同的個性化選擇。之后定義了整個個性化片段的一些具體屬性,如該個性化片的時間長度(也可是是以字節(jié)為單位的長度等),適合的人群(Audience)。最重要的是該個性化內(nèi)容(即所述的profile)所對應(yīng)的片段列表,該處所述的片段于圖1中所示的片段和標(biāo)準(zhǔn)BT中對片段的劃分是一致的。但是與標(biāo)準(zhǔn)的BT種子文件所不同的是,在標(biāo)準(zhǔn)的BT種子文件中包含整個目標(biāo)文件的所有片段,即從1到η(最后一個片段)的一共η個片段。而在本發(fā)明所示的方法中,其片段并不是所有的η個片段,而是多個片段的組合,其中很多片段之間可能是不連續(xù)的,如在profile-Ι中并不包含第3片段。同樣在其他的profile定義中也可能只包含η個片段中的一部分片段。同時在圖4本發(fā)明中所示的BT種子文件中,還可能包括用于該profile播放時狀態(tài)的一個定義(piece_playback_offset),如圖4中定義了對于每一個片段在該profile狀態(tài)下用于播放時候的片內(nèi)數(shù)據(jù)。如對于第1片段,其段內(nèi)偏移量為100,即片內(nèi)的0-100字節(jié)的內(nèi)容并不用于播放,而對第4片段,其偏移量為-100,即片段后部的100個字節(jié)并不用于播放。同樣還可以是有些片段前后部分都有些需要跳過而只播放片段中部的一些數(shù)據(jù)。 如第χ片段,只播放從200字節(jié)到-300字節(jié)之間的數(shù)據(jù)。之所以這樣做是因為首先為了保持與P2P下載協(xié)議的一致性,片段作為P2P下載的最小單位,進(jìn)行下載和用于Hash值的校驗以確定整個片段是否完整下載,而并不能實現(xiàn)片段中隨機(jī)的部分的內(nèi)容下載的校驗。其次考慮到BT對文件的片段劃分并不是基于內(nèi)容的,而只是按照文件長度進(jìn)行等大小的劃分,而包含該需要數(shù)據(jù)的片段可能是位于某一個片段的內(nèi)部,而這個片段之前的部分內(nèi)容并沒有實際的播放用途,而BT下載又要求下載整個片段,因此需要定義下載片段和下載片段中由于播放的內(nèi)容在片段內(nèi)的偏移量,方便在播放過程中的存取。同時,很多的音視頻文件中,其編解碼的要求,很多視頻幀之間有一定的關(guān)聯(lián)性,比如在MPEG視頻編碼中,P幀的播放依賴于之前的I幀,因此必須將包含I幀的片段進(jìn)行下載,而在具體播放中,可能并非從I幀開始播放,而是直接從某一個P幀或者B 幀進(jìn)行播放,但是這些I幀的數(shù)據(jù)還是需要的,只是在播放過程中直接跨越了 I幀進(jìn)行播放而已。因此個性化的下載和個性化的播放存在有一定的關(guān)系而并不一定完全一致。舉例說明piece_playback_0ffset的功能。圖5所示的為當(dāng)前視頻中常用的MPEG 編碼方式的幀結(jié)構(gòu)簡介。在MPEG系統(tǒng)中,視頻幀數(shù)據(jù)基本包含三類,即I幀,B幀和P幀,其中I幀為獨立編碼幀,B幀和P幀分別為后向預(yù)測幀和前向預(yù)測幀,B幀和P幀為非獨立編碼幀,即B幀和P幀的完整數(shù)據(jù)需要依賴I幀的數(shù)據(jù)進(jìn)行還原。如圖5中,在視頻播放時,I 幀,B幀和P幀是相互交叉形成等時間間隔視頻幀輸出到顯示屏幕上。然而,在每一幀的數(shù)據(jù)量上則大有不同。如圖6所示,由于I幀為獨立編碼幀,不依賴于其他幀的數(shù)據(jù)即可完整顯示,所以I幀的數(shù)據(jù)量比B幀或P幀都要大。而B幀和P幀如果需要還原成完整的用于顯示的幀數(shù)據(jù),則依賴于其相關(guān)的完整的I幀數(shù)據(jù),因此如果沒有對應(yīng)的I幀數(shù)據(jù),B幀和 P幀則不能被解碼,也不能被完整顯示。通常在這種情況下根據(jù)不同設(shè)備的策略,會出現(xiàn)屏幕上出現(xiàn)大面積馬賽克或者根本沒有顯示。而在網(wǎng)絡(luò)傳輸中,尤其是基于等大小分片機(jī)制的P2P傳輸中,網(wǎng)絡(luò)傳輸數(shù)據(jù)并不關(guān)心編碼過程中的內(nèi)部幀結(jié)構(gòu),在這種情況下,如果有一個I幀數(shù)據(jù)沒有完整下載,則會導(dǎo)致與其關(guān)聯(lián)的其他幀也不能解碼和顯示,即一段時間內(nèi)無法解碼和顯示。如果按照現(xiàn)有的 P2P下載方式,如果其中的一些片段沒有下載,則會導(dǎo)致與其關(guān)聯(lián)的許多片段視頻無法播放,很多情況下會致使整個視頻無法播放,這就是當(dāng)前現(xiàn)有P2P傳輸中由于沒有完整下載而導(dǎo)致整個視頻無法播放的原因之一。如圖6中,Piece-I和piece-2的分界被劃分在第 7幀的內(nèi)部,如果piece-1沒有被成功下載而piece-2被成功下載,則會導(dǎo)致標(biāo)號為1的I 幀沒有被下載到本地,受其影響,依賴標(biāo)號為1的I幀數(shù)據(jù)才能解碼的2,3,4,5,6,7,8,9,10 都無法解碼和播放。由于piece-2的成功下載,致使標(biāo)號為13的I幀可以被解碼,則依賴與標(biāo)號為13的I幀存在的11,12,14等幀都可以被正常解碼和顯示。當(dāng)然導(dǎo)致無法播放的原因有很多,如校驗數(shù)據(jù)沒有下載導(dǎo)致相關(guān)數(shù)據(jù)錯誤導(dǎo)致, 或者是其他編碼方式的視頻由于數(shù)據(jù)不完整導(dǎo)致部分或者整個視頻文件無法播放等等。圖6所示的片段劃分和實際視頻幀結(jié)構(gòu)的關(guān)系中可以看到,在piece-2中,由于前面的7,8,9,10等幀數(shù)據(jù)雖然隨著piece-2被下載下來,但是不能夠解碼和顯示,因此如果通過指定Piece內(nèi)的播放偏移量playback_0ffset,則可以讓播放器自動跳過無法正常解碼和顯示的數(shù)據(jù),從第11幀進(jìn)行解碼和顯示,則不會對播放器造成錯誤影響。因此通過定義片內(nèi)播放偏移量,可以將下載的個性化內(nèi)容定義中定義的片段中用于播放的數(shù)據(jù)進(jìn)行重新連接,組成可以播放的個性化內(nèi)容文件。即并不是將這些片段進(jìn)行簡單疊加,而是將其中可以正常解碼和顯示的數(shù)據(jù)有機(jī)連接起來,形成一個可播放的個性化內(nèi)容。
如圖7所示,個性化內(nèi)容定制要求X,Z,M,N片段都要下載,而同時片段播放偏移量使得這些片段中只有部分內(nèi)容用于播放,如圖7所示組裝后的可播放的內(nèi)容部分。但是這些片斷中“下載不用于播放的數(shù)據(jù)”也會被保存在本地,以供以片為單位的數(shù)據(jù)校驗,以及將來的文件擴(kuò)充。圖8顯示了下載客戶端的個性化下載和播放的基本流程。首先用戶從互聯(lián)網(wǎng)上或者其他方式得到了個性化BT種子文件,然后下載客戶端軟件打開并讀取該個性化BT種子文件(SOl);并按照種子文件中定義的一些方式進(jìn)行識別(S02);能夠識別出圖4中所定義的一些個性化信息,然后將這些個性化選項提供給用戶選擇(S03),如用戶可以選擇 Profile-l(預(yù)告片)也可以選擇Profile-2(精彩章節(jié))等等;之后下載客戶端按照用戶選擇的Profile中所定義的片段列表進(jìn)行下載(S04);同樣下載完畢每一個片段后,按照BT 種子文件中包含的對應(yīng)片段的Hash值進(jìn)行校驗,如果校驗正確則表示該片段下載成功,在所有的profile對應(yīng)的片段下載成功后,將這些片段按照Profile所規(guī)定的次序和方式進(jìn)行組合(S05);然后根據(jù)個性化種子文件中對應(yīng)于該P(yáng)rofile所定義的播放方式進(jìn)行播放 (S06),實現(xiàn)了個性化下載和個性化播放。由于對片段的個性化定義對應(yīng)于片段本身數(shù)據(jù)來說其數(shù)據(jù)量是非常小的,因此該個性化定義方式對BT種子文件的影響非常小,并且完全兼容現(xiàn)有的BT下載方式,同時并不對下載目標(biāo)文件本身有任何的影響。作為本發(fā)明的第二種實現(xiàn)方式,如圖9中所示,在種子文件中屬于每個Profile 的具體片段內(nèi)容分級以片段屬性的形式進(jìn)行了定義,如Profile-I的片段屬性為A,而對 Profile-2的片段屬性為B。在實際的目標(biāo)文件劃分過程中,通過在片段內(nèi)容的內(nèi)部嵌入片段屬性控制信息,如圖10中所示的在每一個片段具體數(shù)據(jù)之前加入片段描述符(Piece_ descriptor)從而增加了對該片段的更多描述,使得每一個片段都可以根據(jù)內(nèi)容進(jìn)行個性化描述,如片段1屬于A屬性,片段2屬于B屬性,而片段η可能既屬于A屬性也屬于B屬性。這樣,每個片段的結(jié)構(gòu)定義就類似于圖11所示的結(jié)構(gòu)定義方式。既每個片段具體數(shù)據(jù)之前加入了片段描述符。在具體的下載過程中,如圖12所示。下載客戶端首先讀取個性化BT種子文件 (Sll);并識別個性化BT種子文件(S12);通過識別BT種子文件中對內(nèi)容的分級,提供給用戶一個對內(nèi)容的選擇策略(S13);在用戶選擇后,確定需要下載的片段的具體屬性。然后下載客戶端需要下載每一個目標(biāo)文件片段的片段描述符(S14),獲取每一個片段的具體屬性, 以確定實際的目標(biāo)文件中哪些是用戶希望下載的片段(S15);然后根據(jù)(S13)中用戶的選擇和實際的每個片段的屬性定義(S15)進(jìn)行匹配,確定哪些片段是用戶希望下載的,哪些是不希望下載的(S16);然后對希望下載的片段進(jìn)行下載和組合(S17),而對于不屬于用戶選擇的Profile級別的內(nèi)容,放棄對剩余具體片段數(shù)據(jù)的下載(S19)。最后根據(jù)Profile定義的方法進(jìn)行播放(S18),從而實現(xiàn)了個性化下載和個性化播放。需要指出的是,由于片段描述符(Pieddescriptor)相對于片段的具體內(nèi)容 (Data)來說,其數(shù)據(jù)量是非常小的。如pieddescriptor可能只有幾個位(bit)或者幾個字節(jié)(Byte)長度,而具體片段內(nèi)容data,可能是幾兆字節(jié)長度,片段描述符相對于具體數(shù)據(jù)幾乎可以忽略,因此這種方法對片段的劃分幾乎不產(chǎn)生影響,對下載數(shù)據(jù)量的增加時微乎其微的?;蛘撸@樣的片段屬性控制信息可以直接嵌入到片段原始內(nèi)容(data)內(nèi)部,即占用Data中的幾個bit位置,用于描述該片段的屬性,這樣完全不增加原始目標(biāo)文件的劃分方法和內(nèi)容大小,而嵌入了控制信息用于用戶的個性化下載和個性化播放,雖然這種嵌入在data內(nèi)部的方法對原始文件有一點點的修改。而在音視頻文件中,由于其具體的現(xiàn)實和播放效果并不會由于幾個bit的變化而在畫面和音質(zhì)上有明顯的變化,因此該方法在音視頻文件下載和播放中是完全可以允許使用的。在本發(fā)明所述方法中,在實際的傳送過程中使用的傳送協(xié)議同樣可以采用BT傳輸中使用的傳送協(xié)議。舉例來說同樣進(jìn)行1)狀態(tài)交換協(xié)議當(dāng)前本地已經(jīng)成功下載并校驗正確的塊列表;2)數(shù)據(jù)請求協(xié)議下載請求端將希望下載的目標(biāo)文件中的塊的ID,所請求塊的內(nèi)部數(shù)據(jù)開始位置以及請求數(shù)據(jù)的長度;3)數(shù)據(jù)傳送協(xié)議內(nèi)容提供者傳送給下載請求端目標(biāo)文件中的具體數(shù)據(jù),包括目標(biāo)文件中的塊的ID,所傳遞的塊的內(nèi)部數(shù)據(jù)開始位置以及請求的數(shù)據(jù)長度,然后是具體的塊內(nèi)數(shù)據(jù)內(nèi)容。以上所述3個協(xié)議是BT傳送協(xié)議中的標(biāo)準(zhǔn)協(xié)議,同樣適用于該方法的使用。在本發(fā)明所述的第一種實現(xiàn)方法中,由于對BT種子文件進(jìn)行了擴(kuò)充,使得種子文件中能夠提供更多的信息。該處所說的種子文件可以是如圖4所示的種子文件的擴(kuò)充,即在傳統(tǒng)種子文件中追加對個性化Profile信息的定義,也或者可以是傳統(tǒng)的種子文件,通過外部定義的一些Profile信息(可以是文件形式,也可以是一些設(shè)置)而并非在種子文件內(nèi)部,也可以是種子文件內(nèi)部定義一部分,而其他一部分定義在種子文件外部等等多種方式。通過這些額外的信息定義了一些個性化Profile內(nèi)容,并且這些個性化內(nèi)容可以為下載客戶端所使用的下載工具識別,轉(zhuǎn)換為多種塊的組合,從而根據(jù)不同的需要,向內(nèi)容擁有者進(jìn)行不同的數(shù)據(jù)請求以滿足不同客戶或者不同級別的需求。這就要求下載客戶端能夠根據(jù)個性化信息或者個性化用戶配置,支持有選擇的進(jìn)行塊數(shù)據(jù)的請求,并將接收到的數(shù)據(jù)按照個性化需求進(jìn)行重新組裝,并且支持不同個性化配置之間的切換。作為第二種方法的另外一種實現(xiàn)形式。對于圖10中,除了內(nèi)容下載請求客戶端首先下載每個片段的片段描述符進(jìn)行自己判斷外,還可以將請求屬性通過請求協(xié)議傳輸給內(nèi)容提供客戶端,內(nèi)容提供客戶端在收到帶有內(nèi)容屬性的內(nèi)容請求時,首先將請求的內(nèi)容屬性與所有片段中的片段描述符中所記載的屬性進(jìn)行匹配,然后整理出符合內(nèi)容請求者要求的片段序列,再將這些片段內(nèi)容傳送給內(nèi)容請求者。這種方式對片段內(nèi)容的判斷是在內(nèi)容擁有者方面完成的。如圖13所示,由于在個性化內(nèi)容定義中已經(jīng)標(biāo)記了不同的內(nèi)容屬性代號對應(yīng)不同的內(nèi)容分類,如“A”代表“內(nèi)容簡介”。如果用戶希望下載屬于“內(nèi)容簡介”的內(nèi)容,只需要將屬性“A”通過網(wǎng)絡(luò)通知一個或者多個內(nèi)容提供者(S21),內(nèi)容提供者得到來自下載客戶端的請求信息后,即可以了解到內(nèi)容下載請求者的需求,而在內(nèi)容提供者端,已經(jīng)擁有了一些片段的具體內(nèi)容,因此內(nèi)容提供者端即可將下載請求者的需求與自己擁有的數(shù)據(jù)進(jìn)行檢查和匹配,得到其所擁有的可以提供給下載請求者,且滿足下載請求者要求的片段列表 (S22),然后將這個列表傳遞給下載請求者(S23)。這樣下載請求者即可通過這個列表中所描述的片段序號列表,向該內(nèi)容提供者或者其他內(nèi)容提供者請求這些列表中的片段(S24)。 然后一個或者多個內(nèi)容提供者將下載請求者請求的數(shù)據(jù)發(fā)送給下載請求者(S25)。下載請求者將屬于“A”屬性的片段進(jìn)行重新組裝,生成所需要的屬于屬性“A”的內(nèi)容(S26)。
15
對于圖10中所述的片段描述方法,即在片段數(shù)據(jù)(Data部分)基礎(chǔ)上,添加對片段的描述信息(pieddescriptor)。對于添加的位置,可以是如圖14所示的添加在原始片段信息之前,也可以是其他位置,如片段尾部等。由于片段描述信息內(nèi)容相對片段數(shù)據(jù)來說占用空間非常小,也可以嵌入在原始片段數(shù)據(jù)Data中。對于片段的長度,既可以是添加了片段描述符之后的新的片段的總長度,也可以是原始的長度,這種策略可以根據(jù)種子文件中的校驗值所對應(yīng)的數(shù)據(jù)部分定義進(jìn)行定義,方便對下載數(shù)據(jù)進(jìn)行校驗。比如種子文件中所描述的只是原始數(shù)據(jù)Data的校驗,雖然完整的片段包括片段描述符和原始片段數(shù)據(jù),而校驗只針對原始數(shù)據(jù)進(jìn)行校驗。同理如果校驗對應(yīng)的是片段描述信息與原始數(shù)據(jù)的組合, 則將二者組合之后進(jìn)行統(tǒng)一校驗。上面所述方法中,對原始P2P分片機(jī)制進(jìn)行了擴(kuò)展,即按照片段為單位進(jìn)行內(nèi)容控制,這種控制信息既可以被內(nèi)容提供者嵌入到原始發(fā)行文件中,也可以是作為額外的文件進(jìn)行下載,即內(nèi)容提供者提供1)只包含所有片段數(shù)據(jù)Data的原始文件,可以通過P2P方式下載,也包括2)每一片段的片段描述信息集合的輔助文件,或者這種片段描述信息集合的輔助文件,由于其文件體積較小,可以通過P2P方式也可以通過其他方式下載,或者通過種子文件的方式傳遞給用戶,即種子文件中不僅描述了每個片段的校驗值,也包含每個片段的片段描述信息。圖14所示的為片段描述信息(PieC_deSCript0r)的具體使用方法。圖中片段描述信息位于片段具體數(shù)據(jù)Data的前端(如前所述,其位置可以是其他位置或者嵌入在Data 之中)。其內(nèi)容可以包括多種信息,如圖中所示的1)內(nèi)容分類信息,2)版權(quán)控制信息,3)其他信息等等。內(nèi)容分類信息即本發(fā)明中所示的內(nèi)容劃分方法,如屬性A代表預(yù)告片,屬性B 代表精彩章節(jié)等。屬性標(biāo)識是通過一個或多個文字、字母或者數(shù)字形式描述并進(jìn)行記錄的。 版權(quán)控制信息可以實現(xiàn)以片段為單位的版權(quán)控制,如拷貝次數(shù)、播放次數(shù)等,還可以包括家長控制信息等等。其他部分可以根據(jù)內(nèi)容提供者的需求描述很多其他相關(guān)信息。在本發(fā)明中,片段描述信息中可以包括一種或者多種以上所述的描述信息。在本發(fā)明中所述的按照內(nèi)容分類進(jìn)行下載的方法中,需要使用的是其中的內(nèi)容分類信息,以確定該片段內(nèi)容是否包含用戶需求的內(nèi)容。針對一個片段,其可以同時屬于多個內(nèi)容劃分級別,如既可以屬于屬性A “預(yù)告片”的內(nèi)容,也可以屬于屬性B “精彩章節(jié)”的內(nèi)容,這些信息都可以被記錄在內(nèi)容分類信息中,具體的記錄方式可以按照位記錄的方式實現(xiàn),也可以通過其他方式實現(xiàn)。按照以位為單位的記錄方式,就是在內(nèi)容描述信息中的內(nèi)容分類信息中,不同的內(nèi)容劃分級別記錄在不同的位置上。舉例來說如(0000,0001)代表的是該片段屬于屬性 A“預(yù)告片”內(nèi)容,而(0000,0010)代表的是該片段屬于屬性B“精彩章節(jié)“內(nèi)容,那么(0000, 0011)代表該片段既屬于屬性A,也屬于屬性B的內(nèi)容。同理可以對一個片段進(jìn)行多種內(nèi)容劃分的定義。該發(fā)明所述方法不僅支持用戶對下載文件中根據(jù)自己的需要進(jìn)行內(nèi)容選擇(基于一個profile),還支持多個不同內(nèi)容級別之間的切換,即從profile-Ι到profile-2或者其他profile之間進(jìn)行任意切換。舉例來說,對Profile-I來說,第3個塊并不包含在 profile-Ι中,而對于peofile-2來說,第3塊包含在profile-2的定義中。當(dāng)用戶開始下載了 profile-Ι的所有片段進(jìn)行了播放后,還希望以profile-2的方式進(jìn)行下載和播放,這樣下載客戶端對profile-Ι和profile-2進(jìn)行比較,發(fā)現(xiàn)第3塊數(shù)據(jù)內(nèi)容由于profile-1級別時并沒有下載,而prof ile-2中需要,這時候下載客戶端只需要追加下載第3塊內(nèi)容即可。其基本方法是對profile-Ι和profile-2進(jìn)行差分,然后追加下載需要的內(nèi)容,而無需對profile-2中的所有內(nèi)容都進(jìn)行下載。節(jié)省了下載空間和時間。等這些希望得到而本地沒有的片段被成功下載到本地以后,再將之前擁有的和本次下載的所有片段,按照新的 profile的要求的播放規(guī)則進(jìn)行重新組合,得到屬于完整下載部分的內(nèi)容。同理,從prof ile-2到profile-3級別的切換也一樣,如果已經(jīng)下載過的片段則不進(jìn)行再次下載,如果是希望擁有而對之前沒有下載過的片段進(jìn)行重新下載,然后按照新的內(nèi)容要求進(jìn)行重新組合。如果是之前的內(nèi)容級別所包含的內(nèi)容已經(jīng)完全包含新的期望內(nèi)容級別的所有片段的話,則期望內(nèi)容級別的片段都已經(jīng)曾經(jīng)被下載到本地過,則無需進(jìn)行新的片段的下載,只需要將已有片段按照新的內(nèi)容劃分級別進(jìn)行重新組合即可。對于如圖1所示的profile-3既是將部分屬于精彩章節(jié)中的內(nèi)容追加在整個文件的末端。這樣雖然整個profile-3的內(nèi)容長度比原始文件還要長,而在profile-3中,追加部分的內(nèi)容都是屬于原始文件中,只是進(jìn)行了重復(fù)和重新組合,因此所需要的下載量還是和原始文件一致。這樣即使增加了用戶收看的時間長度,而沒有增加任何的額外下載量。除了之前所述的兩種實現(xiàn)方法以外,還可以有其他多種的獲得個性化profile定義的方法,同時也可以是用戶自己進(jìn)行定義的。以下說明應(yīng)用本發(fā)明的視頻設(shè)備的例子。圖15示出了進(jìn)行個性化下載和播放的一種視頻設(shè)備1的框圖。視頻設(shè)備1包括 下載裝置11、組合裝置12、顯示裝置13和對這些裝置進(jìn)行控制的控制裝置(CPU),根據(jù)需要,也可以包括選擇裝置14,還可以包括存儲裝置15。本發(fā)明的下載和播放方法所涉及的接收、下載、組合、選擇等各種動作的執(zhí)行并不限于這些接收裝置、下載裝置、組合裝置、選擇裝置等功能模塊,也可以通過CPU進(jìn)行控制來執(zhí)行。以下,簡單說明使用這些功能模塊實現(xiàn)本發(fā)明的視頻設(shè)備1。以BT下載為例,選擇裝置14打開并讀取所得到的個性化BT種子文件,并按照種子文件中定義的一些方式進(jìn)行識別,能夠識別出圖4中所定義的一些個性化信息,然后將這些個性化選項提供給用戶選擇,如用戶可以選擇Profile-K預(yù)告片)也可以選擇Profile-2(精彩章節(jié))等等;之后下載裝置11按照用戶選擇的Profile中所定義的片段列表進(jìn)行下載,同樣下載完畢每一個片段后,按照BT種子文件中包含的對應(yīng)片段的Hash值進(jìn)行校驗,如果校驗正確則表示該片段下載成功,在所有的profile對應(yīng)的片段下載成功后,組合裝置12將這些片段按照Profile 所規(guī)定的次序和方式進(jìn)行組合,播放裝置13根據(jù)個性化種子文件中對應(yīng)于該P(yáng)rof ile所定義的播放方式進(jìn)行播放。另外,下載裝置11也可以像圖12所示那樣,根據(jù)片段的片段描述符獲取片段的屬性,將所獲取的屬性與屬于所指定的個性化級別的片段屬性進(jìn)行匹配,確定需要下載的片段。如果用戶根據(jù)初始等級選擇部分下載,而播放后希望完整的欣賞這些影片,則只需要重新選擇內(nèi)容更加豐富的Profile進(jìn)行下載,而此時,由于部分片段已經(jīng)為之前選定的profile定義并且已經(jīng)進(jìn)行了下載,此時,下載裝置11只需要通過將現(xiàn)在需求的prifile 和之前的profile進(jìn)行簡單差分比較,確定出需要追加下載的內(nèi)容片段,將這些追加的片段進(jìn)行下載。另外,當(dāng)需要下載的內(nèi)容片段如圖10所示,其頭部附加有包含片段屬性的片段頭數(shù)據(jù)時,下載裝置11接收附加有包含規(guī)定的屬性信息的片段頭數(shù)據(jù)的內(nèi)容片段,如屬于預(yù)告片的內(nèi)容片段,顯示裝置13將所接收的這些內(nèi)容片段再現(xiàn)后,當(dāng)用戶還希望觀看完整的影片或精彩章節(jié)時,下載裝置11接收片段頭數(shù)據(jù)不包含規(guī)定的屬性信息的內(nèi)容片段,經(jīng)過組合裝置12的組合,顯示裝置13對兩次接收到的內(nèi)容片段進(jìn)行再現(xiàn)。另外,下載裝置11也可以從存儲有表示屬性的多個屬性信息和各屬性信息所包含的內(nèi)容片段序號的網(wǎng)絡(luò)服務(wù)器接收規(guī)定的屬性信息所包含的內(nèi)容片段序號,從管理服務(wù)器接收具有該內(nèi)容片段序號的終端地址,從該終端地址的各個內(nèi)容提供者處接收內(nèi)容片段,顯示裝置13對這些內(nèi)容片段進(jìn)行再現(xiàn)后,根據(jù)需要,下載裝置11接收除再現(xiàn)過的序號以外的內(nèi)容片段的一部分或全部的內(nèi)容片段,由顯示裝置13進(jìn)行再現(xiàn)。以上說明的方法和視頻設(shè)備僅是例示,在不脫離本發(fā)明主旨的范圍內(nèi),可進(jìn)行各種變更。本發(fā)明提供了一種以片段為單位的個性化內(nèi)容提供和下載以及播放方法,提高了內(nèi)容提供者和用戶對內(nèi)容的控制方式。該方法可以被用于內(nèi)容的發(fā)行階段,比如發(fā)行商希望通過免費提供給用戶一些片花(profile-片花)或者內(nèi)容簡介(profile-簡介)以提高用戶對該內(nèi)容的興趣度,吸引用戶通過使用完全(profile-完全)的下載方式進(jìn)行下載和收看,同時對用戶收取一定的費用,也可以是通過不同的profile提供用戶不同的收視清晰度等等方式,實現(xiàn)對內(nèi)容的分級發(fā)行。而對用戶端來說,希望通過這種方式,個性化自己的下載方式,根據(jù)自己的實際需要的現(xiàn)實條件,如家長控制、網(wǎng)絡(luò)下載速度和網(wǎng)絡(luò)下載等待時間等等的要求,方便自己分級下載和欣賞內(nèi)容,實現(xiàn)各取所需的下載方式。通過這種方式,用戶還可以在播放階段對播放方式進(jìn)行定義。比如用戶下載了所有的片段內(nèi)容,即完整的目標(biāo)文件。而其中的一些片段內(nèi)容可能并不適合兒童觀看,這時候,父母只需要定義一個適合兒童觀看的片段列表,在兒童觀看時,只允許其選擇適合兒童觀看的profile進(jìn)行播放,而不讓其選擇完整文件的播放方式,這樣雖然用戶下載了所有的片段內(nèi)容,但對不同的用戶可以實現(xiàn)不同的播放內(nèi)容,實現(xiàn)了家長控制等個性化方式,極大方便了家庭對內(nèi)容的管理。
權(quán)利要求
1.一種下載方法,其特征在于基于對內(nèi)容進(jìn)行個性化劃分的個性化內(nèi)容定義,對被劃分為多個片段的目標(biāo)文件進(jìn)行個性化下載,所述方法包括以下步驟A)下載客戶端向內(nèi)容提供者發(fā)出下載請求,下載目標(biāo)文件中屬于指定的個性化級別的片段;B)下載客戶端對所下載的片段進(jìn)行組合,組成符合所述個性化級別的要求的個性化內(nèi)容。
2.如權(quán)利要求1所述的下載方法,其特征在于所述個性化內(nèi)容定義包括片段列表定義,根據(jù)每個所述片段的片段序號定義與個性化級別對應(yīng)的片段列表,下載客戶端按照所指定的個性化級別,只下載具有屬于相應(yīng)的片段列表的片段序號的片段。
3.如權(quán)利要求1所述的下載方法,其特征在于所述個性化內(nèi)容定義包括片段屬性定義,對每個所述片段定義與個性化級別對應(yīng)的片段屬性,下載客戶端按照個性化級別,只下載具有相應(yīng)的片段屬性的片段。
4.如權(quán)利要求1 3的任一項所述的下載方法,其特征在于下載客戶端向用戶提供與多個個性化級別分別對應(yīng)的選項,根據(jù)用戶指定的選項確定需要下載的片段,向內(nèi)容提供者發(fā)出所述下載請求。
5.如權(quán)利要求3所述的下載方法,其特征在于內(nèi)容提供者根據(jù)下載客戶端發(fā)出的帶有片段屬性定義的下載請求確定需要下載的片段,供下載客戶端進(jìn)行下載。
6.如權(quán)利要求3或5所述的下載方法,其特征在于根據(jù)目標(biāo)文件的每一個片段的片段描述符獲取所述每一個片段的屬性,將所獲取的屬性與對應(yīng)于所指定的個性化級別的片段屬性進(jìn)行匹配,確定需要下載的片段。
7.如權(quán)利要求1所述的下載方法,其特征在于所述個性化內(nèi)容定義包括對所述片段定義的播放偏移量,在對所述個性化內(nèi)容進(jìn)行播放時,根據(jù)所述播放偏移量跳過所述片段中的一部分?jǐn)?shù)據(jù)。
8.如權(quán)利要求1所述的下載方法,其特征在于下載客戶端根據(jù)組合控制信息對所下載的部分內(nèi)容進(jìn)行組合,所述組合控制信息包括片段的標(biāo)識、以及片段內(nèi)用于組合的內(nèi)容的位置。
9.如權(quán)利要求7所述的下載方法,其特征在于所述的組合控制信息包括片段內(nèi)的起始地址和長度。
10.如權(quán)利要求1所述的下載方法,其特征在于所述個性化內(nèi)容定義存儲在用于P2P下載的種子文件內(nèi)或種子文件外的其他文件,或者,所述個性化內(nèi)容定義由用戶臨時指定,或者被嵌入在下載目標(biāo)文件的內(nèi)部。
11.一種視頻設(shè)備,其特征在于基于對內(nèi)容進(jìn)行個性化劃分的個性化內(nèi)容定義,對被劃分為多個片段的目標(biāo)文件進(jìn)行個性化下載和播放,包括下載裝置,向內(nèi)容提供者發(fā)出下載請求,下載目標(biāo)文件中屬于指定的個性化級別的片段;組合裝置,對所下載的片段進(jìn)行組合,組成符合所述個性化級別的要求的個性化內(nèi)容;和播放裝置,對所述組合裝置所組合的個性化內(nèi)容進(jìn)行播放。
12.如權(quán)利要求11所述的視頻設(shè)備,其特征在于還包括選擇裝置,向用戶提供與多個個性化級別分別對應(yīng)的選項,供用戶選擇, 所述下載裝置根據(jù)用戶指定的選項向內(nèi)容提供者發(fā)出所述下載請求。
13.如權(quán)利要求11所述的視頻設(shè)備,其特征在于所述下載裝置,按照所指定的個性化級別,只下載具有屬于相應(yīng)的片段列表的片段序號、或相應(yīng)的片段屬性的片段。
14.如權(quán)利要求13所述的視頻設(shè)備,其特征在于所述下載裝置,根據(jù)目標(biāo)文件的每一個片段的片段描述符獲取所述每一個片段的屬性,將所獲取的屬性與屬于所指定的個性化級別的片段屬性進(jìn)行匹配,確定需要下載的片段。
15.一種視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后,接收另一部分進(jìn)行再現(xiàn),其特征在于所述目標(biāo)文件的內(nèi)容的一部分是所述目標(biāo)文件的內(nèi)容所包含的內(nèi)容片段中的多個內(nèi)容片段,所述另一部分是除所述目標(biāo)文件的內(nèi)容的一部分以外的所述目標(biāo)文件的一部分或全部的內(nèi)容片段。
16.一種視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后,接收另一部分進(jìn)行再現(xiàn),其特征在于所述內(nèi)容包括多個內(nèi)容片段,在該內(nèi)容片段的頭部附加有片段頭數(shù)據(jù),所述片段頭數(shù)據(jù)包括表示所述內(nèi)容片段的屬性的屬性信息,在所述視頻設(shè)備所要接收的所述片段頭數(shù)據(jù)包含規(guī)定的所述屬性信息的情況下,接收附加有所述片段頭數(shù)據(jù)的內(nèi)容片段,將這些所接收的內(nèi)容片段再現(xiàn)后,接收所述片段頭數(shù)據(jù)不包含所述規(guī)定的屬性信息的內(nèi)容片段,對包含所述規(guī)定的屬性信息的內(nèi)容片段和不包含所述規(guī)定的屬性信息的內(nèi)容片段進(jìn)行再現(xiàn)。
17.—種視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后,接收另一部分進(jìn)行再現(xiàn),其特征在于該視頻設(shè)備能夠與不特定的多個終端連接進(jìn)行所述內(nèi)容的發(fā)送接收,所述內(nèi)容包括多個內(nèi)容片段,這些內(nèi)容片段存儲在不特定的多個終端,所述視頻設(shè)備從存儲有表示所述內(nèi)容的屬性的多個屬性信息和各屬性信息所包含的內(nèi)容片段序號的網(wǎng)絡(luò)服務(wù)器接收規(guī)定的屬性信息所包含的內(nèi)容片段序號,從對所述不特定的多個終端所具有的內(nèi)容片段進(jìn)行管理的管理服務(wù)器接收具有所述內(nèi)容片段序號的終端地址,從該地址的終端接收內(nèi)容片段進(jìn)行再現(xiàn)后,接收除所述所接收的內(nèi)容片段序號以外的內(nèi)容片段的一部分或全部的內(nèi)容片段進(jìn)行再現(xiàn)。
18.如權(quán)利要求15 17的任一項所述的視頻設(shè)備,其特征在于 所述目標(biāo)文件的內(nèi)容的一部分的信息量比另一部分的信息量小。
19.一種內(nèi)容發(fā)送方法,對接收目標(biāo)文件的內(nèi)容的一部分進(jìn)行再現(xiàn)后對另一部分進(jìn)行再現(xiàn)的視頻設(shè)備,經(jīng)由網(wǎng)絡(luò)發(fā)送所述內(nèi)容,其特征在于在所述目標(biāo)文件的內(nèi)容所包含的內(nèi)容片段的頭部,附加片段頭數(shù)據(jù),所述片段頭數(shù)據(jù)包括表示所述內(nèi)容片段的屬性的屬性信息。
20.如權(quán)利要求19所述的內(nèi)容發(fā)送方法,其特征在于所述目標(biāo)文件的內(nèi)容的一部分的信息量比另一部分的信息量小。
全文摘要
本發(fā)明提供一種下載方法,涉及互聯(lián)網(wǎng)技術(shù),P2P傳輸技術(shù)和內(nèi)容劃分等相關(guān)技術(shù)領(lǐng)域。用戶從互聯(lián)網(wǎng)上下載數(shù)據(jù)文件或者多媒體節(jié)目內(nèi)容時,內(nèi)容提供者或內(nèi)容分享者根據(jù)節(jié)目的具體內(nèi)容的屬性不同,將同一個文件中的不同片段定義為不同的屬性,并將這些片段進(jìn)行歸類,將歸類信息提供分享給其他用戶。當(dāng)用戶從互聯(lián)網(wǎng)上下載該內(nèi)容時,下載用戶可以根據(jù)已知的歸類信息,優(yōu)先選擇符合其屬性要求的片段列表,優(yōu)先下載和使用這些片段,并根據(jù)其需要擴(kuò)充片段歸類信息的下載,并提供片段級別的權(quán)利控制和管理策略。
文檔編號H04L29/08GK102196008SQ20101012880
公開日2011年9月21日 申請日期2010年3月8日 優(yōu)先權(quán)日2010年3月8日
發(fā)明者東嶋重樹, 劉立品, 張志剛, 王鴻鳴, 藤井由紀(jì)夫 申請人:株式會社日立制作所