国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于p2p協(xié)議的媒體文件點(diǎn)播控制方法及裝置的制作方法

      文檔序號(hào):7647162閱讀:318來(lái)源:國(guó)知局
      專利名稱:基于p2p協(xié)議的媒體文件點(diǎn)播控制方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及互聯(lián)網(wǎng),尤其涉及基于P2P的媒體文件點(diǎn)播控制。
      背景技術(shù)
      P2P(端對(duì)端,即Peer-to-Peer)也稱對(duì)等聯(lián)網(wǎng),意為一個(gè)網(wǎng)絡(luò)中的 所有節(jié)點(diǎn)的角色、行為、責(zé)任和義務(wù)都是平等的。本文中,將在P2P 網(wǎng)絡(luò)中作為一個(gè)peer(端)出現(xiàn)的用戶設(shè)備(如,個(gè)人計(jì)算機(jī))以 及使用該用戶設(shè)備的用戶不加區(qū)分地統(tǒng)稱為節(jié)點(diǎn)。
      在P2P技術(shù)進(jìn)入互聯(lián)網(wǎng)之前,互聯(lián)網(wǎng)處于一種被稱為客戶機(jī)/服 務(wù)器(Client/Server,簡(jiǎn)稱C/S)的模式下。比如WWW、網(wǎng)絡(luò)游戲等, 其特點(diǎn)是需要有一個(gè)中央服務(wù)器來(lái)處理絕大部分的運(yùn)算工作。該模 式有一個(gè)致命的缺點(diǎn),即隨著需要服務(wù)的客戶端數(shù)目的增多,中央 服務(wù)器所需的網(wǎng)絡(luò)資源也隨之增加,顯而易見地,最終將制約客戶 端數(shù)目的增長(zhǎng)。
      P2P技術(shù)允許節(jié)點(diǎn)跳過中間商,直接連接到其它節(jié)點(diǎn)以執(zhí)行文件 傳輸?shù)刃畔⒔换?,使互?lián)網(wǎng)重新"非中心化,,,從而向人們發(fā)展互聯(lián) 網(wǎng)技術(shù)的初衷又前進(jìn)了 一步。
      由于具備傳輸速度快、帶寬利用率高等特點(diǎn),采用MFTP多源 下載技術(shù)的BT (基于BitTorrent協(xié)議)、電騾(eMule)等P2P應(yīng)用軟 件如今已經(jīng)成為網(wǎng)民生活的 一部分,每個(gè)節(jié)點(diǎn)既是客戶端又是服務(wù) 器,在下載的同時(shí)也在向其它節(jié)點(diǎn)上傳,于是,使用的人越多,下 載的速度反而越快,而這在互聯(lián)網(wǎng)高度中心化的時(shí)代是難以想象的。
      MFTP多源下載技術(shù)的核心包括
      一、將資源文件分割成等長(zhǎng)的分片,以便標(biāo)記和處理(雖然分 片等長(zhǎng),但等長(zhǎng)分片的大小可以調(diào)整);二、 節(jié)點(diǎn)之間必須互相了解對(duì)方都有哪些分片,以《更互通有無(wú),
      達(dá)到邊下載邊上傳的目的;
      三、 節(jié)點(diǎn)在收到一個(gè)分片后需要校驗(yàn)該分片是否正確。因?yàn)椋?成千上萬(wàn)個(gè)分片中的一個(gè)分片的錯(cuò)誤都將導(dǎo)致整個(gè)資源文件被損 壞,表現(xiàn)為媒體文件無(wú)法正常播放、可執(zhí)行文件不能運(yùn)行等等。在
      BT軟件中,節(jié)點(diǎn)通過名為"種子"(Torrent)的文件來(lái)獲得文件的整 體描述以及其中每個(gè)分片的校驗(yàn)碼;電騾中,節(jié)點(diǎn)在下載分片的同 時(shí)從其它節(jié)點(diǎn)處得到該分片的校驗(yàn)碼。
      播放媒體文件的前提是播放器加載文件控制頭(以下稱為文件 控制信息)。雖然BT、電騾等能夠?qū)崿F(xiàn)高速的文件下載,但因其對(duì) 文件的所有分片(包括文件控制信息所在的控制信息分片)實(shí)施亂 序下載,故無(wú)法支持媒體文件的邊下載邊播放,節(jié)點(diǎn)也就只能在完 整下載該媒體文件后才可以對(duì)其進(jìn)行播放。
      可見,現(xiàn)有技術(shù)中尚未實(shí)現(xiàn)基于P2P技術(shù)的支持邊下載邊播放 的媒體文件點(diǎn)播控制。

      發(fā)明內(nèi)容
      為解決現(xiàn)有技術(shù)存在的上述問題,實(shí)現(xiàn)基于P2P技術(shù)的媒體文 件點(diǎn)播,特提出本發(fā)明。
      根據(jù)本發(fā)明的第一方面,提供了一種在用戶設(shè)備中基于P2P協(xié)
      議來(lái)對(duì)流式媒體文件的點(diǎn)播進(jìn)行控制的方法,其中,包括以下步驟
      確定所述媒體文件的多個(gè)分片中包含文件控制信息的所有控制信息
      分片;基于所確定的所述所有控制信息分片,獲得所述文件控制信 自
      根據(jù)本發(fā)明的第二方面,提供了一種在用戶設(shè)備中基于P2P協(xié) 議來(lái)對(duì)非流式媒體文件的點(diǎn)播進(jìn)行控制的方法,其中,包括以下步 驟確定所述媒體文件的多個(gè)分片中包含文件控制信息的所有控制 信息分片;基于所確定的所述所有控制信息分片,獲得所述文件控 制信息;獲得該媒體文件的索引信息。根據(jù)本發(fā)明的第三方面,提供了一種在用戶設(shè)備中基于P2P協(xié) 議來(lái)對(duì)流式媒體文件的點(diǎn)播進(jìn)行控制的第 一 點(diǎn)播控制裝置,其中,包括第一確定裝置,用于確定所述媒體文件的多個(gè)分片中包含文 件控制信息的所有控制信息分片;第一獲得裝置,用于基于所確定 的所述所有控制信息分片,獲得所述文件控制信息。根據(jù)本發(fā)明的第四方面,提供了一種在用戶設(shè)備中基于P2P協(xié) 議來(lái)對(duì)非流式媒體文件的點(diǎn)播進(jìn)行控制的第二點(diǎn)播控制裝置,其中, 包括第一確定裝置,用于確定所述媒體文件的多個(gè)分片中包含文 件控制信息的所有控制信息分片;第一獲得裝置,用于基于所確定 的所述所有控制信息分片,獲得所述文件控制信息;第二獲得裝置, 用于獲得該媒體文件的索引信息。采用本發(fā)明提供的技術(shù)方案,通過優(yōu)先地獲得文件控制信息, 并針對(duì)非流式媒體文件獲得其索引信息,在P2P協(xié)議下實(shí)現(xiàn)了媒體 文件的下載、播放的同時(shí)進(jìn)行,優(yōu)選地,通過總是優(yōu)先地下栽媒體 文件多個(gè)數(shù)據(jù)分片中靠近播放位置的數(shù)據(jù)分片,提供了良好的用戶 體驗(yàn)。


      通過結(jié)合以下附圖對(duì)本發(fā)明的非限定性實(shí)施例所作描述,本發(fā) 明的其它目的、特征及優(yōu)勢(shì)將更為明顯。圖1為根據(jù)本發(fā)明的具體實(shí)施方式
      的P2P網(wǎng)絡(luò)示意圖; 圖2為一般媒體文件的格式示意圖;圖3a與圖3b示出了媒體文件的數(shù)據(jù)部分的兩種可選格式中的; 圖4為根據(jù)本發(fā)明的第一實(shí)施例在用戶設(shè)備中基于P2P協(xié)議來(lái) 對(duì)流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖;圖5為根據(jù)本發(fā)明的第二實(shí)施例在用戶設(shè)備中基于P2P協(xié)議來(lái)對(duì)流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖;圖6為根據(jù)本發(fā)明的第三實(shí)施例的在用戶設(shè)備中基于P2P協(xié)議來(lái)對(duì)非流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖;圖7示出了與本發(fā)明的第三實(shí)施例的變化例相對(duì)應(yīng)的々某體文件數(shù)據(jù)部分下載情況;圖8為根據(jù)本發(fā)明的第五實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)非 流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖;圖9為根據(jù)本發(fā)明的第六實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)非 流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖;圖10為根據(jù)本發(fā)明的第七實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)非 流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程11為根據(jù)本發(fā)明的具體實(shí)施方式
      的在用戶設(shè)備中基于P2P協(xié) 議來(lái)對(duì)流式媒體文件的點(diǎn)播進(jìn)行控制的第 一 點(diǎn)播控制裝置框圖;圖12為根據(jù)本發(fā)明的具體實(shí)施方式
      的在用戶設(shè)備中基于P2P協(xié) 議來(lái)對(duì)非流式4體文件的點(diǎn)播進(jìn)行控制的第二點(diǎn)播控制裝置框圖;圖13為具體實(shí)現(xiàn)本發(fā)明提出的點(diǎn)播控制方案的P2P軟件結(jié)構(gòu)示 意圖。
      具體實(shí)施方式
      為方^f更理解,首先解釋本文中出現(xiàn)的一些積無(wú)念 -分片本文中,將包含文件控制信息的控制信息分片、包含數(shù) 據(jù)信息的數(shù)據(jù)分片以及包含索引信息的索引信息分片統(tǒng)稱為分片, 在同一媒體文件中各個(gè)分片的大小相同, 一般的媒體文件的分片的 大小為在64KB (千比特)-8MB (兆比特)左右不等, 一般通常在 512KB-1MB左右;-控制信息分片包含文件控制信息的分片;-數(shù)據(jù)分片包含媒體文件的數(shù)據(jù)部分的數(shù)據(jù)信息的分片;-索引信息分片包含索引信息的分片;考慮這樣 一 種情況,當(dāng) 一 個(gè)分片無(wú)法僅被文件控制信息或數(shù)據(jù) 信息或索引信息充滿時(shí),則該分片將包含上述三種信息中之至少兩 種,此時(shí),應(yīng)當(dāng)理解,該分片擁有多重身份。如,位于文件控制信 息與數(shù)據(jù)部分交界處的分片可能包含文件控制信息(之一部分或全部)和數(shù)據(jù)信息(之一部分),則該分片在文件控制信息的獲得過 程中,以及數(shù)據(jù)信息的處理過程中將分別作為控制信息分片和數(shù)據(jù)分片發(fā)揮作用,依此類推;下載源指擁有某個(gè)分片并為其它節(jié)點(diǎn)提供該分片下載的節(jié)點(diǎn)。 圖1所示的根據(jù)本發(fā)明的具體實(shí)施方式
      的P2P網(wǎng)絡(luò)中包括多個(gè) 節(jié)點(diǎn)和一個(gè)目錄服務(wù)器,簡(jiǎn)明起見,其中僅示出節(jié)點(diǎn)1、 2、 3、 4。 各節(jié)點(diǎn)登錄到目錄服務(wù)器后,需要向目錄服務(wù)器報(bào)告自身?yè)碛械馁Y 源信息,以便與其它節(jié)點(diǎn)互通有無(wú)。目錄服務(wù)器在BT中稱為跟蹤服 務(wù)器(Tracker),在電騾中則稱為電騾服務(wù)器,保存擁有與該媒體 文件下載任務(wù)相對(duì)應(yīng)的peer列表。圖中的各個(gè)節(jié)點(diǎn)中均引入了本發(fā)明所提供的第 一 點(diǎn)播控制裝置以及第二點(diǎn)播控制裝置。圖2為一般媒體文件的格式示意圖,適用范圍包括但不限于 AVI、 RMVB、 RM、 WMV及ASF等。其中,RMVB、 RM、 WMV 和ASF等文件屬于流式媒體文件,而AVI則屬于非流式媒體文件。 圖中所示結(jié)構(gòu)包括文件控制信息、數(shù)據(jù)部分、索引信息,其中文件控制信息包含索引信息的位置、媒體格式、解壓縮解碼 器標(biāo)識(shí)、數(shù)據(jù)部分位置、數(shù)據(jù)部分格式以及媒體文件播放時(shí)間等全 局性控制信息;數(shù)據(jù)部分負(fù)責(zé)對(duì)視頻文件的畫面信息進(jìn)行描述,是對(duì)媒體文 件的大小起決定性作用的部分;索引信息包含對(duì)數(shù)據(jù)部分中幀(尤其是關(guān)鍵幀)的位置的描 述,具體地,可包括如下信息幀時(shí)間戳、幀編號(hào)、幀在媒體文件 中的起始和結(jié)束位置。對(duì)于非流式媒體文件的播放而言,索引信息 是必需的,而在流式媒體文件的播放中,索引信息并非必需。圖3a、圖3b示出了媒體文件的數(shù)據(jù)部分的多種可選格式中的兩 種,其中,關(guān)鍵幀描繪了一個(gè)基本畫面的完整畫面信息,預(yù)測(cè)幀則 描述其所對(duì)應(yīng)的畫面與參考畫面(如,關(guān)鍵幀所描述的基本畫面) 的區(qū)別。圖3a所示格式中,數(shù)據(jù)部分僅包括關(guān)鍵幀,采用該種格式的媒體文件體積較大,因此,適用于對(duì)壓縮率不壽文感的情況。在此基礎(chǔ)上,為提高媒體文件的壓縮率,引入預(yù)測(cè)幀的概念,如囝3b所示,媒體文件的數(shù)據(jù)部分包括關(guān)鍵幀及其相應(yīng)前向預(yù)測(cè)幀(如有)。其中各幀的播放(顯示)順序與其在媒體文件中的存儲(chǔ)順序、在解碼器中的解碼順序一致。前向預(yù)測(cè)幀n、 ni均參考關(guān)鍵幀I。為實(shí)現(xiàn)圖3b所示的播放順序,解碼器的一種典型操作如下所 述1. 解碼關(guān)鍵幀I并將其緩存;2. 結(jié)合關(guān)鍵幀I解碼前向預(yù)測(cè)幀II并將其緩存;3. 結(jié)合關(guān)鍵幀I解碼前向預(yù)測(cè)幀III并將其緩存;4. 解碼關(guān)鍵幀IV并將其緩存......。播放裝置順序地由緩存器中提取經(jīng)過解碼后的各幀,以進(jìn)行播放。其中,各幀的類型可以基于幀頭中的幀類型指示信息來(lái)加以確定。本領(lǐng)域技術(shù)人員應(yīng)理解,本發(fā)明為在基于P2P協(xié)議的視頻下載 方案中通過優(yōu)先地獲取文件控制信息(在非流式媒體文件中還包括 索引信息)以實(shí)現(xiàn)利用該文件控制信息(在非流式媒體文件中還包 括索引信息)查找需要進(jìn)行播放的幀,以實(shí)現(xiàn)邊下載邊播放的目的。 對(duì)于所查找并下載的各幀進(jìn)行解碼的過程可基于具體的媒體文件格 式采用現(xiàn)有的各種解碼方案來(lái)實(shí)現(xiàn)。實(shí)際應(yīng)用中,往往只需要把幀 分割開,分別輸入解碼器即可。以下結(jié)合流程圖對(duì)本發(fā)明的第 一 方面進(jìn)行描述。 應(yīng)當(dāng)理解,由于媒體文件被分為大量分片,而本發(fā)明的部分操 作需要對(duì)每個(gè)分片或每個(gè)幀來(lái)分別進(jìn)行,因此,本文所涉及的流程 圖中所示各步驟之間的順序關(guān)系僅針對(duì)具體實(shí)施例,不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。對(duì)應(yīng)優(yōu)化程度不同的用戶體驗(yàn),本發(fā)明的第 一方面有如下具體實(shí)施例第一實(shí)施例為一種根據(jù)本發(fā)明第一方面的基于現(xiàn)有技術(shù)下栽 數(shù)據(jù)分片、無(wú)跳幀/無(wú)拖放功能的流式媒體文件點(diǎn)播控制方法圖4為根據(jù)本發(fā)明的笫一實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)流 式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖,以下參照?qǐng)D4并結(jié)合圖 1、圖3a和圖3b進(jìn)行描述。假設(shè)需要進(jìn)行流式媒體文件點(diǎn)播的節(jié)點(diǎn) 為圖1所示節(jié)點(diǎn)1。在步驟S10中,節(jié)點(diǎn)1獲取節(jié)點(diǎn)2、 3、 4的資源相關(guān)信息,從 而知曉其它各節(jié)點(diǎn)擁有哪些分片,以便在下載相應(yīng)分片時(shí)有目的地 選擇下載源。由于節(jié)點(diǎn)2、 3、 4在作為節(jié)點(diǎn)1的下載源的同時(shí),也 可能在不停地下載屬于該媒體文件的分片,因此,所述步驟10中, 節(jié)點(diǎn)1除從目錄服務(wù)器處獲得其它節(jié)點(diǎn)的資源相關(guān)信息外,還由來(lái) 自節(jié)點(diǎn)2、 3、 4中與節(jié)點(diǎn)1已建立連接的節(jié)點(diǎn)的資源信息報(bào)告消息 來(lái)獲取該等節(jié)點(diǎn)的資源相關(guān)信息?,F(xiàn)有技術(shù)中對(duì)此已有成熟的支持 方案,如,使用BT軟件的節(jié)點(diǎn)在成功下載完成一個(gè)分片后,將向與 其連接的其它各個(gè)節(jié)點(diǎn)發(fā)送包含該分片標(biāo)識(shí)的"Have (擁有)"消息, 表示其已經(jīng)擁有了該分片。在步驟Sll中,節(jié)點(diǎn)1在該媒體文件的多個(gè)分片中確定其中的 所有控制信息分片。該步驟的可實(shí)現(xiàn)性主要基于分片大小和媒體 文件的文件控制信息的大小均有 一 定限制且文件控制信,i、總是位于 々某體文件的特定位置(如首部),容易理解,如先行根據(jù)該媒體文 件的描述信息(如,種子文件所攜帶的描述信息)確定其文件類型, 則文件控制信息的大小范圍將更容易估計(jì),以RMVB文件為例,其 文件控制信息通常為50KB以內(nèi)。可選地,節(jié)點(diǎn)1也可以在媒體文 件首部大致確定若干個(gè)分片(以保證其中包括所有控制信息分片為 前提),通常,l-2個(gè)分片可以包括所有文件控制信息。在步驟S12中,節(jié)點(diǎn)1將所確定的所有控制信息分片全部下載 到本地,其中,每個(gè)分片的下載源可以基于此前獲得的其它各個(gè)節(jié) 點(diǎn)的資源相關(guān)信息來(lái)確定。在步驟S13中,節(jié)點(diǎn)1由所述所有控制信息分片中提取該媒體文件的文件控制信息,播放器(模塊)加載文件控制信息后,流式 媒體文件播放的準(zhǔn)備工作基本完成。步驟S14與步驟S10-S13并無(wú)嚴(yán)格的順序關(guān)系,也即,數(shù)據(jù)分片的下栽可與文件控制信息的獲得同時(shí)進(jìn)行,也可在獲得文件控制信息后進(jìn)行。本實(shí)施例中,沿用現(xiàn)有技術(shù)如BT或電騾中的亂序下載、 稀缺分片優(yōu)先下載等方案來(lái)下載數(shù)據(jù)分片。于是,當(dāng)用戶點(diǎn)擊如《辛德勒的名單》的鏈接后,節(jié)點(diǎn)1依上 述步驟獲得文件控制信息,播放器加載該文件控制信息后,默認(rèn)的 當(dāng)前播放位置為該媒體文件的數(shù)椐部分始端,如,OO小時(shí)00分 00秒000毫秒。這通常也符合人們欣賞媒體文件的習(xí)慣。播放器要成功播放與該當(dāng)前播放位置相對(duì)應(yīng)的畫面,需要對(duì)其 對(duì)應(yīng)幀進(jìn)行解碼。于是,在步驟S15中,節(jié)點(diǎn)1判斷已下載的數(shù)據(jù) 分片中是否包含所述當(dāng)前播放位置的對(duì)應(yīng)幀。假設(shè)圖3a中的關(guān)鍵幀 a位于數(shù)據(jù)部分始端,于是,OO小時(shí)00分00秒000毫秒的對(duì) 應(yīng)幀為關(guān)鍵幀a,關(guān)鍵幀a播放完畢后,下一個(gè)當(dāng)前播放位置如00 小時(shí)OO分OO秒040毫秒的對(duì)應(yīng)幀為關(guān)鍵幀b;假設(shè)圖3b中的 關(guān)4建幀I位于數(shù)據(jù)部分始端,則,OO小時(shí)00分00秒000毫秒 的對(duì)應(yīng)幀為關(guān)鍵幀I,關(guān)鍵幀I播放完畢后,下一個(gè)當(dāng)前播放位置如 OO小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀為關(guān)鍵幀I與前向預(yù)測(cè)幀 II (因?yàn)榍跋蝾A(yù)測(cè)幀的解碼繼而顯示需要依托關(guān)鍵幀)。請(qǐng)先參看圖3a,步驟S15即,節(jié)點(diǎn)1判斷已下載的數(shù)據(jù)分片中 是否包含完整的關(guān)鍵幀a。節(jié)點(diǎn)1在步驟S15中判斷已下載的數(shù)據(jù)分片中是否包含完整的 關(guān)鍵幀a。所述判斷可基于以下事實(shí)實(shí)現(xiàn)1. 根據(jù)當(dāng)前播放位置所對(duì)應(yīng)的時(shí)間點(diǎn)和該媒體文件的碼率,可 以計(jì)算出該時(shí)間點(diǎn)在數(shù)據(jù)部分中的相應(yīng)位置(如,第i字節(jié));2. 由于每個(gè)分片的大小已知、幀長(zhǎng)已知、且分片具有各自的標(biāo) 號(hào),因此,可以在數(shù)據(jù)分片中準(zhǔn)確地定位所述對(duì)應(yīng)幀(如,第N分 片的第j字節(jié)至第k字節(jié))。所述判斷通??梢酝ㄟ^判斷播放器能否成功讀取關(guān)鍵幀a來(lái)進(jìn)行。由此,可得一個(gè)判斷結(jié)果。如果判斷結(jié)果表明,已下載數(shù)據(jù)分片中包含完整的關(guān)鍵幀a(播 放器成功讀取關(guān)鍵幀a),則在步驟S16中對(duì)關(guān)鍵幀a進(jìn)行解碼及其 它相關(guān)處理,用于播放。當(dāng)關(guān)鍵幀a播放完畢,新的當(dāng)前播放位置相應(yīng)地改變(如,00 小時(shí)00分00秒040毫秒,指向關(guān)4建幀b的幀頭),接著,再 針對(duì)所述新的當(dāng)前播放位置執(zhí)行步驟S15(判斷播放器能否成功讀取 關(guān)鍵幀b)及其后續(xù)步驟。其中,播放位置在一幀成功播放后自動(dòng)改 變可由現(xiàn)有技術(shù)支持。如果判斷結(jié)果表明,已下載數(shù)據(jù)分片中不包含完整的關(guān)鍵幀a, 節(jié)點(diǎn)1將維持當(dāng)前播放位置不變,也即,不斷重復(fù)執(zhí)行步驟S15直 至關(guān)鍵幀a的下載全部完成,再進(jìn)到步驟S16中對(duì)其進(jìn)行解碼等處 理以用于播放。在所述等待過程中,可提示用戶當(dāng)前點(diǎn)播狀態(tài)為"載 入中,,("Loading")。請(qǐng)參看圖3b,在引入預(yù)測(cè)幀的壓縮方式下,此時(shí)00小時(shí)00 分00秒000毫秒的對(duì)應(yīng)幀為關(guān)鍵幀I。當(dāng)該關(guān)^:幀I尚未下載完 畢時(shí),播放器將不能成功讀取關(guān)鍵幀I,步驟S15中將得到否定的判 斷結(jié)果,于是,重復(fù)步驟S15,直至該關(guān)鍵幀I下載完畢,進(jìn)到步驟 S16中對(duì)其進(jìn)行解碼等處理,用于播放。仍請(qǐng)參照?qǐng)D3b,在關(guān)鍵幀I播放完畢后,新的播放位置對(duì)應(yīng)關(guān) 鍵幀I與前向預(yù)測(cè)幀II組成的幀組,節(jié)點(diǎn)1針對(duì)所述新的播放位置 執(zhí)行步驟S15中的判斷,如果此時(shí)前向預(yù)測(cè)幀II尚未下載完畢,該 方法將不斷針對(duì)這個(gè)新的播放位置執(zhí)行步驟S15所述的判斷,直至 前向預(yù)測(cè)幀II下載完成。由于索引信息并非流式媒體文件播放之必需,故在此實(shí)施例中索引信息分片可隨數(shù)據(jù)分片一起亂序下載,也可不下載。不難看出,第一實(shí)施例中,由于數(shù)據(jù)分片之間并無(wú)下載優(yōu)先級(jí) 之分,更確切地說(shuō),數(shù)據(jù)分片的下載優(yōu)先級(jí)與當(dāng)前播放位置無(wú)關(guān),因此容易出現(xiàn)用戶長(zhǎng)時(shí)間等待的情況,用戶體驗(yàn)較差。笫二實(shí)施例 在此基礎(chǔ)上對(duì)數(shù)據(jù)分片的下載優(yōu)先級(jí)進(jìn)行優(yōu)化,詳情如下。笫二實(shí)施例為一種根據(jù)本發(fā)明第一方面的,基于當(dāng)前播放位 置確定數(shù)據(jù)分片的下栽優(yōu)先級(jí)、無(wú)跳幀且無(wú)拖放功能的流式媒體文 件點(diǎn)播控制方法圖5為根據(jù)本發(fā)明的第二實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)流 式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖,以下參照?qǐng)D5并結(jié)合圖 1、圖3a及圖3b進(jìn)行描述。為體現(xiàn)方案完整性,圖5中仍示出了與圖4中相同的步驟,但 其相應(yīng)的文字描述將較簡(jiǎn)略,請(qǐng)參看圖4相關(guān)說(shuō)明部分?;诒景l(fā)明的基本思想,最優(yōu)先地根據(jù)其它多個(gè)節(jié)點(diǎn)的資源相 關(guān)信息獲得媒體文件的文件控制信息。此外,為有目的地為數(shù)據(jù)分 片賦予優(yōu)先級(jí),在步驟S24中根據(jù)當(dāng)前播放位置確定優(yōu)先下載的數(shù) 據(jù)分片。優(yōu)選地,根據(jù)各數(shù)據(jù)分片在媒體文件的播放方向上與當(dāng)前 播放位置的距離遠(yuǎn)近來(lái)設(shè)置數(shù)據(jù)分片的下載優(yōu)先級(jí),距離當(dāng)前播放 位置越近,該數(shù)據(jù)分片的下載優(yōu)先級(jí)越高,反之則越低。另外,當(dāng) 當(dāng)前播放位置因?yàn)槟撤N原因(如下文提到'的跳幀、拖放等)而改變 時(shí),數(shù)據(jù)分片的下載優(yōu)先級(jí)也將隨之改變,距離新的當(dāng)前播放位置 越近的數(shù)據(jù)分片的下載優(yōu)先級(jí)越高,反之越低。由此,可以在未下 載的數(shù)據(jù)分片中選定一個(gè)優(yōu)先下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高)。具體地,可根據(jù)媒體文件的碼率和時(shí)間點(diǎn)在媒體文件中確定當(dāng) 前播放位置所對(duì)應(yīng)的位置,從而在各個(gè)分片中確定與該位置對(duì)應(yīng)的 數(shù)據(jù)分片,從而將其確定為最高下載優(yōu)先級(jí)的數(shù)據(jù)分片,也即優(yōu)先 下載的數(shù)據(jù)分片。于是,對(duì)應(yīng)媒體文件初始的當(dāng)前播放位置00小時(shí)00分00 秒000毫秒,優(yōu)先下載的數(shù)據(jù)分片分別位于數(shù)據(jù)部分的首部。此后,進(jìn)到步驟S25中,節(jié)點(diǎn)1根據(jù)其掌握的其它節(jié)點(diǎn)的資源 相關(guān)信息判斷其在步驟S24中確定的優(yōu)先下載的數(shù)據(jù)分片是否存在于其它節(jié)點(diǎn)的可下載分片中。具體地,根據(jù)該優(yōu)先下載的數(shù)據(jù)分片 的分片號(hào),基于從目錄服務(wù)器處獲得的信息以及來(lái)自其它節(jié)點(diǎn)的資源信息報(bào)告消息(如,"Have")進(jìn)行所述判斷。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中包括所述優(yōu)先下載的數(shù) 據(jù)分片時(shí),節(jié)點(diǎn)1確定一個(gè)下載源并在步驟S26中下載該數(shù)據(jù)分片。 所述下載源可以隨機(jī)選擇,優(yōu)選地,節(jié)點(diǎn)1在各個(gè)擁有該分片的節(jié) 點(diǎn)中選擇為其提供最快下載速度的節(jié)點(diǎn)作為該分片的下載源。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中不包括該優(yōu)先下載的數(shù) 據(jù)分片時(shí),節(jié)點(diǎn)1將與該優(yōu)先下栽的數(shù)據(jù)分片相鄰的下一數(shù)據(jù)分片 作為新的優(yōu)先下載的數(shù)據(jù)分片,繼而回到步驟S25中再針對(duì)其執(zhí)行 相應(yīng)的判斷。此外,下載進(jìn)度可能超前于播放進(jìn)度,也即,當(dāng)確定的優(yōu)先下 載的數(shù)據(jù)分片可能屬于已經(jīng)下載完畢的數(shù)據(jù)分片時(shí),該方法從該優(yōu) 先下載的數(shù)據(jù)分片開始沿文件播放方向向下查找,直至找到一個(gè)尚 未下載完畢的數(shù)據(jù)分片,進(jìn)而將其確定為新的優(yōu)先下栽的數(shù)據(jù)分片, 然后判斷是否有節(jié)點(diǎn)能夠提供下載,如有,則下載該新的優(yōu)先下載 的數(shù)據(jù)分片。上述情況可能出現(xiàn)在如下情形中- 網(wǎng)絡(luò)速度和資源情況均足夠理想;- 用戶基于其它實(shí)施例選擇向播放方向的反方向拖放(快 退);- 用戶將播放暫?;蛲V苟试S下載器(模塊)繼續(xù)工作等。 第二實(shí)施例保證了下載對(duì)象(數(shù)據(jù)分片)與當(dāng)前播放位置的適應(yīng)性,在相同的網(wǎng)絡(luò)條件下使得進(jìn)行播放所需的緩存時(shí)間,并且使 得在媒體文件下載的同時(shí)播放過程更加流暢,從而提高了用戶體驗(yàn)。第三實(shí)施例為一種根據(jù)本發(fā)明第一方面的,基于當(dāng)前播放位 置確定數(shù)據(jù)分片的下栽優(yōu)先級(jí)、支持跳幀但無(wú)拖放功能的流式媒體 文件點(diǎn)播控制方法圖6為根據(jù)本發(fā)明的第三實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)流式々某體文件的點(diǎn)4番進(jìn)4亍控制的方法流一呈圖,以下參照?qǐng)D6并結(jié)合圖1、圖3a和圖3b進(jìn)行描述。本實(shí)施例中,為支持跳幀,需要媒體文件的索引信息,獲得索 引信息的步驟S34與步驟S30-S33之間并無(wú)嚴(yán)格的順序關(guān)系。同樣, 由于P2P技術(shù)為多源下載,因此在步驟S30-33與步驟S34的執(zhí)行過 程中,也可同時(shí)地由不同的其他用戶處下載數(shù)據(jù)分片。其中,索引信息可采用以下任一方式獲得a. 根據(jù)文件控制信息,計(jì)算索引信息位置,從而準(zhǔn)確地確定所 有索引信息分片,將其下載后提取索引信息;b. 根據(jù)種子文件中的描述信息獲知媒體文件的文件類型,從而 大致計(jì)算索引信息位置,以確定所有索引信息分片,繼而下載并提 取索引信息。獲得索引信息的過程基于如下事實(shí)分片大小、媒體文件的索 引信息大小均有一定限制且索引信息總是位于媒體文件的特定位置 (如尾部)。不同類型媒體文件的索引信息尺寸相差比較大, 一般 AVI和WMV格式々某體文件的索引信息在1-5MByte左右,而RMVB 格式媒體文件的索引信息尺寸對(duì)比較小,約256-500KByte。容易理 解,確定了文件類型,可以更容易地估計(jì)索引信息的尺寸,從而確 定所有索引信息分片。以下描述第三實(shí)施例中如何實(shí)現(xiàn)流式媒體文件點(diǎn)播時(shí)的跳幀。請(qǐng)參看圖3a,假設(shè)圖3a中關(guān)鍵幀a為文件點(diǎn)播之初的播放位置 "00小時(shí)00分00秒000毫秒"所指示。如果在步驟S38中判斷出已下載的數(shù)據(jù)分片中包含完整的關(guān)鍵 幀a(如,解碼器或播放器成功讀取關(guān)鍵幀a),則進(jìn)到步驟S39, 對(duì)"00小時(shí)00分00秒000毫秒"的對(duì)應(yīng)幀即關(guān)鍵幀a進(jìn)行解 碼等處理,用于播放。關(guān)鍵幀a播放完畢后,新的當(dāng)前播放位置指 向關(guān)鍵幀b,繼而針對(duì)關(guān)鍵幀b執(zhí)行步驟S38中的判斷。相反地,如果在步驟S38中判斷出已下載的數(shù)據(jù)分片中不包含 完整的關(guān)鍵幀a(如,只包括關(guān)鍵幀a的部分?jǐn)?shù)據(jù)信息或不包括關(guān)鍵幀a的數(shù)據(jù)信息,使得解碼器或播放器無(wú)法成功讀取關(guān)^t幀a),節(jié) 點(diǎn)1將在步驟S39,中優(yōu)選地根據(jù)所述索引信息判斷當(dāng)前播放位置"OO 小時(shí)00分00秒000毫秒"之后的其它播放位置(對(duì)應(yīng)關(guān)鍵幀 b、關(guān)鍵幀c、關(guān)鍵幀d等)中是否存在這樣的另一播放位置,其對(duì) 應(yīng)幀已下載完成。索引信息通常包含關(guān)鍵幀的位置信息(如,各個(gè) 關(guān)鍵幀在媒體文件播放時(shí)間中的相應(yīng)時(shí)間點(diǎn);或所述時(shí)間點(diǎn)與碼流 中相應(yīng)字節(jié)的映射信息;或各個(gè)關(guān)鍵幀所在的分片號(hào)及其在該分片 中的具體位置,等等),在有些情形下,其中還包含其它各種幀(如, 前向預(yù)測(cè)幀、后向預(yù)測(cè)幀、雙向預(yù)測(cè)幀等)的位置信息??傊鶕?jù)索引信息,節(jié)點(diǎn)1可以對(duì)媒體文件中的至少所有關(guān) 鍵幀進(jìn)行定位。另外,根據(jù)媒體文件的碼率和分片大小,可以在數(shù) 據(jù)分片中確定各關(guān)鍵幀所對(duì)應(yīng)的數(shù)據(jù)信息(如,第N分片的第i字 節(jié)至第j字節(jié))。從而可以實(shí)現(xiàn)步驟S39'中的判斷。如果不存在這樣的一個(gè)播放位置,則可選地,該方法回到步驟 S38,重新判斷當(dāng)前播放位置"00小時(shí)00分00秒000毫秒" 的對(duì)應(yīng)幀即關(guān)鍵幀a是否下載完成。如果存在這樣的一個(gè)或多個(gè)播放位置,則可選地,該方法從中 隨機(jī)選擇一個(gè)播放位置作為新的當(dāng)前播放位置,并進(jìn)到步驟S39中 對(duì)其對(duì)應(yīng)幀進(jìn)行解碼等處理,用于播放。優(yōu)選地,該方法從多個(gè)滿 足條件的播放位置中挑選距離當(dāng)前播放位置最近的一個(gè)播放位置作 為新的當(dāng)前播放位置,并對(duì)其對(duì)應(yīng)幀進(jìn)行解碼等處理,用于播放??蛇x地,在步驟S39,中,節(jié)點(diǎn)1還可基于索引信息執(zhí)行以下操作1) 判斷已下載數(shù)據(jù)分片中是否包含當(dāng)前播放位置的下 一 播放 位置(如,00小時(shí)00分00秒040毫秒)的對(duì)應(yīng)幀(關(guān)鍵幀b);1.1) 如果l)中的判斷結(jié)果為是,則將00小時(shí)00分00秒 040毫秒作為新的當(dāng)前播放位置,并對(duì)其對(duì)應(yīng)幀關(guān)鍵幀b進(jìn)行解碼等 處理,用于播放;1.2) 如果1 )中的判斷結(jié)果為否,則說(shuō)明關(guān)鍵幀b所在的若干數(shù)據(jù)分片尚未下載完畢,于是,可再判斷已下載數(shù)據(jù)分片中是否包含當(dāng)前播放位置的再下一個(gè)播放位置(如,OO小時(shí)00分00秒080 毫秒)的對(duì)應(yīng)幀(關(guān)鍵幀c);1.2.1)若1.2)中的判斷結(jié)果也為否,則再針對(duì)再下一個(gè)播放位 置(如,OO小時(shí)00分00秒120毫秒)的對(duì)應(yīng)幀(關(guān)4定幀d) 進(jìn)行上述判斷。一旦得到肯定的判斷結(jié)果,該方法將進(jìn)到步驟S39中對(duì)相應(yīng)播 放位置的對(duì)應(yīng)幀進(jìn)行解碼等處理,用于播放。以上對(duì)數(shù)據(jù)部分存儲(chǔ)順序如圖3a所示的媒體文件在本實(shí)施例下 的點(diǎn)播控制進(jìn)行了描述,下面,參照?qǐng)D3b,對(duì)于采用預(yù)測(cè)幀的媒體 文件的點(diǎn)播控制進(jìn)行說(shuō)明。設(shè)當(dāng)前4番放位置為00小時(shí)00分00秒000毫秒,其對(duì)應(yīng)幀 為關(guān)鍵幀I,如果關(guān)鍵幀I已經(jīng)下載完畢,則將其進(jìn)行解碼等處理, 并進(jìn)行緩存或用于播放;再對(duì)下一個(gè)播放位置00小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀 "關(guān)鍵幀I和前向預(yù)測(cè)幀II"是否下栽完畢進(jìn)行判斷;-如果下載完畢,則解碼前向預(yù)測(cè)幀II (結(jié)合關(guān)鍵幀I)并顯示,仍緩存關(guān)鍵幀I;對(duì)再下一個(gè)播放位置00小時(shí)00分00秒080毫秒的對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀III"是否下載完畢進(jìn)行判斷,以此類推。-如果"關(guān)鍵幀I和前向預(yù)測(cè)幀II"尚未下載完畢,則可再根據(jù)索引信息判斷已下載數(shù)據(jù)分片中位于關(guān)鍵幀I之后的下一個(gè)關(guān)鍵幀是否下載完畢,如果該下一個(gè)關(guān)鍵幀已經(jīng)下載完畢,則對(duì)其進(jìn)4于解碼,應(yīng)當(dāng)理解,本文中提及的播放位置(包括但不限于以如下描述 方式體現(xiàn)當(dāng)前播放位置、下一播放位置)的對(duì)應(yīng)幀或?yàn)橐粋€(gè)關(guān)鍵 幀,或?yàn)橐粋€(gè)關(guān)鍵幀及其一個(gè)或多個(gè)預(yù)測(cè)幀。在跳幀中,取決于索 引信息中的描述信息的不同,跳幀的目標(biāo)播放位置也不同,也即, 如果索引信息標(biāo)識(shí)了所有幀(無(wú)論關(guān)鍵幀抑或預(yù)測(cè)幀)在媒體文件中的位置,則當(dāng)關(guān)鍵幀I下載完畢而前向預(yù)測(cè)幀II尚未下完時(shí),播 放器讀耳又前向預(yù)測(cè)幀II失敗,則可以將播放位置跳到與前向預(yù)測(cè)幀III相對(duì)應(yīng)的播放位置如OO小時(shí)00分00秒080毫秒,繼而對(duì) 該播放位置的對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀III"是否下載完畢進(jìn) 行判斷。第三實(shí)施例擁有一個(gè)變化例,現(xiàn)簡(jiǎn)要描述如下,請(qǐng)參照?qǐng)D7。圖 7示出了所述變化例所對(duì)應(yīng)的媒體文件數(shù)據(jù)部分下載情況。虛線表示 尚未下載完畢。假設(shè)播放器當(dāng)前播放到前向預(yù)測(cè)幀Pl,播放器讀取前向預(yù)測(cè)幀 P2日t發(fā)現(xiàn)P2不能讀取,這可能是因?yàn)镻2部分或全部落入了分片X 的未下載部分。于是,播放器根據(jù)該媒體文件的碼率計(jì)算出該分片X實(shí)際對(duì)應(yīng) 的播放時(shí)間段的 一 個(gè)估計(jì)值。因?yàn)閴嚎s算法會(huì)根據(jù)媒體文件的實(shí)際情況來(lái)動(dòng)態(tài)地調(diào)整碼率, 所以,每個(gè)數(shù)據(jù)分片所對(duì)應(yīng)的時(shí)間段或其中包含的幀數(shù)量都是不定 的,關(guān)于這些幀的指示信息可包含在索引信息中。舉例來(lái)講,假設(shè)該媒體文件的分片大小為256KByte,平均碼率 為64KBPS,則每個(gè)數(shù)據(jù)分片大約包含4秒時(shí)間。其中,平均碼率的 計(jì)算方式為平均碼率=數(shù)據(jù)部分總尺寸/文件控制信息給出的媒體文 件播放時(shí)間。假設(shè)P2處于5分10秒,于是,跳過該未下載完畢的分片X, 如,跳到5分14秒,讀取索引信息,查詢5分14秒的對(duì)應(yīng)幀。獲 取該幀在文件中的偏移位置以后,查詢?cè)撈莆恢脤?duì)應(yīng)的文件分片 是否是分片X,如果是分片X,則該幀肯定還沒有下載完畢,就查 找下一個(gè)幀, 一直找到一個(gè)幀完全位于分片X+l上(起始和結(jié)束時(shí) 間的對(duì)應(yīng)偏移位置均落在分片X+l中),該幀就是Pm+l。獲取Pm+l 以后,送給解碼器進(jìn)行解碼即可。另夕l、一種情況就是,5分14秒的對(duì)應(yīng)幀位于Pm+3上,前面的 幀有一點(diǎn)浪費(fèi)。優(yōu)選地,可向后(靠近數(shù)據(jù)部分首部的方向)查找?guī)讉€(gè)已經(jīng)下載的幀,送進(jìn)解碼器解碼,以減少已下載幀的損失。第四實(shí)施例為一種根據(jù)本發(fā)明笫一方面的,基于當(dāng)前播放位 置確定數(shù)據(jù)分片的下栽優(yōu)先級(jí)的,支持跳幀并支持拖放功能的流式 媒體文件點(diǎn)播控制方法在觀看媒體文件的時(shí)候,用戶可能需要選擇一個(gè)播放位置,作 為新的當(dāng)前播放位置,這也就是我們常說(shuō)的拖放功能。具體的,用戶可通過輸入一個(gè)用于指示所選擇的新播放位置的 用戶指示信息,以使播放進(jìn)程跳至該新播放位置所對(duì)應(yīng)的媒體文件 的新播放時(shí)間點(diǎn)開始向后順序播放。輸入用戶指示信息的實(shí)現(xiàn)方式 可包括(但不限于)a.用戶用鼠標(biāo)拖動(dòng)播放器上的進(jìn)度條到其所 指定位置(對(duì)應(yīng)于該新播放位置);b.用戶直接輸入一個(gè)播放時(shí)間 點(diǎn),該時(shí)間點(diǎn)對(duì)應(yīng)于在該媒體文件中的新播放位置。仍請(qǐng)參看圖6,在本實(shí)施例中,該方法還包括"根據(jù)用戶指示信 息確定新的當(dāng)前播放位置"的步驟(未示出)。于是,節(jié)點(diǎn)1將根 據(jù)用戶指示信息所確定的新的當(dāng)前播放位置來(lái)確定優(yōu)先下載的數(shù)據(jù) 分片,并在步驟S38中針對(duì)所述新的當(dāng)前播放位置判斷其對(duì)應(yīng)幀是 否已經(jīng)下載完成。用戶利用計(jì)算機(jī)外設(shè)向第 一 點(diǎn)播控制裝置發(fā)出用戶指示信息 后,新的當(dāng)前播放位置的確定可以通過以下操作實(shí)現(xiàn)a. 接收用戶指示信息;b. 根據(jù)用戶指示信息中的時(shí)間點(diǎn),基于索引信息,查找與該時(shí) 間點(diǎn)相對(duì)應(yīng)的一個(gè)播j文位置,具體地,查找與該時(shí)間點(diǎn)相對(duì)應(yīng) 的一個(gè)關(guān)4建幀。-如果該時(shí)間點(diǎn)與一個(gè)關(guān)鍵幀正好對(duì)應(yīng),則直接將該關(guān)鍵幀 對(duì)該關(guān)鍵幀所在幀組進(jìn)行解碼等處理,并進(jìn)行緩存或用于播放;-如果該時(shí)間點(diǎn)與關(guān)鍵幀不對(duì)應(yīng),則優(yōu)選地,查找與該時(shí)間 點(diǎn)最接近的一個(gè)關(guān)鍵幀,更為優(yōu)選地,查找在播放順序上位于 該時(shí)間點(diǎn)之后且與該時(shí)間點(diǎn)最接近的 一 個(gè)關(guān)鍵幀。接著,對(duì)所確定的關(guān)4定幀所在幀組進(jìn)行處理,具體地,針對(duì)該幀組執(zhí)行步驟S38及其后續(xù)操作,詳情請(qǐng)參看以上各實(shí)施例的描述。 第四實(shí)施例擁有一個(gè)變化例,現(xiàn)簡(jiǎn)要描迷如下 -讀取索引信息,找到與用戶指示信息中的時(shí)刻最接近的幀,獲 取該幀在媒體文件中的起始和結(jié)束位置; -查詢所述起始和結(jié)束位置位置對(duì)應(yīng)的數(shù)據(jù)分片; -判斷該數(shù)據(jù)分片是否已經(jīng)下載完畢-如果沒有下載完畢,則等待直至該分片下載完畢(或 依第三實(shí)施例進(jìn)行自動(dòng)跳幀);然后將該數(shù)據(jù)分片確定為優(yōu)先下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高);-如果已經(jīng)下載完畢,則讀取該幀,送入解碼器解碼, 并將該數(shù)據(jù)分片之后的第一個(gè)沒有下載完畢的數(shù)據(jù)分片確 定為優(yōu)先下載的數(shù)據(jù)分片。 與本發(fā)明的第一方面相類似地,本發(fā)明的第二方面有對(duì)應(yīng)不同 優(yōu)化程度用戶體驗(yàn)的如下幾個(gè)具體實(shí)施例,以下——詳述。第五實(shí)施例為一種根據(jù)本發(fā)明第二方面的,基于現(xiàn)有技術(shù)下 栽數(shù)據(jù)分片、無(wú)跳幀/無(wú)拖放功能的非流式媒體文件點(diǎn)播控制方法圖8為根據(jù)本發(fā)明的第五實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)非 流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖,以下參照?qǐng)D8并結(jié)合 圖1、圖3a和圖3b進(jìn)行描述。假設(shè)需要進(jìn)行流式媒體文件點(diǎn)播的節(jié) 點(diǎn)為圖1所示節(jié)點(diǎn)1。在步驟S40中,節(jié)點(diǎn)1獲取節(jié)點(diǎn)2、 3、 4的資源相關(guān)信息,從 而知曉其它各節(jié)點(diǎn)擁有哪些分片,以便在下載相應(yīng)分片時(shí)有目的地 選擇下載源。由于節(jié)點(diǎn)2、 3、 4在作為節(jié)點(diǎn)1的下載源的同時(shí),也 可能在不停地下載屬于該媒體文件的分片,因此,所述步驟40中, 節(jié)點(diǎn)1除從目錄服務(wù)器處獲得其它節(jié)點(diǎn)的資源相關(guān)信息外,還由來(lái) 自節(jié)點(diǎn)2、 3、 4中與節(jié)點(diǎn)1已建立連接的節(jié)點(diǎn)的資源信息報(bào)告消息 來(lái)獲取該等節(jié)點(diǎn)的資源相關(guān)信息。現(xiàn)有技術(shù)中對(duì)此已有成熟的支持方案,如,使用BT軟件的節(jié)點(diǎn)在成功下載完成一個(gè)分片后,將向與其連接的其它各個(gè)節(jié)點(diǎn)發(fā)送包含該分片標(biāo)識(shí)的"Have (擁有)"消息, 表示其已經(jīng)擁有了該分片。在步驟S41中,節(jié)點(diǎn)1在該媒體文件的多個(gè)分片中確定其中的 所有控制信息分片。該步驟的可實(shí)現(xiàn)性主要基于分片大小和媒體 文件的文件控制信息的大小均有 一定限制且文件控制信息總是位于 媒體文件的特定位置(如,媒體文件的首部),容易理解,如先行 根據(jù)該媒體文件的描述信息(如,種子文件所攜帶的描述信息)確 定其文件類型,則文件控制信息的大小范圍將更容易估計(jì)??蛇x地, 節(jié)點(diǎn)也可以在媒體文件首部大致確定若干個(gè)分片(以保證其中包括 所有控制信息分片為前提),通常,1-2個(gè)分片可以包括所有文件控 制信息。在步驟S42中,節(jié)點(diǎn)1將所確定的所有控制信息分片全部下載 到本地,其中,每個(gè)分片的下載源可以基于此前獲得的其它各個(gè)節(jié) 點(diǎn)的資源相關(guān)信息來(lái)確定。在步驟S43中,節(jié)點(diǎn)1由所述所有控制信息分片中提取該媒體 文件的文件控制信息。在步驟S44中,節(jié)點(diǎn)1獲得該媒體文件的索引信息。具體可通 過確定所有索引信息分片后將其下載并從中提取索引信息來(lái)實(shí)現(xiàn)。 其中,可以在獲得文件控制信息以后,基于由文件控制信息計(jì)算出 的索引信息位置來(lái)準(zhǔn)確地確定索引信息分片,也可根據(jù)文件類型大 致確定。換言之,索引分片的下載可與控制信息分片同時(shí)下載,而 無(wú)需分先后。同樣,步驟S45中的數(shù)據(jù)分片的下載既可與控制信息分片、索 引信息分片的下載同時(shí)進(jìn)行,也可在控制信息分片下載后再行下載。 本實(shí)施例中,沿用現(xiàn)有技術(shù)如BT或電騾中的亂序卞載、稀缺分片優(yōu) 先下載等方案來(lái)下載數(shù)據(jù)分片。于是,當(dāng)用戶點(diǎn)擊如《辛德勒的名單》的鏈接后,節(jié)點(diǎn)1依上 述步驟獲得文件控制信息和索引信息,播放器加載該文件控制信,I、和索引信息后,默認(rèn)的當(dāng)前播放位置為該媒體文件的數(shù)據(jù)部分始端,如,OO小時(shí)OO分00秒000毫秒。這通常也符合人們欣賞々某體 文件的習(xí)慣。播放器要成功播放與該當(dāng)前播放位置相對(duì)應(yīng)的畫面,需要對(duì)其 對(duì)應(yīng)幀進(jìn)行解碼處理。于是,在步驟S45中,節(jié)點(diǎn)l判斷已下載的 數(shù)據(jù)分片中是否包含所述當(dāng)前播放位置的對(duì)應(yīng)幀,如,對(duì)應(yīng)幀的起 始和結(jié)束時(shí)間點(diǎn)各自對(duì)應(yīng)的時(shí)間,泉所對(duì)應(yīng)的偏移位置所確定的區(qū)間 是否落在下載完畢的數(shù)據(jù)分片中,優(yōu)選地,是否落于各個(gè)數(shù)據(jù)分片 的已下載部分中。假設(shè)圖3a中的關(guān)鍵幀a位于數(shù)據(jù)部分始端,于是, OO小時(shí)00分00秒000毫秒的對(duì)應(yīng)幀為關(guān)4建幀a,關(guān)4建幀a播 放完畢后,下一個(gè)當(dāng)前播放位置如00小時(shí)00分00秒040毫秒 的對(duì)應(yīng)幀為關(guān)鍵幀b;假設(shè)圖3b中的關(guān)鍵幀I位于數(shù)據(jù)部分始端, 則,OO小時(shí)00分00秒000毫秒的對(duì)應(yīng)幀為關(guān)鍵幀I,關(guān)鍵幀I 播放完畢后,下一個(gè)當(dāng)前播放位置如00小時(shí)00分00秒040 毫秒的對(duì)應(yīng)幀為關(guān)鍵幀I與前向預(yù)測(cè)幀II。請(qǐng)先參看圖3a,節(jié)點(diǎn)1在步驟S46中判斷已下載的數(shù)據(jù)分片中是否包含完整的關(guān)鍵幀a。具體實(shí)踐中,所述判斷可以根據(jù)對(duì)應(yīng)幀是否能夠被播放器解碼或讀取來(lái)實(shí)施。未能成功解碼或讀取的幀將被視為尚未下載完畢。 這應(yīng)是本領(lǐng)域技術(shù)人員所能理解的,在此不作贅述。如果步驟S46的判斷結(jié)果表明,已下載數(shù)據(jù)分片中包含完整的 關(guān)鍵幀a,則在步驟S47中對(duì)關(guān)鍵幀a進(jìn)行解碼及其它相關(guān)處理,用 于播放。當(dāng)關(guān)鍵幀a播放完畢,新的當(dāng)前播放位置相應(yīng)地改變(如,00 小時(shí)00分00秒040毫秒,指向關(guān)4建幀b的幀頭),接著,再 針對(duì)所述新的當(dāng)前播放位置執(zhí)行步驟S46(判斷播放器能否成功讀取 關(guān)鍵幀b)及其后續(xù)步驟。其中,播放位置在一幀成功播放后自動(dòng)改 變可由現(xiàn)有技術(shù)支持。如果步驟46中的判斷結(jié)果表明,已下載數(shù)據(jù)分片中不包含完整的關(guān)4定幀a,節(jié)點(diǎn)1將維持當(dāng)前播》丈位置不變,也即,不斷重復(fù)4丸行 步驟S46直至關(guān)鍵幀a的下載全部完成,再進(jìn)到步驟S47中對(duì)其進(jìn) 行解碼等處理以用于播放。在所述等待過程中,可提示用戶當(dāng)前點(diǎn) 播狀態(tài)為"載入中"("Loading")。請(qǐng)參看圖3b,在引入預(yù)測(cè)幀的壓縮方式下,此時(shí)00小時(shí)00 分00秒000毫秒的對(duì)應(yīng)幀為關(guān)^r建幀I。當(dāng)該關(guān)4建幀I尚未下載完 畢時(shí),步驟S46中將得到否定的判斷結(jié)果,于是重復(fù)步驟S46,直 至該關(guān)鍵幀I下載完畢,則進(jìn)到步驟S47中對(duì)其進(jìn)行解碼等處理, 用于播放。仍請(qǐng)參照?qǐng)D3b,在關(guān)鍵幀I播放完畢后,新的當(dāng)前播放位置對(duì) 應(yīng)關(guān)鍵幀I與前向預(yù)測(cè)幀II組成的幀組,節(jié)點(diǎn)1針對(duì)所述新的當(dāng)前 播放位置執(zhí)行步驟S46中的判斷,如果此時(shí)前向預(yù)測(cè)幀II尚未下載 完畢(表現(xiàn)為如播放器無(wú)法成功讀取前向預(yù)測(cè)幀II),該方法將不 斷針對(duì)這個(gè)新的當(dāng)前播放位置執(zhí)行步驟S46所述的判斷,直至前向 預(yù)測(cè)幀II下載完成。不難看出,第五實(shí)施例中,由于數(shù)據(jù)分片之間沒有下載優(yōu)先級(jí) 之分,更確切地說(shuō),數(shù)據(jù)分片的下載優(yōu)先級(jí)與當(dāng)前播放位置無(wú)關(guān), 因此容易出現(xiàn)用戶長(zhǎng)時(shí)間等待的情況,用戶體驗(yàn)較差。第六實(shí)施例 在此基礎(chǔ)上對(duì)數(shù)據(jù)分片的下載優(yōu)先級(jí)進(jìn)行優(yōu)化,詳情如下。笫六實(shí)施例為一種根據(jù)本發(fā)明笫二方面的,基于當(dāng)前播放位 置確定數(shù)據(jù)分片的下栽優(yōu)先級(jí)、無(wú)跳幀/無(wú)拖放功能的非流式媒體文 件點(diǎn)播控制方法圖9為根據(jù)本發(fā)明的第六實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)非 流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖,以下參照?qǐng)D9并結(jié)合 圖1、圖3a及圖3b進(jìn)行描述。為體現(xiàn)方案完整性,圖9中仍示出了與圖8中相同的步驟,但 其相應(yīng)的文字描述將較簡(jiǎn)略,請(qǐng)酌情參看圖8相關(guān)說(shuō)明部分?;诒景l(fā)明的基本思想,最優(yōu)先地根據(jù)其它多個(gè)節(jié)點(diǎn)的資源相關(guān)信息獲得媒體文件的文件控制信息。此外,為有目的地為數(shù)據(jù)分 片賦予優(yōu)先級(jí),在步驟S55中根據(jù)當(dāng)前播放位置確定優(yōu)先下載的數(shù) 據(jù)分片。優(yōu)選地,根據(jù)各數(shù)據(jù)分片在媒體文件的播放方向上與當(dāng)前 播放位置的距離遠(yuǎn)近來(lái)設(shè)置數(shù)據(jù)分片的下載優(yōu)先級(jí),距離當(dāng)前播放 位置越近,該數(shù)據(jù)分片的下載優(yōu)先級(jí)越高,反之則越低。另外,當(dāng) 當(dāng)前播放位置因?yàn)?一個(gè)整幀已經(jīng)播放完畢而改變時(shí),數(shù)據(jù)分片的下 載優(yōu)先級(jí)也將隨之改變,距離新的當(dāng)前播放位置越近的數(shù)據(jù)分片的 下載優(yōu)先級(jí)越高,反之越低。由此,可以在未下載的數(shù)據(jù)分片中選 定一個(gè)優(yōu)先下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高)。于是,對(duì)應(yīng)媒體文件初始的當(dāng)前4番方文位置00小時(shí)00分00秒000毫秒,所述優(yōu) 先下載的數(shù)據(jù)分片為第一個(gè)數(shù)據(jù)分片,其后的數(shù)據(jù)分片下載優(yōu)先級(jí) 遞減。接著,進(jìn)到步驟S56,節(jié)點(diǎn)1根據(jù)其掌握的其它節(jié)點(diǎn)的資源相關(guān) 信息判斷其在步驟S55中確定的優(yōu)先下載的數(shù)據(jù)分片是否存在于其 它節(jié)點(diǎn)的可下載分片中。具體地,所述判斷可基于從目錄服務(wù)器處 獲得的信息以及來(lái)自其它節(jié)點(diǎn)的資源信息報(bào)告消息(如,"Have") 進(jìn)行。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中包括所述優(yōu)先下載的數(shù) 據(jù)分片時(shí),節(jié)點(diǎn)1確定一個(gè)下載源并在步驟S57中下載該數(shù)據(jù)分片。 所述下載源可以隨機(jī)選擇,優(yōu)選地,節(jié)點(diǎn)1根據(jù)在各個(gè)擁有該分片 的節(jié)點(diǎn)中選擇為其提供最快下載速度的節(jié)點(diǎn)作為該分片的下載源。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中不包括該優(yōu)先下載的數(shù) 據(jù)分片時(shí),節(jié)點(diǎn)1將與該優(yōu)先下載的數(shù)據(jù)分片相鄰的下一數(shù)據(jù)分片 作為新的優(yōu)先下載的數(shù)據(jù)分片,繼而回到步驟S56中再針對(duì)其執(zhí)行 相應(yīng)的判斷。此外,下載進(jìn)度可能超前于播放進(jìn)度,也即,當(dāng)確定的優(yōu)先下 栽的數(shù)據(jù)分片可能屬于已經(jīng)下載完畢的數(shù)據(jù)分片時(shí),該方法從該優(yōu) 先下載的數(shù)據(jù)分片開始沿文件播放方向向下查找,直至找到 一個(gè)尚 未下載完畢的數(shù)據(jù)分片,進(jìn)而將其確定為新的優(yōu)先下載的數(shù)據(jù)分片,然后判斷是否有節(jié)點(diǎn)能夠提供下載,如有,則下載該新的優(yōu)先下載的數(shù)據(jù)分片。上述情況可能出現(xiàn)在如下情形中- 網(wǎng)絡(luò)速度和資源情況均足夠理想;- 用戶基于其它實(shí)施例選擇向播放方向的反方向拖放(快 退);- 用戶將播放暫停或停止而允許下載器(模塊)繼續(xù)工作等。 第六實(shí)施例保證了下載對(duì)象與當(dāng)前播放位置的適應(yīng)性,在相同的網(wǎng)絡(luò)條件下使得進(jìn)行播放所需的緩存時(shí)間,并且使得在媒體文件 下載的同時(shí)播放過程更加流暢,從而提高了用戶體驗(yàn)。第七實(shí)施例為一種根據(jù)本發(fā)明第二方面的,基于當(dāng)前播放位 置確定數(shù)據(jù)分片的下栽優(yōu)先級(jí),支持跳幀但無(wú)拖放功能的非流式媒 體文件點(diǎn)播控制方法圖10為根據(jù)本發(fā)明的第七實(shí)施例在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)非 流式媒體文件的點(diǎn)播進(jìn)行控制的方法流程圖,以下參照?qǐng)DIO并結(jié)合 圖1、圖3a和圖3b進(jìn)行描述。請(qǐng)參看圖3a,假設(shè)圖3a中關(guān)鍵幀a為文件點(diǎn)播之初的播放位置 "00小時(shí)00分00秒000毫秒"所指示。步驟S60至步驟S68 的描述請(qǐng)參看前述實(shí)施例。如果在步驟S68中判斷出已下載的數(shù)據(jù)分片中包含完整的關(guān)鍵 幀a,則進(jìn)到步驟S69,對(duì)"00小時(shí)00分00秒000毫秒"的 對(duì)應(yīng)幀即關(guān)鍵幀a進(jìn)行解碼等處理,用于播放。關(guān)鍵幀a播放完畢 后,新的當(dāng)前播放位置指向關(guān)鍵幀b,繼而針對(duì)關(guān)鍵幀b執(zhí)行步驟 S68中的判斷。相反地,如果在步驟S68中判斷出已下載的數(shù)據(jù)分片中不包含 完整的關(guān)鍵幀a(如,只包括關(guān)鍵幀a的部分?jǐn)?shù)據(jù)信息或不包括關(guān)鍵 幀a的數(shù)據(jù)信息),節(jié)點(diǎn)1將在步驟S69,中優(yōu)選地根據(jù)所述索引信 息判斷當(dāng)前播放位置"00小時(shí)00分00秒000毫秒"之后的其 它播放位置(對(duì)應(yīng)關(guān)鍵幀b、關(guān)鍵幀c、關(guān)鍵幀d等)中是否存在這樣的另一播放位置,其對(duì)應(yīng)幀已下載完成。索引信息通常包含關(guān)鍵 幀的位置信息(如,各個(gè)關(guān)鍵幀在媒體文件播放時(shí)間中的相應(yīng)時(shí)間 點(diǎn);或所迷時(shí)間點(diǎn)與碼流中相應(yīng)字節(jié)的映射信息;或各個(gè)關(guān)鍵幀所 在的分片號(hào)及其在該分片中的具體位置,等等)??傊?,根據(jù)索引信息,節(jié)點(diǎn)1可以對(duì)媒體文件中的至少所有關(guān) 鍵幀進(jìn)行定位。另外,根據(jù)媒體文件的碼率和分片大小,可以在數(shù) 據(jù)分片中確定各關(guān)鍵幀所對(duì)應(yīng)的數(shù)據(jù)信息(如,第N分片的第i字節(jié)至第j字節(jié))。從而可以實(shí)現(xiàn)步驟S69,中的判斷。如果不存在這樣的一個(gè)播放位置,則可選地,該方法回到步驟S68,重新判斷當(dāng)前播放位置"00小時(shí)00分00秒000毫秒" 的對(duì)應(yīng)幀即關(guān)鍵幀a是否下載完成。如果存在這樣的一個(gè)或多個(gè)播放位置,則可選地,該方法從中 隨機(jī)選擇一個(gè)播放位置作為新的當(dāng)前播放位置,并進(jìn)到步驟S69中 對(duì)其對(duì)應(yīng)幀進(jìn)行解碼等處理,并進(jìn)行緩存或用于播放。優(yōu)選地,該 方法從多個(gè)滿足條件的播放位置中挑選距離當(dāng)前播放位置最近的一 個(gè)播放位置作為新的當(dāng)前播放位置,并對(duì)其對(duì)應(yīng)幀進(jìn)行解碼等處理, 并進(jìn)行緩存或用于播放??蛇x地,在步驟S69,中,節(jié)點(diǎn)1還可基于索引信息執(zhí)行以下操作1)判斷已下載數(shù)據(jù)分片中是否包含當(dāng)前播放位置的下一播放位 置(如,OO小時(shí)00分00秒040毫秒)的對(duì)應(yīng)幀(關(guān)4龕幀b );1.1) 如果l)中的判斷結(jié)果為是,則將00小時(shí)00分00秒 040毫秒作為新的當(dāng)前播放位置,并對(duì)其對(duì)應(yīng)幀關(guān)鍵幀b進(jìn)行解碼等 處理,并進(jìn)行緩存或用于播放;1.2) 如果1 )中的判斷結(jié)果為否,則說(shuō)明關(guān)鍵幀b所在的若干數(shù) 據(jù)分片尚未下載完畢,于是,可再判斷已下載數(shù)據(jù)分片中是否包含 當(dāng)前播放位置的再下一個(gè)播放位置(如,OO小時(shí)00分00秒080 毫秒)的對(duì)應(yīng)幀(關(guān)鍵幀c);1.2.1)若1.2)中的判斷結(jié)果也為否,則再針對(duì)再下一個(gè)播放位置(如 OO小時(shí)00分00秒、120毫秒、)的只t應(yīng)幀(關(guān)4定幀d) 進(jìn)行上述判斷。一旦得到肯定的判斷結(jié)果,該方法將進(jìn)到步驟S69中對(duì)相應(yīng)播 放位置的對(duì)應(yīng)幀進(jìn)行解碼等處理,并進(jìn)行緩存或用于播放。以上對(duì)數(shù)據(jù)部分存儲(chǔ)順序如圖3 a所示的媒體文件在本實(shí)施例下 的點(diǎn)播控制進(jìn)行了描述,下面,參照?qǐng)D3b,對(duì)于采用預(yù)測(cè)幀的媒體 文件的點(diǎn)播控制進(jìn)行說(shuō)明。設(shè)當(dāng)前播放位置為00小時(shí)OO分00秒000毫秒,其對(duì)應(yīng)幀 為關(guān)鍵幀I,如果關(guān)鍵幀I已經(jīng)下載完畢,則將其進(jìn)行解碼等處理, 并進(jìn)行緩存或用于播放;再對(duì)下一個(gè)纟番放位置00小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀II"是否下載完畢進(jìn)行判斷;-如果下載完畢,則解碼前向預(yù)測(cè)幀II (結(jié)合關(guān)^t幀I)并 顯示,仍緩存關(guān)鍵幀I;對(duì)再下一個(gè)播放位置00小時(shí)00分 00秒080毫秒的對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀III"是否下 載完畢進(jìn)行判斷,以此類推。-如果"關(guān)鍵幀I和前向預(yù)測(cè)幀II"尚未下載完畢,則可再 根據(jù)索引信息判斷已下載數(shù)據(jù)分片中位于關(guān)鍵幀I之后的下一 個(gè)關(guān)鍵幀是否下載完畢,如果該下一個(gè)關(guān)鍵幀已經(jīng)下載完畢, 則對(duì)其進(jìn)行解碼,應(yīng)當(dāng)理解,本文中提及的播放位置(包括但不限于以如下描述 方式體現(xiàn)當(dāng)前播放位置、下一播放位置)的對(duì)應(yīng)幀或?yàn)橐粋€(gè)關(guān)鍵 幀,或?yàn)橐粋€(gè)關(guān)鍵幀及其一個(gè)或多個(gè)預(yù)測(cè)幀。在跳幀中,取決于索 引信息中的描述信息的不同,跳幀的目標(biāo)播放位置也不同,也即, 如果索引信息標(biāo)識(shí)了所有幀(無(wú)論關(guān)鍵幀抑或預(yù)測(cè)幀)在媒體文件 中的位置,則當(dāng)關(guān)鍵幀I下載完畢而前向預(yù)測(cè)幀II尚未下載完時(shí), 播放器讀取前向預(yù)測(cè)幀II失敗,則可以將播放位置跳到與前向預(yù)測(cè) 幀III相對(duì)應(yīng)的播放位置如OO小時(shí)00分00秒080毫秒,繼 而對(duì)該播放位置的對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀III"是否下載完畢進(jìn)行判斷。第七實(shí)施例擁有一個(gè)變化例,現(xiàn)簡(jiǎn)要描述如下,請(qǐng)參看圖7。 假設(shè)播放器當(dāng)前播放到前向預(yù)測(cè)幀Pl,繼而讀取前向預(yù)測(cè)幀P2時(shí)發(fā)現(xiàn)P2不能讀取,這可能是因?yàn)镻2部分或全部落入了分片X 的未下載部分。于是,播放器根據(jù)該媒體文件的碼率計(jì)算出該分片X實(shí)際包含 的播放時(shí)間的 一 個(gè)估計(jì)值。因?yàn)閴嚎s算法會(huì)根據(jù)媒體文件的實(shí)際情況來(lái)動(dòng)態(tài)地調(diào)整碼率, 也即,每個(gè)數(shù)據(jù)分片所包含的時(shí)間和幀數(shù)量都是不定的,這些指示信息都在索引中均有描述。舉例來(lái)講,假設(shè)該媒體文件的分片大小為256KByte,平均碼率 為64KBPS,則每個(gè)數(shù)據(jù)分片大約包含4秒時(shí)間。其中,平均碼率的 計(jì)算方式為平均碼率=數(shù)據(jù)部分總尺寸/文件控制信息給出的媒體文 件播放時(shí)間。假設(shè)前向預(yù)測(cè)幀P2處于5分10秒,于是,跳過該未下載完畢 的分片X,如,跳到5分14秒,讀取索引信息,查詢5分14秒的 對(duì)應(yīng)幀。獲IJl該幀在文件中的偏移位置以后,查詢?cè)撈莆恢脤?duì)應(yīng) 的文件分片是否是分片X,如果是分片X,則可判斷該幀肯定還沒 有下載完畢,就查找下一個(gè)幀, 一直找到一個(gè)幀完全位于分片X+l 上(起始和結(jié)束時(shí)間的對(duì)應(yīng)偏移位置均落在分片X+l中),該幀就 是Pm+l。獲取Pm+]以后,送給解碼器進(jìn)行解碼等處理,并進(jìn)行緩 存或用于播放。另外一種情況就是,5分14秒的對(duì)應(yīng)幀命中在Pm+3上,前面 的幀有一點(diǎn)浪費(fèi)。優(yōu)選地,可向后(靠近數(shù)據(jù)部分首部的方向)查 找?guī)讉€(gè)已經(jīng)下載的幀,送進(jìn)解碼器解碼,以減少已下載幀的損失。第八實(shí)施例為一種根據(jù)本發(fā)明第二方面的,基于當(dāng)前播放位 置確定數(shù)據(jù)分片的下載優(yōu)先級(jí),支持跳幀/支持拖放功能的非流式媒 體文件點(diǎn)播控制方法在觀看媒體文件的時(shí)候,用戶可能需要選擇一個(gè)播放位置,作 為新的當(dāng)前播放位置,這也就是我們常說(shuō)的拖放功能。具體的,用戶可通過輸入一個(gè)用于指示所選擇的新播放位置的 用戶指示信息,以使播放進(jìn)程跳至該新播放位置所對(duì)應(yīng)的媒體文件 的新播放時(shí)間'點(diǎn)開始向后順序播放。輸入用戶指示信息的實(shí)現(xiàn)方式可包括(但不限于)a.用戶用鼠標(biāo)拖動(dòng)播放器上的進(jìn)度條到其所 指定位置(對(duì)應(yīng)于該新播放位置);b.用戶直接輸入一個(gè)播放時(shí)間 點(diǎn),該時(shí)間點(diǎn)對(duì)應(yīng)于在該媒體文件中的新播放位置。仍請(qǐng)參看圖10,在本實(shí)施例中,該方法還包括"根據(jù)用戶指示 信息確定新的當(dāng)前播放位置"的步驟(未示出)。于是,節(jié)點(diǎn)1將 根據(jù)用戶指示信息所確定的新的當(dāng)前播放位置來(lái)確定優(yōu)先下載的數(shù) 據(jù)分片,并在步驟S68中針對(duì)所述新的當(dāng)前播放位置判斷其對(duì)應(yīng)幀 是否已經(jīng)下載完成。用戶利用計(jì)算機(jī)外設(shè)向第二點(diǎn)播控制裝置發(fā)出用戶指示信息 后,新的當(dāng)前播放位置的確定可以通過以下操作實(shí)現(xiàn)c. 接收用戶指示信息;d. 根據(jù)用戶指示信息中的時(shí)間點(diǎn),并基于索引信息,查找與該 時(shí)間點(diǎn)相對(duì)應(yīng)的一個(gè)播放位置,具體地,查找與該時(shí)間點(diǎn)相 對(duì)應(yīng)的一個(gè)關(guān)4建幀。-如果該時(shí)間點(diǎn)與一個(gè)關(guān)鍵幀正好對(duì)應(yīng),則直接將該關(guān)鍵幀 對(duì)該關(guān)鍵幀所在幀組進(jìn)行解碼等操作;-如果該時(shí)間點(diǎn)與關(guān)鍵幀不對(duì)應(yīng),則優(yōu)選地,查找與該時(shí)間 點(diǎn)最接近的一個(gè)關(guān)鍵幀,更優(yōu)選地,查找在播放順序上位于該 時(shí)間點(diǎn)之后且與該時(shí)間點(diǎn)最接近的 一個(gè)關(guān)鍵幀。 接著,對(duì)所確定的關(guān)鍵幀所在幀組進(jìn)行解碼,具體地,針對(duì)該 幀組執(zhí)行步驟S68及其后續(xù)操作,詳情請(qǐng)參看以上各實(shí)施例的描述。 第四實(shí)施例擁有一個(gè)變化例,現(xiàn)筒要描述如下-讀取索引信息,找到與用戶指示信息中的時(shí)刻最接近的幀,獲 取該幀在媒體文件中的起始和結(jié)束位置;-查詢所述起始和結(jié)束位置位置對(duì)應(yīng)的數(shù)據(jù)分片; -判斷該數(shù)據(jù)分片是否已經(jīng)下載完畢-如果該數(shù)據(jù)分片未下載完畢,則等待直至該分片下載完畢(或依第三實(shí)施例進(jìn)行自動(dòng)跳幀);然后將該數(shù)據(jù)分 片確定為優(yōu)先下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高);-如果該數(shù)據(jù)分片已經(jīng)下載完畢,則讀取該幀,送入 解碼器解碼,并將該數(shù)據(jù)分片之后的第 一 個(gè)沒有下載完畢的 數(shù)據(jù)分片確定為優(yōu)先下載的數(shù)據(jù)分片。 以下參照?qǐng)D11所示裝置框圖對(duì)本發(fā)明的第三方面的對(duì)應(yīng)不同用 戶體驗(yàn)的具體實(shí)施例進(jìn)行說(shuō)明,請(qǐng)理解,第一方面與第三方面中相 應(yīng)的實(shí)施例將采用相同的編號(hào)。此外,圖11中的某些裝置(如,第 四確定裝置106)在一些實(shí)施例中并非必要,方i"更起見,將各實(shí)施例 中會(huì)出現(xiàn)的各種裝置統(tǒng)一繪于圖11中。圖11所示第一點(diǎn)播控制裝置IO通常配置于用戶設(shè)備(如,個(gè) 人計(jì)算機(jī))中,其中包括第一確定裝置100、第一獲得裝置101、 獲取裝置102、第二下載裝置103、數(shù)據(jù)處理裝置104、第二獲得裝 置105以及第四確定裝置106。其中,所述第一獲得裝置101包括 第一下載裝置1010、第一提取裝置1011;所述第二下載裝置103包 括第二確定裝置1020、第一判斷裝置1021以及受控下載裝置1022; 所述數(shù)據(jù)處理裝置104包括第二判斷裝置1030以及受控處理裝置 1031;所述第二獲得裝置105包括第三確定裝置1040、第三下載 裝置1041以及第二提取裝置1042。第九實(shí)施例為一種根據(jù)本發(fā)明第三方面的,基于現(xiàn)有技術(shù)下 載數(shù)據(jù)分片,無(wú)跳幀/無(wú)拖放功能的流式媒體文件點(diǎn)播控制裝置請(qǐng)同時(shí)參照?qǐng)D11并結(jié)合圖1、圖3a和圖3b。在此,假設(shè)需要進(jìn) 行流式媒體文件點(diǎn)播的節(jié)點(diǎn)為圖1所示節(jié)點(diǎn)1。獲取裝置102獲取節(jié)點(diǎn)2、 3、 4的資源相關(guān)信息,節(jié)點(diǎn)1從而 知曉其它各節(jié)點(diǎn)擁有哪些分片,以便在下載相應(yīng)分片時(shí)有目的地選擇下載源。由于節(jié)點(diǎn)2、 3、 4在作為節(jié)點(diǎn)1的下載源的同時(shí),也可能在不停地下栽屬于該媒體文件的分片,因此,獲取裝置102除從 目錄服務(wù)器處獲得其它節(jié)點(diǎn)的資源相關(guān)信息外,還由來(lái)自節(jié)點(diǎn)2、 3、 4中與節(jié)點(diǎn)1已建立連接的節(jié)點(diǎn)的資源信息報(bào)告消息來(lái)獲取該等節(jié) 點(diǎn)的資源相關(guān)信息?,F(xiàn)有技術(shù)中對(duì)此已有成熟的支持方案,如,使 用BT軟件的節(jié)點(diǎn)在成功下載完成一個(gè)分片后,將向與其連接的其它 各個(gè)節(jié)點(diǎn)發(fā)送包含該分片標(biāo)識(shí)的"Have (擁有)"消息,表示其已經(jīng) 擁有了該分片。第一確定裝置100在該媒體文件的多個(gè)分片中確定其中的所有 控制信息分片。所述確定操作主要基于以下事實(shí)媒體文件的文件 控制信息的大小和分片大小均有一定限制且文件控制信息總是位于 媒體文件的特定位置(如媒體文件的首部),容易理解,如先行根 據(jù)該媒體文件的描述信息(如,種子文件所攜帶的描述信息)確定 其文件類型,則文件控制信息的大小范圍將更容易估計(jì),以RMVB 文件為例,其文件控制信息通常為50KB以內(nèi)??蛇x地,第一確定 裝置100也可以在媒體文件首部大致確定若干個(gè)分片(以保證其中 包括所有控制信息分片為前提),通常,l-2個(gè)分片可以包括所有文 件控制信息。于是,第一下載裝置1010將第一確定裝置1010所確定的所有 控制信息分片全部下載到本地,其中,每個(gè)分片的下載源可以基于 此前獲得的其它各個(gè)節(jié)點(diǎn)的資源相關(guān)信息來(lái)確定。此后,第一提取裝置1011由所述所有控制信息分片中提取該媒體文件的文件控制信息,播放器(模塊)加載文件控制信息后,流 式媒體文件播放的準(zhǔn)備工作基本完成。第一獲得裝置101.與第二下載裝置103各自執(zhí)行的操作并無(wú)嚴(yán) 格的順序關(guān)系,也即,數(shù)據(jù)分片的下載可與文件控制信息的獲得同 時(shí)進(jìn)行,也可在獲得文件控制信息后進(jìn)行。本實(shí)施例中,沿用現(xiàn)有 技術(shù)如BT或電騾中的亂序下載、稀缺分片優(yōu)先下載等方案來(lái)下載數(shù) 據(jù)分片。于是,當(dāng)用戶點(diǎn)擊如《辛德勒的名單》的鏈接后,節(jié)點(diǎn)1依上 述步驟獲得文件控制信息,播放器加載該文件控制信息后,默認(rèn)的當(dāng)前播放位置為該媒體文件的數(shù)據(jù)部分始端,如,OO小時(shí)OO分 OO秒000毫秒。這通常也符合人們欣賞媒體文件的習(xí)慣。播放器要成功播放與該當(dāng)前播放位置相對(duì)應(yīng)的畫面,需要對(duì)其 對(duì)應(yīng)幀進(jìn)行解碼。于是,由第二判斷裝置1031判斷已下載的數(shù)據(jù)分 片中是否包含所述當(dāng)前播放位置的對(duì)應(yīng)幀。假設(shè)圖3a中的關(guān)鍵幀a 位于數(shù)據(jù)部分始端,于是,OO小時(shí)00分00秒000毫秒的對(duì)應(yīng) 幀為關(guān)鍵幀a,關(guān)鍵幀a播放完畢后,下一個(gè)當(dāng)前播放位置如00小 時(shí)OO分OO秒040毫秒的對(duì)應(yīng)幀為關(guān)鍵幀b;假設(shè)圖3b中的關(guān) 4建幀K立于凄史才居吾卩分始端,則,OO小時(shí)00分00秒、000毫秒、的 對(duì)應(yīng)幀為關(guān)鍵幀I,關(guān)鍵幀I播放完畢后,下一個(gè)當(dāng)前播放位置如OO 小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀為關(guān)^t幀I與前向預(yù)測(cè)幀II。請(qǐng)先參看圖3a,第二判斷裝置1030需要判斷的是已下載的數(shù)據(jù) 分片中是否包含完整的關(guān)鍵幀a。所述判斷可基于以下事實(shí)實(shí)現(xiàn)1. 根據(jù)當(dāng)前播放位置所對(duì)應(yīng)的時(shí)間點(diǎn)和該々某體文件的碼率,可 以計(jì)算出該時(shí)間點(diǎn)在數(shù)據(jù)部分中的相應(yīng)位置(如,第i字節(jié));2. 由于每個(gè)分片的大小已知、幀長(zhǎng)已知、且分片具有各自的標(biāo) 號(hào),因此,可以在數(shù)據(jù)分片中準(zhǔn)確地定位所述對(duì)應(yīng)幀(如,第N分 片的第j字節(jié)至第k字節(jié))。由此,可得一個(gè)判斷結(jié)果。如果判斷結(jié)果表明,已下載數(shù)據(jù)分片中包含完整的關(guān)鍵幀a,則 由受控處理裝置1031對(duì)關(guān)鍵幀a進(jìn)行解碼及其他相關(guān)處理,用于播 放。當(dāng)關(guān)鍵幀a播放完畢,新的當(dāng)前播放位置相應(yīng)地改變(如,00 小時(shí)00分00秒040毫秒,指向關(guān)鍵幀b的幀頭),接著,再 由第二判斷裝置1030針對(duì)所述新的當(dāng)前播放位置執(zhí)行判斷操作。其 中,播放位置在一幀成功播放后自動(dòng)改變可由現(xiàn)有技術(shù)支持。如杲判斷結(jié)果表明,已下載數(shù)據(jù)分片中不包含完整的關(guān)鍵幀a, 節(jié)點(diǎn)1將維持當(dāng)前播放位置不變,也即,由所述第二判斷裝置1030不斷重復(fù)#1行判斷直至關(guān)#:幀a的下載全部完成,再由所述受控處 理裝置1031對(duì)其進(jìn)行解碼等處理以用于播放。在所述等待過程中, 可提示用戶當(dāng)前點(diǎn)播狀態(tài)為"載入中"("Loading")。請(qǐng)參看圖3b,在引入預(yù)測(cè)幀的壓縮方式下,此時(shí)00小時(shí)00 分00秒000毫秒的對(duì)應(yīng)幀為關(guān)鍵幀I。當(dāng)該關(guān)鍵幀I尚未下載完 畢時(shí),第二判斷裝置1030將得到否定的判斷結(jié)果,于是第二判斷裝 置1030針對(duì)該當(dāng)前播放位置重復(fù)判斷,直至該關(guān)鍵幀I下載完畢, 再由受控處理裝置031對(duì)其進(jìn)行解碼等處理,并進(jìn)行緩存或用于播 放。仍請(qǐng)參照?qǐng)D3b,在關(guān)鍵幀I播放完畢后,新的播放位置對(duì)應(yīng)關(guān) 鍵幀I與前向預(yù)測(cè)幀II組成的幀組,第二判斷裝置1030針對(duì)所述新 的播放位置執(zhí)行判斷操作,如果此時(shí)前向預(yù)測(cè)幀II尚未下載完畢, 第二判斷裝置1030將不斷針對(duì)這個(gè)新的播放位置執(zhí)行判斷操作,直 至前向預(yù)測(cè)幀II下載完成。由于索引信息并非流式媒體文件播放之必需,故在此實(shí)施例中 索引信息分片可隨數(shù)據(jù)分片一起亂序下載,也可不下載。于是,第 二獲得裝置105為可選。第十實(shí)施例為一種根據(jù)本發(fā)明笫三方面的,基于當(dāng)前播放位 置確定數(shù)據(jù)分片的下載優(yōu)先級(jí)、無(wú)跳幀且無(wú)拖放功能的流式媒體文 件點(diǎn)播控制裝置基于本發(fā)明的基本思想,最優(yōu)先地由第一確定裝置100與第一 獲得裝置101根據(jù)其它多個(gè)節(jié)點(diǎn)的資源相關(guān)信息獲得媒體文件的文件控制信息。此外,為有目的地為數(shù)據(jù)分片賦予優(yōu)先級(jí),由第二下I栽裝置103中的第二確定裝置}020來(lái)根據(jù)當(dāng)前播放位置確定優(yōu)先下 載的數(shù)據(jù)分片。優(yōu)選地,根據(jù)各數(shù)據(jù)分片在媒體文件的播放方向上 與當(dāng)前播放位置的距離遠(yuǎn)近來(lái)設(shè)置數(shù)據(jù)分片的下栽優(yōu)先級(jí),距離當(dāng) 前播放位置越近,該數(shù)據(jù)分片的下載優(yōu)先級(jí)越高,反之則越低。另 外,當(dāng)當(dāng)前播放位置因?yàn)橐粋€(gè)整幀已經(jīng)播放完畢而改變時(shí),數(shù)據(jù)分片的下載優(yōu)先級(jí)也將隨之改變,距離新的當(dāng)前^番》文位置越近的數(shù)據(jù) 分片的下載優(yōu)先級(jí)越高,反之越低。由此,可以在未下載的數(shù)據(jù)分 片中選定一個(gè)優(yōu)先下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高)。于是,對(duì)應(yīng)媒體文件初始的當(dāng)前播放位置00小時(shí)00分00秒000毫秒, 優(yōu)先下載的數(shù)據(jù)分片分別位于圖3a所示的關(guān)鍵幀a和圖3b所示的 關(guān)鍵幀I中。此后,由第一判斷裝置1021根據(jù)獲取裝置102所掌握的其它節(jié) 點(diǎn)的資源相關(guān)信息判斷第二確定裝置1020確定的優(yōu)先下載的數(shù)據(jù)分 片是否存在于其它節(jié)點(diǎn)的可下載分片中。具體地,所述判斷可基于 從目錄服務(wù)器處獲得的信息以及來(lái)自其它節(jié)點(diǎn)的資源信息報(bào)告消息 (如,"Have")進(jìn)行。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中包括所述優(yōu)先下載的數(shù) 據(jù)分片時(shí),受控下載裝置1022確定一個(gè)下載源并下載該數(shù)據(jù)分片。 所述下載源可以隨機(jī)選擇,優(yōu)選地,受控下載裝置1022在各個(gè)擁有 該分片的節(jié)點(diǎn)中選擇為節(jié)點(diǎn)1提供最快下載速度的節(jié)點(diǎn)作為該分片 的下載源。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中不包括該優(yōu)先下載的數(shù) 據(jù)分片時(shí),第一判斷裝置1021將與該優(yōu)先下載的數(shù)據(jù)分片相鄰的下 一數(shù)據(jù)分片作為新的優(yōu)先下載的數(shù)據(jù)分片,針對(duì)該新的優(yōu)先下載的 數(shù)據(jù)分片執(zhí)行所述判斷操作。此外,下載進(jìn)度可能超前于播放進(jìn)度,也即,當(dāng)確定的優(yōu)先下 載的數(shù)據(jù)分片可能屬于已經(jīng)下載完畢的數(shù)據(jù)分片時(shí),該方法從該優(yōu) 先下載的數(shù)據(jù)分片開始沿文件播放方向向下查找,直至找到一個(gè)尚 未下載完畢的數(shù)據(jù)分片,進(jìn)而將其確定為新的優(yōu)先下載的數(shù)據(jù)分片, 然后判斷是否有節(jié)點(diǎn)能夠提供下載,如有,則下載該新的優(yōu)先下載 的數(shù)據(jù)分片。上述情況可能出現(xiàn)在如下情形中- 網(wǎng)絡(luò)速度和資源情況均足夠理想;- 用戶基于其它實(shí)施例選擇向播放方向的反方向拖放(快 退);- 用戶將播放暫停或停止而允許下載器(模塊)繼續(xù)工作等。第十一實(shí)施例為一種根據(jù)本發(fā)明第三方面的,基于當(dāng)前播放 位置確定數(shù)據(jù)分片的下栽優(yōu)先級(jí)、支持跳幀但無(wú)拖放功能的流式媒 體文件點(diǎn)播控制裝置本實(shí)施例中,為支持跳幀,需要由第二獲得裝置105來(lái)獲得該 媒體文件的索引信息,獲得索引信息的操作與獲得文件控制信息的 操作之間并無(wú)嚴(yán)格的順序關(guān)系。其中,索引信息可采用以下任一方式獲得a. 根據(jù)文件控制信息,計(jì)算索引信息位置,從而由第三確定裝置1040準(zhǔn)確地確定所有索引信息分片,由第三下載裝置1041將所述所有索引信息分片下載后,再由第二提取裝置1042從中提取索引 掉自、'b. 根據(jù)種子文件中的描述信息獲知媒體文件的文件類型,從而 大致計(jì)算索引信息位置,從而確定所有索引信息分片,繼而下載并提取索引信息。獲得索引信息的過程基于如下事實(shí)分片大小、媒體文件的索 引信息大小均有一定限制且索引信息總是位于媒體文件的特定位置 (如尾部)。不同類型媒體文件的索引信息尺寸相差比較大, 一般 AVI和WMV的索引信息在l-5MByte左右,而RMVB的索引信息 尺寸對(duì)比較小,約256-500KByte。容易理解,確定了文件類型,可 以更容易地估計(jì)索引信息的尺寸,從而確定所有索引信息分片。以下描述第三實(shí)施例中如何實(shí)現(xiàn)流式士某體文件,泉播時(shí)的跳幀。請(qǐng)參看圖3a,假設(shè)圖3a中關(guān)鍵幀a為文件點(diǎn)播之初的播放位置 "00小時(shí)00分00秒000毫秒"所指示。如果第二判斷裝置1030判斷出已下載的數(shù)據(jù)分片中包含完整的 關(guān)鍵幀a,則通知受控處理裝置1031,由后者對(duì)"00小時(shí)00分 OO秒OOO毫秒"的對(duì)應(yīng)幀即關(guān)鍵幀a進(jìn)行解碼等處理,用于播放。 關(guān)鍵幀a播放完畢后,新的當(dāng)前播放位置指向關(guān)鍵幀b,第二判斷裝置1030繼而針對(duì)關(guān)4建幀b^丸行上述判斷。相反地,如果第二判斷裝置1030判斷出已下載的數(shù)據(jù)分片中不 包含完整的關(guān)鍵幀a(如,只包括關(guān)鍵幀a的部分?jǐn)?shù)據(jù)信息或不包括 關(guān)鍵幀a的數(shù)據(jù)信息),優(yōu)選地,第二判斷裝置1030根據(jù)所述索引 信息判斷當(dāng)前播放位置"OO小時(shí)00分00秒000毫秒"之后的 其它播放位置(對(duì)應(yīng)關(guān)鍵幀b、關(guān)鍵幀c、關(guān)鍵幀d等)中是否存在 這樣的另一播放位置,其對(duì)應(yīng)幀已下載完成。索引信息通常包含關(guān) 鍵幀的位置信息(如,各個(gè)關(guān)鍵幀在媒體文件播放時(shí)間中的相應(yīng)時(shí) 間點(diǎn);或所述時(shí)間點(diǎn)與碼流中相應(yīng)字節(jié)的映射信息;或各個(gè)關(guān)鍵幀 所在的分片號(hào)及其在該分片中的具體位置,等等)。總之,根據(jù)索引信息,節(jié)點(diǎn)1可以對(duì)媒體文件中的所有關(guān)鍵幀 進(jìn)行定位。另外,根據(jù)媒體文件的碼率和分片大小,可以在數(shù)據(jù)分 片中確定各關(guān)鍵幀所對(duì)應(yīng)的數(shù)據(jù)信息(如,第N分片的第i字節(jié)至 第j字節(jié)),從而支持第二判斷裝置1030執(zhí)行上述判斷。如果不存在這樣的一個(gè)播放位置,則可選地,由第二判斷裝置 1030重新判斷當(dāng)前播放位置"OO小時(shí)00分00秒000毫秒"的 對(duì)應(yīng)幀即關(guān)鍵幀a是否下載完成。如果存在這樣的一個(gè)或多個(gè)播放位置,則可選地,受控處理裝 置1031從中隨機(jī)選擇一個(gè)播放位置作為新的當(dāng)前播放位置,并對(duì)其 對(duì)應(yīng)幀進(jìn)行解碼等處理,并進(jìn)行緩存或用于播放。優(yōu)選地,該方法 從多個(gè)滿足條件的播放位置中挑選距離當(dāng)前播放位置最近的 一個(gè)播 放位置作為新的當(dāng)前播放位置,并對(duì)其對(duì)應(yīng)幀進(jìn)行解碼等處理,并 進(jìn)行緩存或用于播放??蛇x地,,節(jié)點(diǎn)1還可基于索引信息執(zhí)行以下操作1)由第二判斷裝置1030判斷已下載數(shù)據(jù)分片中是否包含當(dāng)前 播放位置的下一播放位置(如,OO小時(shí)OO分00秒040毫秒) 的對(duì)應(yīng)幀(關(guān)鍵幀b);1.1)如果)中的判斷結(jié)果為是,則受控處理裝置1031將00 小時(shí)00分00秒040毫秒作為新的當(dāng)前播放位置,并對(duì)其對(duì)應(yīng)幀關(guān)鍵幀b進(jìn)行解碼等操作,并進(jìn)行緩存或用于播放;1.2)如果1 )中的判斷結(jié)杲為否,則說(shuō)明關(guān)鍵幀b所在的若千數(shù) 據(jù)分片尚未下載完畢,于是,可再由第二判斷裝置1030判斷已下載 數(shù)據(jù)分片中是否包含當(dāng)前播放位置的再下一個(gè)播放位置(如,00小 時(shí)00分00秒080毫秒)的對(duì)應(yīng)幀(關(guān)鍵幀c);1.2.1)若1.2)中的判斷結(jié)果也為否,則第二判斷裝置1030再 針對(duì)再下一個(gè)播》文位置(如,OO小時(shí)OO分00秒120毫秒)的 對(duì)應(yīng)幀(關(guān)鍵幀d)進(jìn)行上述判斷。一旦得到肯定的判斷結(jié)果,就由受控處理裝置1031將相應(yīng)播放 位置的對(duì)應(yīng)幀進(jìn)行解碼等處理,并進(jìn)行緩存或用于播放。以上對(duì)數(shù)據(jù)部分存儲(chǔ)順序如圖3 a所示的媒體文件在本實(shí)施例下 的點(diǎn)播控制進(jìn)行了描述,下面,參照?qǐng)D3b,對(duì)于采用預(yù)測(cè)幀的媒體 文件的點(diǎn)播控制進(jìn)行說(shuō)明。設(shè)當(dāng)前播放位置為00小時(shí)OO分00秒000毫秒,其對(duì)應(yīng)幀 為關(guān)鍵幀I,如果關(guān)鍵幀I已經(jīng)下載完畢,則將其進(jìn)行解碼等處理, 并進(jìn)行緩存或用于播放;再對(duì)下一個(gè)播放位置00小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀 "關(guān)鍵幀I和前向預(yù)測(cè)幀II"是否下載完畢進(jìn)行判斷;-如果下載完畢,則解碼前向預(yù)測(cè)幀li (結(jié)合關(guān)^:幀i)并顯示,仍緩存關(guān)鍵幀I;對(duì)再下一個(gè)播放位置00小時(shí)00分00 秒080毫秒的對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀III"是否下載完 畢進(jìn)行判斷,以此類推。-如果"關(guān)鍵幀i和前向預(yù)測(cè)幀n"尚未下載完畢,則可再由第二判斷裝置103 0根據(jù)索引信息判斷已下載數(shù)據(jù)分片中位于關(guān)鍵幀I之后的下一個(gè)關(guān)鍵幀是否下載完畢,如果該下一個(gè)關(guān)鍵幀 已經(jīng)下載完畢,則對(duì)其進(jìn)行解碼,用于播放。 應(yīng)當(dāng)理解,本文中提及的播放位置(包括但不限于以如下描述方式體現(xiàn)當(dāng)前播放位置、下一播放位置)的對(duì)應(yīng)幀或?yàn)橐粋€(gè)關(guān)鍵幀, 或?yàn)橐粋€(gè)關(guān)鍵幀及其一個(gè)或多個(gè)預(yù)測(cè)幀。在跳幀中,取決于索引信息中的描述信息的不同,跳幀的目標(biāo)播放位置也不同,也即,如果 索引信息標(biāo)識(shí)了所有幀(無(wú)論關(guān)鍵幀或預(yù)測(cè)幀)在媒體文件中的位 置,則當(dāng)關(guān)鍵幀I下載完畢而前向預(yù)測(cè)幀II尚未下完時(shí),可以將播放位置跳到與前向預(yù)測(cè)幀III相對(duì)應(yīng)的播放位置如OO小時(shí)OO分 OO秒080毫秒,繼而由第二判斷裝置1030對(duì)該播放位置的對(duì)應(yīng)幀 "關(guān)鍵幀I和前向預(yù)測(cè)幀III"是否下載完畢進(jìn)行判斷。第三實(shí)施例擁有一個(gè)變化例,現(xiàn)簡(jiǎn)要描述如下,請(qǐng)參照?qǐng)D7。圖 7示出了所述變化例所對(duì)應(yīng)的媒體文件數(shù)據(jù)部分下載情況。虛線表示 尚未下載完畢。假設(shè)播放器當(dāng)前播放到前向預(yù)測(cè)幀Pl,繼而讀取前向預(yù)測(cè)幀P2 時(shí)發(fā)現(xiàn)P2不能讀取,這可能是因?yàn)镻2部分或全部落入了分片X 的未下載部分。于是,播放器根據(jù)該媒體文件的碼率計(jì)算出該分片X實(shí)際包含 的播放時(shí)間的 一 個(gè)估計(jì)值。因?yàn)閴嚎s算法會(huì)根據(jù)媒體文件的實(shí)際情況來(lái)動(dòng)態(tài)地調(diào)整碼率, 也即,每個(gè)數(shù)據(jù)分片所包含的時(shí)間和幀數(shù)量都是不定的,這些指示 信息都在索引中均有描述。舉例來(lái)講,假設(shè)該媒體文件的分片大小為256KByte,平均碼率 為64KBPS,則每個(gè)數(shù)據(jù)分片大約包含4秒時(shí)間。其中,平均碼率的 計(jì)算方式為平均碼率=數(shù)據(jù)部分總尺寸/文件控制信息給出的媒體文 件播放時(shí)間。假設(shè)P2處于5分10秒,于是,跳過該未下載完畢的分片X, 如,跳到5分14秒,讀耳又索引信息,查詢5分14秒的對(duì)應(yīng)幀。獲 取該幀在文件中的偏移位置以后,查詢?cè)撈莆恢脤?duì)應(yīng)的文件分片 是否是分片X,如果是分片X,則該幀肯定還沒有下載完畢,就找 下一個(gè)幀, 一直找到一個(gè)幀完全位于分片X+l上(起始和結(jié)束時(shí)間 的對(duì)應(yīng)偏移位置均落在分片X+l中),該幀就是Pm+l。 獲取P3以后,送給解碼器進(jìn)行解碼即可。另夕l、一種情況就是,5分14秒的對(duì)應(yīng)幀命中在Pm+3上,前面的幀有一點(diǎn)浪費(fèi)。優(yōu)選地,可向后(靠近數(shù)據(jù)部分首部的方向)查 找?guī)讉€(gè)已經(jīng)下載的幀,送進(jìn)解碼器解碼,以減少已下載幀的損失。第十二實(shí)施例為一種根據(jù)本發(fā)明第三方面的,基于當(dāng)前播放 位置確定數(shù)據(jù)分片的下載優(yōu)先級(jí)的,支持跳幀并支持拖放的流式媒 體文件點(diǎn)播控制裝置在觀看媒體文件的時(shí)候,用戶可能需要選擇一個(gè)播放位置,作 為新的當(dāng)前播放位置,這也就是我們常說(shuō)的拖放功能。具體的,用戶可通過輸入一個(gè)用于指示所選擇的新播放位置的 用戶指示信息,以使播放進(jìn)程跳至該新播放位置所對(duì)應(yīng)的媒體文件 的新播放時(shí)間點(diǎn)開始向后順序播放。輸入用戶指示信息的實(shí)現(xiàn)方式 可包括(但不限于)a.用戶用鼠標(biāo)拖動(dòng)播放器上的進(jìn)度條到其所 指定位置(對(duì)應(yīng)于該新播放位置);b.用戶直接輸入一個(gè)播放時(shí)間 點(diǎn),該時(shí)間點(diǎn)對(duì)應(yīng)于在該士某體文件中的新播》文位置。在本實(shí)施例中,需由第四確定裝置106根據(jù)用戶指示信息確定 新的當(dāng)前播放位置。隨之,第二確定裝置100將根據(jù)用戶指示信息 所確定的新的當(dāng)前播放位置來(lái)確定優(yōu)先下載的數(shù)據(jù)分片,而第二判 斷裝置1030也將針對(duì)所述新的當(dāng)前播放位置判斷其對(duì)應(yīng)幀是否已經(jīng) 下載完成。用戶利用計(jì)算機(jī)外設(shè)向第 一 點(diǎn)播控制裝置發(fā)出用戶指示信息 后,新的當(dāng)前播放位置的確定可以通過以下操作實(shí)現(xiàn) -第四確定裝置接收用戶指示信息;-接著,第四確定裝置根據(jù)用戶指示信息中的時(shí)間點(diǎn),基于索引 信息,查找與該時(shí)間點(diǎn)相對(duì)應(yīng)的一個(gè)播放位置,具體地,查找 與該時(shí)間點(diǎn)相對(duì)應(yīng)的 一 個(gè)關(guān)4建幀。-如果該時(shí)間點(diǎn)與一個(gè)關(guān)鍵幀正好對(duì)應(yīng),則直接由受控處理 裝置1031對(duì)該關(guān)鍵幀所在幀組進(jìn)行解碼等操作;-如果該時(shí)間點(diǎn)與關(guān)^:幀不對(duì)應(yīng),則優(yōu)選地,查找與該時(shí)間 點(diǎn)最接近的一個(gè)關(guān)鍵幀,更為優(yōu)選地,查找在播放順序上位于該時(shí)間點(diǎn)之后且與該時(shí)間點(diǎn)最接近的 一個(gè)關(guān)4建幀。 接著,對(duì)所確定的關(guān)鍵幀所在幀組進(jìn)行解碼,詳情請(qǐng)參看以上 各實(shí)施例的描述。第四實(shí)施例擁有一個(gè)變化例,現(xiàn)簡(jiǎn)要描述如下-讀取索引信息,找到與用戶指示信息中的時(shí)刻最接近的幀,獲取該幀在媒體文件中的起始和結(jié)束位置;-查詢所述起始和結(jié)束位置位置對(duì)應(yīng)的數(shù)據(jù)分片;-判斷該數(shù)據(jù)分片是否已經(jīng)下載完畢;-如果沒有下載完畢,則等待直至該分片下載完畢(或 依第三實(shí)施例進(jìn)行自動(dòng)跳幀);然后將該數(shù)據(jù)分片確定為優(yōu)先下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高);-如果已經(jīng)下載完畢,則讀取該幀,送入解碼器解碼, 并將該數(shù)據(jù)分片之后的第一個(gè)沒有下載完畢的數(shù)據(jù)分片確 定為優(yōu)先下載的數(shù)據(jù)分片。 與本發(fā)明的第三方面相類似地,本發(fā)明的第四方面有對(duì)應(yīng)不同 優(yōu)化程度用戶體驗(yàn)的如下幾個(gè)具體實(shí)施例,以下--詳述。第十三實(shí)施例為一種根據(jù)本發(fā)明第四方面的,基于現(xiàn)有技術(shù) 下載數(shù)據(jù)分片、無(wú)跳幀/無(wú)拖放功能的非流式媒體文件點(diǎn)播控制裝置圖12為根據(jù)本發(fā)明的第四方面的在節(jié)點(diǎn)中基于P2P協(xié)議來(lái)對(duì)非 流式媒體文件的點(diǎn)播進(jìn)行控制的第二點(diǎn)播控制裝置框圖,以下參照 圖12并結(jié)合圖1、圖3a和圖3b進(jìn)行描述。假設(shè)需要進(jìn)行流式媒體 文件點(diǎn)播的節(jié)點(diǎn)為圖1所示節(jié)點(diǎn)1。為方便起見,將以下各實(shí)施例中 可能出現(xiàn)的裝置均示于圖12中。圖中所示第二點(diǎn)播控制裝置包括 第一確定裝置200、第一獲得裝置201、第二獲得裝置202、獲取裝 置203、第三下載裝置204、數(shù)據(jù)處理裝置205以及第四確定裝置206, 其中,所述第一獲得裝置201包括第一下載裝置2010以及第一提 取裝置2011;所述第二獲得裝置包括第二確定裝置2020、第二下 載裝置2021以及第二提取裝置2022;所述第三下載裝置204包括第三確定裝置2040、第一判斷裝置2041以及受控下載裝置2042; 所述數(shù)據(jù)處理裝置205包括第二判斷裝置2050以及受控處理裝置 2051。獲取裝置203獲取節(jié)點(diǎn)2、 3、 4的資源相關(guān)信息,節(jié)點(diǎn)1從而 知曉其它各節(jié)點(diǎn)擁有哪些分片,以便在下載相應(yīng)分片時(shí)有目的地選 擇下載源。由于節(jié)點(diǎn)2、 3、 4在作為節(jié)點(diǎn)1的下載源的同時(shí),也可 能在不停地下載屬于該媒體文件的分片,因此,獲取裝置203除從 目錄服務(wù)器處獲得其它節(jié)點(diǎn)的資源相關(guān)信息外,還由來(lái)自節(jié)點(diǎn)2、 3、 4中與節(jié)點(diǎn)1已建立連接的節(jié)點(diǎn)的資源信息報(bào)告消息來(lái)獲取該等節(jié) 點(diǎn)的資源相關(guān)信息?,F(xiàn)有技術(shù)中對(duì)此已有成熟的支持方案,如,使 用BT軟件的節(jié)點(diǎn)在成功下載完成一個(gè)分片后,將向與其連接的其它 各個(gè)節(jié)點(diǎn)發(fā)送包含該分片標(biāo)識(shí)的"Have (擁有)"消息,表示其已經(jīng) 擁有了該分片。第一確定裝置200在該媒體文件的多個(gè)分片中確定其中的所有 控制信息分片。該確定操作的可實(shí)現(xiàn)性主要基于媒體文件的文件 控制信息的大小和分片大小均有一定限制且文件控制信息總是位于 媒體文件的特定位置(如首部),容易理解,如先行根據(jù)該媒體文 件的描述信息(如,種子文件所攜帶的描述信息)確定其文件類型, 則文件控制信息的大小范圍將更容易估計(jì)??蛇x地,節(jié)點(diǎn)也可以在 媒體文件首部大致確定若干個(gè)分片(以保證其中包括所有控制信息 分片為前提),通常,1-2個(gè)分片可以包括所有文件控制信息。接著,第一下載裝置2010將第一確定裝置200確定的所有控制 信息分片全部下載到本地,其中,每個(gè)分片的下載源可以基于此前 獲得的其它各個(gè)節(jié)點(diǎn)的資源相關(guān)信息來(lái)確定。此后,由第一提取裝置2011由所述所有控制信息分片中提取該 媒體文件的文件控制信息。所述第二獲得裝置202負(fù)責(zé)獲得該媒體文件的索引信息。具體 可通過第二確定裝置2020確定所有索引信息分片后,由第二下載裝 置2021下載所述所有索引信息分片,再由第二提取裝置2022從中提取索引信息來(lái)實(shí)現(xiàn)。其中,索引信息分片的確定可以在獲得文件 控制信息以后,基于由文件控制信息計(jì)算出的索引信息位置來(lái)準(zhǔn)確 地確定,也可根據(jù)文件類型大致確定所有的索引信息分片。換言之, 索引分片的下載可與控制信息分片同時(shí)下載,而無(wú)需分先后。同樣,第三下載裝置204執(zhí)行的數(shù)據(jù)分片的下載既可與控制信 息分片、索引信息分片的下載同時(shí)進(jìn)行,也可在控制信息分片下載后再行下載。本實(shí)施例中,沿用現(xiàn)有技術(shù)如BT或電騾中的亂序下載、 稀缺分片優(yōu)先下載等方案來(lái)下載數(shù)據(jù)分片。于是,當(dāng)用戶點(diǎn)擊如《辛德勒的名單》的鏈接后,節(jié)點(diǎn)1依上 述步驟獲得文件控制信息和索引信息,播放器加載該文件控制信,t、 和索引信息后,默認(rèn)的當(dāng)前播放位置為該媒體文件的數(shù)據(jù)部分始端, 如,OO小時(shí)00分00秒000毫秒。這通常也符合人們欣賞々某體 文件的習(xí)慣。播放器要成功播放與該當(dāng)前播放位置相對(duì)應(yīng)的畫面,需要對(duì)其 對(duì)應(yīng)幀進(jìn)行解碼。于是,第二判斷裝置205判斷已下載的數(shù)據(jù)分片 中是否包含所述當(dāng)前播放位置的對(duì)應(yīng)幀,如,對(duì)應(yīng)幀的起始和結(jié)束 時(shí)間點(diǎn)各自對(duì)應(yīng)的時(shí)間點(diǎn)所對(duì)應(yīng)的偏移位置所確定的區(qū)間是否落在 下載完畢的數(shù)據(jù)分片中,優(yōu)選地,是否落于各個(gè)數(shù)據(jù)分片的已下載 部分中。假設(shè)圖3a中的關(guān)鍵幀a位于數(shù)據(jù)部分始端,于是,00小時(shí) 00分00秒000毫秒的對(duì)應(yīng)幀為關(guān)鍵幀a,關(guān)鍵幀a播放完畢后, 下一個(gè)當(dāng)前播放位置如00小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀為 關(guān)鍵幀b;假設(shè)圖3b中的關(guān)鍵幀I位于數(shù)據(jù)部分始端,則,00小時(shí) 00分00秒000毫秒的對(duì)應(yīng)幀為關(guān)鍵幀I,關(guān)鍵幀I播放完畢后, 下一個(gè)當(dāng)前播放位置如00小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀為 關(guān)鍵幀I與前向預(yù)測(cè)幀II。請(qǐng)先參看圖3a,第二判斷裝置2050對(duì)已下載的數(shù)據(jù)分片中是否 包含完整的關(guān)鍵幀a進(jìn)行判斷。所述判斷可基于以下事實(shí)實(shí)現(xiàn)1.根據(jù)當(dāng)前播放位置所對(duì)應(yīng)的時(shí)間點(diǎn)和該媒體文件的碼率,可 以計(jì)算出該時(shí)間點(diǎn)在數(shù)據(jù)部分中的相應(yīng)位置(如,第i字節(jié));2.由于每個(gè)分片的大小已知、幀長(zhǎng)已知、且分片具有各自的標(biāo)號(hào),因此,可以在數(shù)據(jù)分片中準(zhǔn)確地定位所述對(duì)應(yīng)幀(如,第N分 片的第i字節(jié)至第j字節(jié))。所述判斷可以根據(jù)對(duì)應(yīng)幀是否能夠被播放器讀取來(lái)得出結(jié)論。 未能成功讀取的幀將被視為尚未下載完畢。如果第二判斷裝置2050的判斷結(jié)果表明,已下載數(shù)據(jù)分片中包 含完整的關(guān)鍵幀a,則通知受控處理裝置2051,對(duì)關(guān)鍵幀a進(jìn)行解 碼及其它相關(guān)處理,用于播放。當(dāng)關(guān)鍵幀a播放完畢,新的當(dāng)前播放位置相應(yīng)地改變(如,00 小時(shí)00分00秒040毫秒,指向關(guān)^t建幀b的幀頭),接著,再 由第二判斷裝置2050針對(duì)所述新的當(dāng)前播放位置執(zhí)行相應(yīng)判斷。其 中,播放位置在一幀成功播放后自動(dòng)改變可由現(xiàn)有技術(shù)支持。如果第二判斷裝置2050的判斷結(jié)果表明,已下載數(shù)據(jù)分片中不 包含完整的關(guān)鍵幀a,節(jié)點(diǎn)1將維持當(dāng)前播放位置不變,也即,第二 判斷裝置2050不斷重復(fù)執(zhí)行上述判斷直至關(guān)鍵幀a的下載全部完 成,再由受控處理裝置2051對(duì)其進(jìn)行解碼等處理以用于播放。在所 述等待過程中,可提示用戶當(dāng)前點(diǎn)播狀態(tài)為"載入中"("Loading")。請(qǐng)參看圖3b,在引入預(yù)測(cè)幀的壓縮方式下,此時(shí)00小時(shí)00 分OO秒000毫秒的對(duì)應(yīng)幀為關(guān)鍵幀I。當(dāng)該關(guān)^t幀I尚未下載完 畢時(shí),第二判斷裝置2050將得到否定的判斷結(jié)果,于是第二判斷裝 置2050將重復(fù)針對(duì)該當(dāng)前播放位置執(zhí)行所述判斷,直至該關(guān)鍵幀I 下載完畢,則通知受控處理裝置2051中對(duì)其進(jìn)行解碼等處理,用于 播放。仍請(qǐng)參照?qǐng)D3b,在關(guān)鍵幀I播放完畢后,新的當(dāng)前播放位置對(duì) 應(yīng)關(guān)鍵幀I與前向預(yù)測(cè)幀II組成的幀組,第二判斷裝置2050針對(duì)所 述新的當(dāng)前播放位置執(zhí)行判斷,如果此時(shí)前向預(yù)測(cè)幀II尚未下載完 畢(表現(xiàn)為如播放器無(wú)法成功讀取前向預(yù)測(cè)幀II),第二判斷裝置 2050將不斷針對(duì)這個(gè)新的當(dāng)前播放位置執(zhí)行所述判斷,直至前向預(yù) 測(cè)幀II下載完成。第十四實(shí)施例為一種根據(jù)本發(fā)明第四方面的,基于當(dāng)前播放 位置確定數(shù)據(jù)分片的下載優(yōu)先級(jí)、無(wú)跳幀/無(wú)拖放功能的非流式媒體 文件點(diǎn)播控制裝置基于本發(fā)明的基本思想,最優(yōu)先地由第一確定裝置200和第一 獲得裝置201根據(jù)其它多個(gè)節(jié)點(diǎn)的資源相關(guān)信息來(lái)獲得該媒體文件 的文件控制信息。此外,為有目的地為數(shù)據(jù)分片賦予優(yōu)先級(jí),還須 由第三確定裝置2040根據(jù)當(dāng)前播放位置確定優(yōu)先下載的數(shù)據(jù)分片。 優(yōu)選地,根據(jù)各數(shù)據(jù)分片在媒體文件的播放方向上與當(dāng)前播放位置 的距離遠(yuǎn)近來(lái)設(shè)置數(shù)據(jù)分片的下載優(yōu)先級(jí),距離當(dāng)前播放位置越近, 該數(shù)據(jù)分片的下載優(yōu)先級(jí)越高,反之則越低。另外,當(dāng)當(dāng)前播放位 置因?yàn)橐粋€(gè)整幀已經(jīng)播放完畢而改變時(shí),數(shù)據(jù)分片的下載優(yōu)先級(jí)也 將隨之改變,距離新的當(dāng)前播放位置越近的數(shù)據(jù)分片的下載優(yōu)先級(jí) 越高,反之越低。由此,可以在未下載的數(shù)據(jù)分片中選定一個(gè)優(yōu)先 下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高)。于是,對(duì)應(yīng)媒體文件初始的 當(dāng)前播放位置00小時(shí)00分00秒000毫秒,優(yōu)先下栽的數(shù)據(jù)分 片分別位于圖3a所示的關(guān)鍵幀a和圖3b所示的關(guān)鍵幀b中。此后,由第一判斷裝置2041根據(jù)節(jié)點(diǎn)1掌握的其它節(jié)點(diǎn)的資源 相關(guān)信息判斷此前確定的優(yōu)先下載的數(shù)據(jù)分片是否存在于其它節(jié)點(diǎn) 的可下載分片中。具體地,所述判斷可基于從目錄服務(wù)器處獲得的 信息以及來(lái)自其它節(jié)點(diǎn)的資源信息報(bào)告消息(如,"Have")進(jìn)行。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中包括所述優(yōu)先下載的數(shù) 據(jù)分片時(shí),受控下載裝置2042確定一個(gè)下載源并下載該數(shù)據(jù)分片。 所述下載源可以隨機(jī)選擇,優(yōu)選地,節(jié)點(diǎn)1根據(jù)在各個(gè)擁有該分片 的節(jié)點(diǎn)中選擇為其提供最快下載速度的節(jié)點(diǎn)作為該分片的下載源。當(dāng)判斷結(jié)果為其它節(jié)點(diǎn)的可下載分片中不包括該優(yōu)先下載的數(shù) 據(jù)分片時(shí),第一判斷裝置2041將與該優(yōu)先下載的數(shù)據(jù)分片相鄰的下 一數(shù)據(jù)分片作為新的優(yōu)先下載的數(shù)據(jù)分片,繼而針對(duì)所述新的優(yōu)先 下載的數(shù)據(jù)分片執(zhí)行相應(yīng)判斷。'此外,下載進(jìn)度可能超前于播放進(jìn)度,也即,當(dāng)確定的優(yōu)先下 載的數(shù)據(jù)分片可能屬于已經(jīng)下載完畢的數(shù)據(jù)分片時(shí),該方法從該優(yōu) 先下載的數(shù)據(jù)分片開始沿文件播放方向向下查找,直至找到 一 個(gè)尚 未下載完畢的數(shù)據(jù)分片,進(jìn)而將其確定為新的優(yōu)先下載的數(shù)據(jù)分片, 然后判斷是否有節(jié)點(diǎn)能夠提供下載,如有,則下載該新的優(yōu)先下載 的數(shù)據(jù)分片。上述情況可能出現(xiàn)在如下情形中- 網(wǎng)絡(luò)速度和資源情況均足夠理想;- 用戶基于其它實(shí)施例選擇向播放方向的反方向拖放(快 退);- 用戶將播放暫停或停止而允許下載器(模塊)繼續(xù)工作等。第十五實(shí)施例為一種根據(jù)本發(fā)明第四方面的,基于當(dāng)前播放 位置確定數(shù)據(jù)分片的下栽優(yōu)先級(jí),支持跳幀但無(wú)拖放功能的非流式 媒體文件點(diǎn)播控制裝置請(qǐng)參看圖3a,假設(shè)圖3a中關(guān)鍵幀a為文件點(diǎn)播之初的播放位置 "00小時(shí)00分00秒000毫秒"所指示。如果第二判斷裝置2050判斷出已下載的數(shù)據(jù)分片中包含完整的 關(guān)鍵幀a,則通知受控處理裝置2051,由后者對(duì)"OO小時(shí)00分 OO秒OOO毫秒"的對(duì)應(yīng)幀即關(guān)4建幀a進(jìn)行解碼等處理,用于播放。 關(guān)鍵幀a播放完畢后,新的當(dāng)前播放位置指向關(guān)鍵幀b,第二判斷裝 置2050繼而針對(duì)關(guān)鍵幀b執(zhí)行如上判斷。相反地,如果第二判斷裝置2050判斷出已下載的數(shù)據(jù)分片中不 包含完整的關(guān)鍵幀a(如,只包括關(guān)鍵幀a的部分?jǐn)?shù)據(jù)信息或不包括 關(guān)鍵幀a的數(shù)據(jù)信息),優(yōu)選地,由第二判斷裝置2050根據(jù)所述索 引信息判斷當(dāng)前播放位置"OO小時(shí)00分00秒000毫秒"之后 的其它播放位置(對(duì)應(yīng)關(guān)鍵幀b、關(guān)鍵幀c、關(guān)鍵幀d等)中是否存 在這樣的另一播放位置,其對(duì)應(yīng)幀已下載完成。索引信息通常包含 關(guān)鍵幀的位置信息(如,各個(gè)關(guān)鍵幀在媒體文件播放時(shí)間中的相應(yīng) 時(shí)間點(diǎn);或所述時(shí)間點(diǎn)與碼流中相應(yīng)字節(jié)的映射信息;或各個(gè)關(guān)鍵幀所在的分片號(hào)及其在該分片中的具體位置,等等)??傊?,根據(jù)索引信息,節(jié)點(diǎn)1可以對(duì)媒體文件中的所有關(guān)鍵幀進(jìn)行定位。另外,根據(jù)媒體文件的碼率和分片大小,可以在數(shù)據(jù)分 片中確定各關(guān)鍵幀所對(duì)應(yīng)的數(shù)據(jù)信息(如,第N分片的第i字節(jié)至 第j字節(jié))。如果不存在這樣的一個(gè)播放位置,則可選地,第二判斷裝置2050 將重新判斷當(dāng)前播放位置"00小時(shí)00分00秒000毫秒"的對(duì) 應(yīng)幀即關(guān)鍵幀a是否下載完成。如果存在這樣的一個(gè)或多個(gè)播放位置,則可選地,受控處理裝 置2051從中隨機(jī)選擇一個(gè)播放位置作為新的當(dāng)前播放位置,并對(duì)其 對(duì)應(yīng)幀進(jìn)行解碼等處理,用于播放。優(yōu)選地,從多個(gè)滿足條件的播 放位置中挑選距離當(dāng)前播放位置最近的 一個(gè)播放位置作為新的當(dāng)前 播放位置,并對(duì)其對(duì)應(yīng)幀進(jìn)行解碼等處理,用于播放??蛇x地,節(jié)點(diǎn)1還可基于索引信息執(zhí)行以下操作 1)第二判斷裝置2050判斷已下載數(shù)據(jù)分片中是否包含當(dāng)前播 放位置的下一播放位置(如,OO小時(shí)00分00秒040毫秒)的 對(duì)應(yīng)幀(關(guān)4建幀b);1.1) 如果1)中的判斷結(jié)果為是,則受控處理裝置2051將00 小時(shí)00分00秒040毫秒作為新的當(dāng)前播放位置,并對(duì)其對(duì)應(yīng) 幀關(guān)鍵幀b進(jìn)行解碼等操作,用于播放;1.2) 如果1 )中的判斷結(jié)果為否,則說(shuō)明關(guān)鍵幀b所在的若干數(shù) 據(jù)分片尚未下載完畢,于是,可再由第二判斷裝置2050判斷已下載 數(shù)據(jù)分片中是否包含當(dāng)前播放位置的再下一個(gè)播放位置(如,00小 時(shí)OO分OO秒080毫秒)的對(duì)應(yīng)幀(關(guān)鍵幀c);1.2.1)若1.2)中的判斷結(jié)果也為否,則第二判斷裝置2050再 針對(duì)再下一個(gè)播放位置(如,OO小時(shí)OO分00秒120毫秒)的 對(duì)應(yīng)幀(關(guān)鍵幀d)進(jìn)行上述判斷。一旦得到肯定的判斷結(jié)果,將由受控處理裝置2051對(duì)相應(yīng)播放 位置的對(duì)應(yīng)幀進(jìn)行解碼等處理,并進(jìn)行緩存或用于播放。以上對(duì)數(shù)據(jù)部分存儲(chǔ)順序如圖3 a所示的媒體文件在本實(shí)施例下 的點(diǎn)播控制進(jìn)行了描述,下面,參照?qǐng)D3b,對(duì)于采用預(yù)測(cè)幀的媒體 文件的點(diǎn)播控制進(jìn)行說(shuō)明。設(shè)當(dāng)前播放位置為00小時(shí)OO分00秒000毫秒,其對(duì)應(yīng)幀 為關(guān)鍵幀I,如果關(guān)鍵幀I已經(jīng)下載完畢,則將其解碼并用于播放,緩存;再對(duì)下一個(gè)播放位置00小時(shí)00分00秒040毫秒的對(duì)應(yīng)幀 "關(guān)鍵幀I和前向預(yù)測(cè)幀II"是否下載完畢進(jìn)行判斷;-如果該對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀II"下載完畢,則解 碼前向預(yù)測(cè)幀II (結(jié)合關(guān)鍵幀I)并顯示,仍緩存關(guān)鍵幀I;對(duì) 再下一個(gè)4番i丈位置00小時(shí)00分00秒080毫秒的對(duì)應(yīng)幀"關(guān) 鍵幀i和前向預(yù)測(cè)幀in"是否下載完畢進(jìn)行判斷,以此類推。-如果該對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀II"尚未下載完畢, 則可再根據(jù)索引信息判斷已下載數(shù)據(jù)分片中位于關(guān)鍵幀II之后 的下一個(gè)關(guān)鍵幀是否下載完畢,如果該下一個(gè)關(guān)鍵幀已經(jīng)下載 完畢,則對(duì)其進(jìn)行解碼,應(yīng)當(dāng)理解,本文中提及的播放位置(包括但不限于以如下描述方 式體現(xiàn)當(dāng)前播放位置、下一播放位置)的對(duì)應(yīng)幀或?yàn)橐粋€(gè)關(guān)鍵幀, 或?yàn)橐粋€(gè)關(guān)鍵幀及其一個(gè)或多個(gè)預(yù)測(cè)幀。在跳幀中,取決于索引信 息中的描述信息的不同,跳幀的目標(biāo)播放位置也不同,也即,如果 索引信息標(biāo)識(shí)了所有幀(無(wú)論關(guān)鍵幀抑或預(yù)測(cè)幀)在媒體文件中的 位置,則當(dāng)關(guān)鍵幀I下載完畢而前向預(yù)測(cè)幀II尚未下完時(shí),可以將 播放位置跳到與前向預(yù)測(cè)幀III相對(duì)應(yīng)的播放位置如00小時(shí)00 分OO秒080毫秒,繼而對(duì)該播放位置的對(duì)應(yīng)幀"關(guān)鍵幀I和前向預(yù)測(cè)幀iir,是否下載完畢進(jìn)行判斷。第七實(shí)施例擁有一個(gè)變化例,現(xiàn)簡(jiǎn)要描述如下,請(qǐng)參看圖7。假設(shè)播放器當(dāng)前播放到前向預(yù)測(cè)幀Pl,繼而讀取前向預(yù)測(cè)幀P2 時(shí)發(fā)現(xiàn)P2不能讀取,這可能是因?yàn)镻2部分或全部落入了分片X 的未下載部分。于是,播放器根據(jù)該媒體文件的碼率計(jì)算出該分片X實(shí)際包含的#番;改時(shí)間的 一 個(gè)估計(jì)值。因?yàn)閴嚎s算法會(huì)根據(jù)媒體文件的實(shí)際情況來(lái)動(dòng)態(tài)地調(diào)整碼率, 也即,每個(gè)數(shù)據(jù)分片所包含的時(shí)間和幀數(shù)量都是不定的,這些指示 信息都在索引中均有描述。舉例來(lái)講,假設(shè)該媒體文件的分片大小為256KByte,平均碼率 為64KBPS,則每個(gè)數(shù)據(jù)分片大約包含4秒時(shí)間。其中,平均碼率的 計(jì)算方式為平均碼率=數(shù)據(jù)部分總尺寸/文件控制信息給出的媒體文 件播;故時(shí)間。假設(shè)P2處于5分10秒,于是,跳過該未下載完畢的分片X, 如,跳到5分14秒,讀取索引信息,查詢5分14秒的對(duì)應(yīng)幀。獲 取該幀在文件中的偏移位置以后,查詢?cè)撈莆恢脤?duì)應(yīng)的文件分片 是否是分片X,如果是分片X,則該幀肯定還沒有下載完畢,就找 下一個(gè)幀, 一直找到一個(gè)幀完全位于分片X+l上(起始和結(jié)束時(shí)間 的對(duì)應(yīng)偏移位置均落在分片X+l中),該幀就是Pm+l。獲取Pm+l 以后,送給解碼器進(jìn)行解碼即可。另夕|、一種情況就是,5分14秒的對(duì)應(yīng)幀命中在Pm+3上,前面 的幀有一點(diǎn)浪費(fèi)。優(yōu)選地,可向后(靠近數(shù)據(jù)部分首部的方向)查 找?guī)讉€(gè)已經(jīng)下載的幀,送進(jìn)解碼器解碼,以減少已下載幀的損失。第十六實(shí)施例為一種根據(jù)本發(fā)明第四方面的,基于當(dāng)前播放 位置確定數(shù)據(jù)分片的下載優(yōu)先級(jí),支持跳幀/支持拖放功能的非流式 媒體文件點(diǎn)播控制裝置在觀看媒體文件的時(shí)候,用戶可能需要選擇一個(gè)播放位置,作 為新的當(dāng)前播放位置,這也就是我們常說(shuō)的拖放。目前,拖放的實(shí) 現(xiàn)形式主要包括a.用戶用鼠標(biāo)拖動(dòng)播放器上的進(jìn)度條到指定位置 (一個(gè)時(shí)間點(diǎn));b.用戶通過直接輸入一個(gè)時(shí)間點(diǎn),以使文件轉(zhuǎn)由 該時(shí)間點(diǎn)開始向后順序播放。在本實(shí)施例中,還需第四確定裝置206來(lái)根據(jù)用戶指示信息確定新的當(dāng)前4番放位置。隨之,第三確定裝置2040沖艮據(jù)用戶指示信息 所確定的新的當(dāng)前播放位置來(lái)確定優(yōu)先下載的數(shù)據(jù)分片,第二判斷裝置2050則針對(duì)所述新的當(dāng)前播放位置判斷其對(duì)應(yīng)幀是否已經(jīng)下載 冗成。用戶利用計(jì)算機(jī)外設(shè)向第二點(diǎn)播控制裝置發(fā)出用戶指示信息 后,新的當(dāng)前播放位置的確定可以通過以下操作實(shí)現(xiàn) -接收用戶指示信息; --根據(jù)用戶指示信息中的時(shí)間點(diǎn),基于索引信息,查找與該時(shí) 間點(diǎn)相對(duì)應(yīng)的一個(gè)播放位置,具體地,查找與該時(shí)間點(diǎn)相對(duì)應(yīng) 的一個(gè)關(guān)鍵幀。-如果該時(shí)間點(diǎn)與一個(gè)關(guān)鍵幀正好對(duì)應(yīng),則直接將該關(guān)鍵幀 對(duì)該關(guān)鍵幀所在幀組進(jìn)行解碼等操作;-如果該時(shí)間點(diǎn)與關(guān)鍵幀不對(duì)應(yīng),則優(yōu)選地,查找與該時(shí)間 點(diǎn)最接近的一個(gè)關(guān)鍵幀,更為優(yōu)選地,查找在播放順序上位于 該時(shí)間點(diǎn)之后且與該時(shí)間點(diǎn)最接近的 一 個(gè)關(guān)鍵幀。 接著,對(duì)所確定的關(guān)鍵幀所在幀組進(jìn)行解碼,具體地,由第二 判斷裝置2050針對(duì)該幀組執(zhí)行判斷步驟,詳情請(qǐng)參看以上各實(shí)施例 的描述。第四實(shí)施例擁有一個(gè)變化例,現(xiàn)簡(jiǎn)要描述如下-讀取索引信息,找到與用戶指示信息中的時(shí)刻最接近的幀,獲 取該幀在媒體文件中的起始和結(jié)束位置;-查詢所述起始和結(jié)束位置位置對(duì)應(yīng)的數(shù)據(jù)分片; -判斷該數(shù)據(jù)分片是否已經(jīng)下載完畢-如果沒有下載完畢,則等待直至該分片下栽完畢(或 依第三實(shí)施例進(jìn)行自動(dòng)跳幀);然后將該數(shù)據(jù)分片確定為 優(yōu)先下載的數(shù)據(jù)分片(下載優(yōu)先級(jí)最高);-如果已經(jīng)下載完畢,則讀取該幀,送入解碼器解碼, 并將該數(shù)據(jù)分片之后的第 一個(gè)沒有下載完畢的數(shù)據(jù)分片確 定為優(yōu)先下載的數(shù)據(jù)分片。圖13為具體實(shí)現(xiàn)本發(fā)明提出的點(diǎn)播控制方案的P2P軟件結(jié)構(gòu)示 意圖,其中包括用戶界面模塊、播放模塊、下載模塊、數(shù)據(jù)緩沖模 塊、存儲(chǔ)模塊。用戶界面模塊根據(jù)用戶指令控制播放模塊和下載模塊,如,開 始/停止播放、拖動(dòng)播放、開始/停止下載。以下簡(jiǎn)要介紹本發(fā)明的實(shí)際測(cè)試情況。該測(cè)試基于以下不失一般性的假設(shè)-媒體文件為500MB大小的RMVB文件,其文件控制信息大小為50KB,索引信息大約100KB; -播放時(shí)間約120分鐘; _碼率-500MB/ ( 120*60) -69KBPS;-在該測(cè)試中嘗試下載同時(shí)播放該媒體文件的節(jié)點(diǎn)(以下簡(jiǎn)稱測(cè)試節(jié)點(diǎn))為擁有1M帶寬的ADSL用戶,其下載速度一般為100KBPS-120KBPS; -網(wǎng)絡(luò)上有其它5個(gè)節(jié)點(diǎn)可供測(cè)試節(jié)點(diǎn)下載文件分片,測(cè)試節(jié)點(diǎn)由所述5個(gè)節(jié)點(diǎn)的下載速度相同即20KBPS; -P2P的文件分片大小一般為128KB-256KB,因此,由一個(gè)用戶處完整下載一個(gè)文件分片需時(shí)6-7秒。 首先,根據(jù)用戶的命令(如,用戶移動(dòng)光標(biāo)至網(wǎng)頁(yè)上的一個(gè)對(duì) 應(yīng)該媒體文件的點(diǎn)播指令的鏈接或按鈕并點(diǎn)擊鼠標(biāo)左鍵),測(cè)試節(jié) 點(diǎn)啟動(dòng)相應(yīng)的點(diǎn)播任務(wù);此后,大致會(huì)有10秒鐘左右的啟動(dòng)時(shí)間,這段時(shí)間內(nèi),測(cè)試節(jié)點(diǎn)將獲取種子文件并連接其它節(jié)點(diǎn);其中,由于此次測(cè)試中文件控制信息與索引信息的大小均小于 分片大小,因此,只需要分別下載位于該媒體文件的首部和尾部的 兩個(gè)分片即可保證下載所有的控制信息分片和索引信息分片。于是,安排由所述5個(gè)節(jié)點(diǎn)中的一個(gè)處下載該控制信息分片, 由其中另一節(jié)點(diǎn)處下載索引信息分片,并由其它3個(gè)節(jié)點(diǎn)處分別下 載緊接著控制信息分片的3個(gè)數(shù)據(jù)分片;基于此,6-7秒后即可開始該媒體文件的播放(下載同步進(jìn)行 中)。以上對(duì)本發(fā)明的實(shí)施例進(jìn)行了描述,但是本發(fā)明并不局限于特 定的系統(tǒng)、設(shè)備和具體協(xié)議,本領(lǐng)域內(nèi)技術(shù)人員可以在所附權(quán)利要 求的范圍內(nèi)做出各種變形或修改。
      權(quán)利要求
      1. 一種在用戶設(shè)備中基于P2P協(xié)議來(lái)對(duì)流式媒體文件的點(diǎn)播進(jìn)行控制的方法,其中,包括以下步驟a.確定所述媒體文件的多個(gè)分片中包含文件控制信息的所有控制信息分片;b.基于所確定的所述所有控制信息分片,獲得所述文件控制信息;
      2.根據(jù)權(quán)利要求1所述的方法,其中,該方法還包括步驟 -獲取其它多個(gè)用戶設(shè)備的資源相關(guān)信息; 所述步驟b包括bl.根據(jù)所述其它多個(gè)用戶設(shè)備的資源相關(guān)信息,下載所確定 的所有控制信息分片;b2.從所有控制信息分片中提取所述文件控制信息。
      3. 根據(jù)權(quán)利要求1或2所述的方法,其中,該方法還包括步驟c. 下栽所述媒體文件的一個(gè)或多個(gè)數(shù)據(jù)分片;d. 根據(jù)所述文件控制信息,對(duì)已下載的數(shù)據(jù)進(jìn)行處理,生成 經(jīng)處理的數(shù)據(jù),用于播放。
      4. 根據(jù)權(quán)利要求3所述的方法,其中,所述步驟c包括 cl.根據(jù)當(dāng)前播放位置,確定優(yōu)先下載的數(shù)據(jù)分片;c2.根據(jù)其它多個(gè)用戶設(shè)備的資源相關(guān)信息,判斷所述其它多 個(gè)用戶設(shè)備的可下載分片中是否包括所述優(yōu)先下載的數(shù)據(jù)分片;c3.如果所述其它多個(gè)用戶設(shè)備的可下載分片中包括所述優(yōu)先 下載的數(shù)據(jù)分片,則下載所述優(yōu)先下載的數(shù)據(jù)分片。
      5. 根據(jù)權(quán)利要求4所述的方法,其中,所述步驟c還包括 c3,.如果所述其它多個(gè)用戶設(shè)備的可下載分片中不包括所述優(yōu)先下載的數(shù)據(jù)分片,則將該媒體文件的多個(gè)數(shù)據(jù)分片中與該優(yōu)先 下載的數(shù)據(jù)分片相鄰的下一個(gè)數(shù)據(jù)分片作為新的優(yōu)先下載的數(shù)據(jù)分 片,重復(fù)步驟c2。
      6. 根據(jù)權(quán)利要求4或5所述的方法,其中,所述步驟d包括 dl.判斷已下載的數(shù)據(jù)分片中是否包含當(dāng)前播放位置的對(duì)應(yīng)d2.如果已下載的數(shù)據(jù)分片中包含該當(dāng)前播放位置的對(duì)應(yīng)幀, 則對(duì)該當(dāng)前播放位置的所述對(duì)應(yīng)幀進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù), 用于播放。
      7. 根據(jù)權(quán)利要求6所述的方法,其中,該方法還包括 -獲得所述媒體文件的索引信息。
      8. 根據(jù)權(quán)利要求7所述的方法,其中,所述獲得所述媒體文件 的索引信息的步驟包括-確定所述媒體文件的多個(gè)分片中包含索引信息的所有索引信 息分片;-下載確定的所述所有索引信息分片;-從所述所有索引信息分片中提取所述索引信息。
      9. 根據(jù)權(quán)利要求7或8所述的方法,其中,所述步驟d還包括: d2,.如果已下載的數(shù)據(jù)分片中不包含所述當(dāng)前播放位置的對(duì)應(yīng)幀,則基于所述索引信息,判斷已下載的數(shù)據(jù)分片中是否包含另 一播放位置的對(duì)應(yīng)幀;d3,.如果已下載的數(shù)據(jù)分片中包含另一播放位置的對(duì)應(yīng)幀,則 將該另 一 播放位置作為新的當(dāng)前播放位置,執(zhí)行步驟d2 。
      10. 根據(jù)權(quán)利要求9所述的方法,其中,所述步驟d2,還包括-如果已下載的數(shù)據(jù)分片中不包含所述當(dāng)前播放位置的對(duì)應(yīng) 幀,則基于所述索引信息,判斷已下載的數(shù)據(jù)分片中是否包含所述 當(dāng)前播放位置的下 一播放位置的對(duì)應(yīng)幀;所述步驟d3,還包括如果已下載的數(shù)據(jù)分片中包含所述當(dāng)前 播放位置的下一播放位置的對(duì)應(yīng)幀,則將該下一播放位置作為新的 當(dāng)前播放位置,執(zhí)行步驟d2。
      11.根據(jù)權(quán)利要求7-10中任一項(xiàng)所述的方法,其中,還包括步-根據(jù)用戶指示信息以及所述索引信息,確定新的當(dāng)前^番放位置;所述步驟cl還包括根據(jù)所述新的當(dāng)前播放位置,確定優(yōu)先下 載的數(shù)據(jù)分片;所述步驟dl還包括判斷已下載的數(shù)據(jù)分片中是否包含所述新 的當(dāng)前播放位置的對(duì)應(yīng)幀;所述步驟d2還包括如果已下載的數(shù)據(jù)分片中包含所述新的當(dāng) 前播放位置的對(duì)應(yīng)幀,則對(duì)所述新的當(dāng)前播放位置的所述對(duì)應(yīng)幀進(jìn) 行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      12. 才艮據(jù)權(quán)利要求6-11中任一項(xiàng)所述的方法,其中,所述對(duì)應(yīng) 幀包括關(guān)鍵幀。
      13. 根據(jù)權(quán)利要求12所述的方法,其中,所述對(duì)應(yīng)幀包括關(guān)鍵 幀和與所述關(guān)4定幀相對(duì)應(yīng)的 一個(gè)或多個(gè)預(yù)測(cè)幀。
      14. 根據(jù)權(quán)利要求1-13中任一項(xiàng)所述的方法,其中,所述流式 媒體文件包括RM格式文件、RMVB格式文件、WMV格式文件以 及ASF 一各式文件。
      15. —種在用戶設(shè)備中基于P2P協(xié)議來(lái)對(duì)非流式媒體文件的點(diǎn) 播進(jìn)行控制的方法,其中,包括以下步驟o.確定所述媒體文件的多個(gè)分片中包含文件控制信息的所有 控制信息分片;p.基于所確定的所述所有控制信息分片,獲得所迷文件控制信息;q.獲得該媒體文件的索引信息。
      16. 根據(jù)權(quán)利要求15所述的方法,其中,該方法還包括步驟 -獲取其它多個(gè)用戶設(shè)備的資源相關(guān)信息;所述步驟p包括pl.根據(jù)所述其它多個(gè)用戶設(shè)備的資源相關(guān)信息,下載所確定 的所有控制信息分片;p2.從所有控制信息分片中提取所述文件控制信息。
      17. 根據(jù)權(quán)利要求15或16所述的方法,其中,所述步驟q包括 ql.確定所述媒體文件的多個(gè)分片中包含索引信息的所有索引信息分片;q2.基于所確定的所有索引信息分片,獲得所述索引信息。
      18. 才艮據(jù)外又利要求15-17中任一項(xiàng)所述的方法,其中,該方法還 包括步驟r.下載所述媒體文件的一個(gè)或多個(gè)數(shù)據(jù)分片; s.根據(jù)所述文件控制信息以及所述索引信息,對(duì)已下載的數(shù) 據(jù)進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      19. 根據(jù)權(quán)利要求18所述的方法,其中,所述步驟r包括 rl.根據(jù)當(dāng)前播放位置,確定優(yōu)先下載的數(shù)據(jù)分片;r2.根據(jù)所述其它多個(gè)用戶設(shè)備的資源相關(guān)信息,判斷所述其 它多個(gè)用戶設(shè)備的可下載分片中是否包括所述優(yōu)先下載的數(shù)據(jù)分 片;r3.如果所述其它多個(gè)用戶設(shè)備的可下載分片中包括所述優(yōu)先 下載的數(shù)據(jù)分片,則下載所述優(yōu)先下載的數(shù)據(jù)分片。
      20. 根據(jù)權(quán)利要求19所述的方法,其中,所述步驟r還包括 r3,.如果所述其它多個(gè)用戶設(shè)備的可下載分片中不包括所述優(yōu)先下載的數(shù)據(jù)分片,則將該媒體文件中與該優(yōu)先下載的數(shù)據(jù)分片 相鄰的下一個(gè)數(shù)據(jù)分片作為新的優(yōu)先下載的數(shù)據(jù)分片,重復(fù)步驟r2。
      21. 根據(jù)權(quán)利要求19或20所述的方法,其中,所述步驟s包括 sl.判斷已下載的數(shù)據(jù)分片中是否包含所述當(dāng)前播放位置的對(duì)應(yīng)幀;s2.如果已下載的數(shù)據(jù)分片中包含該當(dāng)前播放位置的對(duì)應(yīng)幀, 則對(duì)該當(dāng)前播放位置的所述對(duì)應(yīng)幀進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù), 用于播放。
      22. 根據(jù)權(quán)利要求21所述的方法,其中,所述步驟s還包括 s2,.如果已下載的數(shù)據(jù)分片中不包含該當(dāng)前播放位置的對(duì)應(yīng)幀,則基于所述索引信息,判斷已下載的數(shù)據(jù)分片中是否包含另一播放位置的對(duì)應(yīng)幀;s3'.如果已下載的數(shù)據(jù)分片中包含另一播放位置的對(duì)應(yīng)幀,則 將該另一播放位置作為新的當(dāng)前播放位置,執(zhí)行步驟s2。
      23.根據(jù)權(quán)利要求22所述的方法,其中,所述步驟s2,還包括 -如果已下載的數(shù)據(jù)分片中不包含所述當(dāng)前播放位置的對(duì)應(yīng) 幀,則基于所述索引信息,判斷已下載的數(shù)據(jù)分片中是否包含所述 當(dāng)前播放位置的下 一播放位置的對(duì)應(yīng)幀;所述步驟s3,還包括如果已下載的數(shù)據(jù)分片中包含所述當(dāng)前 播放位置的下 一播放位置的對(duì)應(yīng)幀,則將該下 一播放位置作為新的 當(dāng)前播放位置,執(zhí)行步驟s2。
      24. 根據(jù)權(quán)利要求21-23中任一項(xiàng)所述的方法,其中,該方法還 包括步驟-根據(jù)用戶指示信息,確定新的當(dāng)前播放位置;所述步驟rl還包括根據(jù)所述新的當(dāng)前播;故位置,確定優(yōu)先 下載的數(shù)據(jù)分片;所述步驟sl還包括判斷已下載的數(shù)據(jù)分片中是否包含所述 新的當(dāng)前播放位置的對(duì)應(yīng)幀;所述步驟s2還包括如果已下載的數(shù)據(jù)分片中包含所述新的 當(dāng)前播放位置的對(duì)應(yīng)幀,則對(duì)所述新的當(dāng)前播放位置的所述對(duì)應(yīng)幀 進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      25. 根據(jù)權(quán)利要求21-24中任一項(xiàng)所述的方法,其中,所述對(duì)應(yīng) 幀包括關(guān)鍵幀。
      26. 根據(jù)權(quán)利要求25所述的方法,其中,所述對(duì)應(yīng)幀包括關(guān)鍵 幀和與所述關(guān)鍵幀相對(duì)應(yīng)的 一 個(gè)或多個(gè)預(yù)測(cè)幀。
      27. 根據(jù)權(quán)利要求15-26中任一項(xiàng)所述的方法,其中,所述非流 式媒體文件包括AVI格式文件。
      28. —種在用戶設(shè)備中基于P2P協(xié)議來(lái)對(duì)流式媒體文件的點(diǎn)播 進(jìn)行控制的第一點(diǎn)播控制裝置,包括第一確定裝置,用于確定所述媒體文件的多個(gè)分片中包含文件控制信息的所有控制信息分片;第一獲得裝置,用于基于所確定的所述所有控制信息分片,獲 得所述文件控制信息。
      29. 根據(jù)權(quán)利要求28所述的第一點(diǎn)播控制裝置,其中,還包括 獲取裝置,用于獲取其它多個(gè)用戶設(shè)備的資源相關(guān)信息; 所述第一獲得裝置還包括第一下載裝置,用于根據(jù)所述其它多個(gè)用戶設(shè)備的資源相關(guān)信 息,下載所確定的所有控制信息分片;第一提取裝置,用于從所述所有控制信息分片中提取所述文件控制信息。
      30. 根據(jù)權(quán)利要求28或29所述的第一點(diǎn)播控制裝置,其中,還 包括第二下載裝置,用于下載所述媒體文件的一個(gè)或多個(gè)數(shù)據(jù)分片; 數(shù)據(jù)處理裝置,用于根據(jù)所述文件控制信息,對(duì)已下載的數(shù)據(jù) 進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      31. 根據(jù)權(quán)利要求30所述的第一點(diǎn)播控制裝置,其中,所述第 二下載裝置包括第二確定裝置,用于根據(jù)當(dāng)前播放位置,確定優(yōu)先下載的數(shù)據(jù) 分片;第一判斷裝置,用于根據(jù)其它多個(gè)用戶設(shè)備的資源相關(guān)信息, 判斷所述其它多個(gè)用戶設(shè)備的可下載分片中是否包括所述優(yōu)先下載 的數(shù)據(jù)分片;受控下載裝置,用于當(dāng)所述其它多個(gè)用戶設(shè)備的可下載分片中 包括所述優(yōu)先下載的數(shù)據(jù)分片時(shí),下載所述優(yōu)先下載的數(shù)據(jù)分片。
      32. 根據(jù)權(quán)利要求31所述的第一點(diǎn)播控制裝置,其中,所述第 一判斷裝置還用于,當(dāng)所述其它多個(gè)用戶設(shè)備的可下載分片中不包 括所述優(yōu)先下載的數(shù)據(jù)分片時(shí),將該媒體文件的多個(gè)數(shù)據(jù)分片中與 該優(yōu)先下載的數(shù)據(jù)分片相鄰的下一個(gè)數(shù)據(jù)分片作為新的優(yōu)先下載的 數(shù)據(jù)分片,根據(jù)所述其它多個(gè)用戶設(shè)備的資源相關(guān)信息,判斷所述其它多個(gè)用戶設(shè)備的可下載分片中是否包括所述新的優(yōu)先下載的數(shù) 據(jù)分片。
      33. 根據(jù)權(quán)利要求31或32所述的第一點(diǎn)播控制裝置,其中,所 述數(shù)據(jù)處理裝置包括第二判斷裝置,用于判斷已下載的數(shù)據(jù)分片中是否包含當(dāng)前播 放位置的對(duì)應(yīng)幀;受控處理裝置,用于當(dāng)已下載的數(shù)據(jù)分片中包含該當(dāng)前播放位 置的對(duì)應(yīng)幀時(shí),對(duì)該當(dāng)前播放位置的所述對(duì)應(yīng)幀進(jìn)行處理,生成經(jīng) 處理的數(shù)據(jù),用于播放。
      34. 根據(jù)權(quán)利要求33所述的第一點(diǎn)播控制裝置,其中,還包括 第二獲得裝置,用于獲得所述媒體文件的索引信息。
      35. 根據(jù)權(quán)利要求34所述的第一點(diǎn)播控制裝置,其中,所述第 二獲得裝置包括第三確定裝置,用于確定所述媒體文件的多個(gè)分片中包含索引信息的所有索引信息分片;第三下載裝置,用于下載確定的所述所有索引信息分片; 第二提取裝置,用于從所述所有索引信息分片中提取所述索引信息。
      36. 根據(jù)權(quán)利要求34或35所述的第一點(diǎn)播控制裝置,其中, 所述第二判斷裝置還用于,當(dāng)已下載的數(shù)據(jù)分片中不包含所述當(dāng)前播放位置的對(duì)應(yīng)幀時(shí),基于所述索引信息,判斷已下載的數(shù)據(jù)分 片中是否包含另一播放位置的對(duì)應(yīng)幀;所述受控處理裝置還用于,當(dāng)已下載的數(shù)據(jù)分片中包含另一播 放位置的對(duì)應(yīng)幀時(shí),將該另一播放位置作為新的當(dāng)前播放位置,對(duì) 所述新的當(dāng)前播放位置的對(duì)應(yīng)幀進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用 于播放。
      37. 根據(jù)權(quán)利要求36所述的第一點(diǎn)播控制裝置,其中, 所述第二判斷裝置還用于,當(dāng)已下載的數(shù)據(jù)分片中不包含所述當(dāng)前播放位置的對(duì)應(yīng)幀時(shí),基于所述索引信息,判斷已下載的數(shù)據(jù)分片中是否包含所述當(dāng)前播放位置的下 一播放位置的對(duì)應(yīng)幀;所述受控處理裝置還用于如果已下載的數(shù)據(jù)分片中包含所述 當(dāng)前播放位置的下一播放位置的對(duì)應(yīng)幀,則將該下一播放位置作為 新的當(dāng)前播放位置,對(duì)所述新的當(dāng)前播放位置的對(duì)應(yīng)幀進(jìn)行處理, 生成經(jīng)處理的數(shù)據(jù),用于播放。
      38. 根據(jù)權(quán)利要求34-37中任一項(xiàng)所述的第一點(diǎn)播控制裝置,其 中,還包括第四確定裝置,用于根據(jù)用戶指示信息以及所述索引信息,確 定新的當(dāng)前播放位置;所述第一判斷裝置還用于,根據(jù)所述新的當(dāng)前播放位置,確定優(yōu)先下載的數(shù)據(jù)分片;所述第二判斷裝置還用于,判斷已下載的數(shù)據(jù)分片中是否包含 所述新的當(dāng)前4番it位置的對(duì)應(yīng)幀;所述受控處理裝置還用于,如果已下載的數(shù)據(jù)分片中包含所述 新的當(dāng)前播放位置的對(duì)應(yīng)幀,則對(duì)所述新的當(dāng)前播放位置的對(duì)應(yīng)幀 進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      39. 根據(jù)權(quán)利要求33-38中任一項(xiàng)所述的第一點(diǎn)播控制裝置,其 中,所述對(duì)應(yīng)幀包括關(guān)鍵幀。
      40. 根據(jù)權(quán)利要求39所述的第一點(diǎn)播控制裝置,其中,所述對(duì) 應(yīng)幀包括關(guān)4建幀和與所述關(guān)4建幀相對(duì)應(yīng)的 一 個(gè)或多個(gè)預(yù)測(cè)幀。
      41. 根據(jù)權(quán)利要求28-40中任一項(xiàng)所述的第一點(diǎn)播控制裝置,其 中,所述流式媒體文件包括RM格式文件、RMVB格式文件、WMV 格式文件以及ASF格式文件。
      42. —種在用戶設(shè)備中基于P2P協(xié)議來(lái)對(duì)非流式媒體文件的點(diǎn) 播進(jìn)行控制的第二點(diǎn)播控制裝置,其中,包括第一確定裝置,用于確定所述媒體文件的多個(gè)分片中包含文件控制信息的所有控制信息分片;第一獲得裝置,用于基于所確定的所述所有控制信息分片,獲得所述文件控制信息;第二獲得裝置,用于獲得該媒體文件的索引信息。
      43. 根據(jù)權(quán)利要求42所述的第二點(diǎn)播控制裝置,其中,還包括 獲取裝置,用于獲取其它多個(gè)用戶設(shè)備的資源相關(guān)信息; 所述第一獲得裝置包括第一下載裝置,用于根據(jù)所述其它多個(gè)用戶設(shè)備的資源相關(guān)信息,下載所確定的所有控制信息分片;第一提取裝置,用于從所有控制信息分片中提取所述文件控制 信息。
      44. 根據(jù)權(quán)利要求42或43所述的第二點(diǎn)播控制裝置,其中,所 述第二獲得裝置包括第二確定裝置,用于確定所述媒體文件的多個(gè)分片中包含索引信息的所有索引信息分片;第二下載裝置,用于下載確定的所述所有索引信息分片; 第二提取裝置,用于從所述所有索引信息分片中提取所述索引信息。
      45. 根據(jù)權(quán)利要求42-44中任一項(xiàng)所述的第二點(diǎn)播控制裝置,其 中,還包括第三下載裝置,用于下載所述媒體文件的一個(gè)或多個(gè)數(shù)據(jù)分片; 數(shù)據(jù)處理裝置,用于根據(jù)所述文件控制信息以及所述索引信息, 對(duì)已下栽的數(shù)據(jù)進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      46. 根據(jù)權(quán)利要求45所述的第二點(diǎn)播控制裝置,其中,所述第 三下載裝置包括第三確定裝置,用于根據(jù)當(dāng)前播放位置,確定優(yōu)先下載的數(shù)據(jù)分片;第一判斷裝置,用于根據(jù)所述其它多個(gè)用戶設(shè)備的資源相關(guān)信 息,判斷所述其它多個(gè)用戶設(shè)備的可下載分片中是否包括所述優(yōu)先 下載的數(shù)據(jù)分片;受控下載裝置,用于當(dāng)所述其它多個(gè)用戶設(shè)備的可下載分片中 包括所述優(yōu)先下載的數(shù)據(jù)分片時(shí),下載所述優(yōu)先下載的數(shù)據(jù)分片。
      47. 根據(jù)權(quán)利要求46所述的第二點(diǎn)播控制裝置,其中,所述第一判斷裝置還用于,當(dāng)所述其它多個(gè)用戶設(shè)備的可下載分片中不包 括所述優(yōu)先下載的數(shù)據(jù)分片時(shí),將該媒體文件中與該優(yōu)先下載的數(shù) 據(jù)分片相鄰的下一個(gè)數(shù)據(jù)分片作為新的優(yōu)先下載的數(shù)據(jù)分片,根據(jù) 所述其它多個(gè)用戶設(shè)備的資源相關(guān)信息,判斷所述其它多個(gè)用戶設(shè) 備的可下載分片中是否包括所述新的優(yōu)先下載的數(shù)據(jù)分片。
      48. 根據(jù)權(quán)利要求46或47所述的第二點(diǎn)播控制裝置,其中,所 述數(shù)據(jù)處理裝置包括第二判斷裝置,用于判斷已下載的數(shù)據(jù)分片中是否包含所述當(dāng) 前播放位置的對(duì)應(yīng)幀;受控處理裝置,用于當(dāng)已下載的數(shù)據(jù)分片中包含該當(dāng)前播放位 置的對(duì)應(yīng)幀時(shí),對(duì)該當(dāng)前播放位置的所述對(duì)應(yīng)幀進(jìn)行處理,生成經(jīng) 處理的數(shù)據(jù),用于播放。
      49. 根據(jù)權(quán)利要求48所述的第二點(diǎn)播控制裝置,其中, 所述第二判斷裝置還用于,當(dāng)已下載的數(shù)據(jù)分片中不包含所述當(dāng)前播放位置的對(duì)應(yīng)幀時(shí),基于所述索引信息,判斷已下載的數(shù)據(jù)分 片中是否包含另一播放位置的對(duì)應(yīng)幀;所述受 控處理裝置還用于,當(dāng)已下載的數(shù)據(jù)分片中包含另一播 放位置的對(duì)應(yīng)幀時(shí),將該另一播放位置作為新的當(dāng)前播放位置,對(duì) 所述新的當(dāng)前播;故位置的對(duì)應(yīng)幀進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      50. 根據(jù)權(quán)利要求49所述的第二點(diǎn)播控制裝置,其中, 所述第二判斷裝置還用于,當(dāng)已下載的數(shù)據(jù)分片中不包含所述當(dāng)前播放位置的對(duì)應(yīng)幀時(shí),基于所述索引信息,判斷已下載的數(shù)據(jù) 分片中是否包含所述當(dāng)前播放位置的下 一播放位置的對(duì)應(yīng)幀;所述受控處理裝置還用于如果已下載的數(shù)據(jù)分片中包含所述 當(dāng)前播放位置的下一播放位置的對(duì)應(yīng)幀,則將該下一播放位置作為 新的當(dāng)前播放位置,對(duì)所述新的當(dāng)前播放位置的對(duì)應(yīng)幀進(jìn)行處理, 生成經(jīng)處理的數(shù)據(jù),用于播放。
      51. 根據(jù)權(quán)利要求48-50中任一項(xiàng)所述的第二點(diǎn)播控制裝置,其 中,還包括第四確定裝置,用于根據(jù)用戶指示信息,確定新的當(dāng)前播放位置;所述第三確定裝置還用于,根據(jù)所述新的當(dāng)前播放位置,確定 優(yōu)先下載的數(shù)據(jù)分片;所述第二判斷裝置還用于,判斷已下載的數(shù)據(jù)分片中是否包含所述新的當(dāng)前"l番;改位置的對(duì)應(yīng)幀;所述受控處理裝置還用于,當(dāng)已下載的數(shù)據(jù)分片中包含所述新 的當(dāng)前播放位置的對(duì)應(yīng)幀時(shí),對(duì)所述新的當(dāng)前播放位置的所述對(duì)應(yīng) 幀進(jìn)行處理,生成經(jīng)處理的數(shù)據(jù),用于播放。
      52. 根據(jù)權(quán)利要求48-51中任一項(xiàng)所述的第二點(diǎn)播控制裝置,其 中,所述對(duì)應(yīng)幀包括關(guān)4建幀。
      53. 根據(jù)權(quán)利要求52所述的第二點(diǎn)播控制裝置,其中,所述對(duì) 應(yīng)幀包括關(guān)鍵幀和與所述關(guān)鍵幀相對(duì)應(yīng)的 一個(gè)或多個(gè)預(yù)測(cè)幀。
      54. 根據(jù)權(quán)利要求42-53中任一項(xiàng)所述的第二點(diǎn)播控制裝置,其 中,所述非流式媒體文件包括AVI格式文件。
      55. —種在用戶設(shè)備中用于對(duì)媒體文件的點(diǎn)播進(jìn)行控制的點(diǎn)播 控制裝置,其中,包括根據(jù)權(quán)利要求28-41中任一項(xiàng)所述的第一點(diǎn)播 控制裝置和/或根據(jù)權(quán)利要求42-54中任一項(xiàng)所述的第二點(diǎn)播控制裝 置。
      全文摘要
      本發(fā)明旨在提供一種基于P2P的媒體文件點(diǎn)播控制方法,其核心思想在于,對(duì)流式媒體文件點(diǎn)播,優(yōu)先地下載文件控制信息所在的控制信息分片,對(duì)非流式媒體文件點(diǎn)播,優(yōu)先地下載文件控制信息所在的控制信息分片以及索引信息所在的索引信息分片,從而實(shí)現(xiàn)了媒體文件在P2P協(xié)議下的邊下邊放。
      文檔編號(hào)H04N7/173GK101227590SQ20071006286
      公開日2008年7月23日 申請(qǐng)日期2007年1月19日 優(yōu)先權(quán)日2007年1月19日
      發(fā)明者柯 唐 申請(qǐng)人:北京風(fēng)行在線技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1