使用字節(jié)范圍請求的視頻數(shù)據(jù)的網(wǎng)絡(luò)流的制作方法
【專利摘要】在一個(gè)實(shí)例中,一種用于接收多媒體數(shù)據(jù)的信息的裝置包含一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍;形成統(tǒng)一資源定位符URL,所述URL根據(jù)模板而在所述URL的文件路徑部分中根據(jù)源裝置的要求來指定文件及字節(jié)范圍;及向源裝置發(fā)出指定所形成的URL的GET請求。
【專利說明】使用字節(jié)范圍請求的視頻數(shù)據(jù)的網(wǎng)絡(luò)流
[0001]本申請案主張2011年4月7日申請的第61/473,105號美國臨時(shí)申請案的權(quán)利,所述案特此以全文引用的方式并入本文中。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及經(jīng)編碼多媒體數(shù)據(jù)的存儲(chǔ)及傳送。
【背景技術(shù)】
[0003]數(shù)字視頻能力可并入到廣泛范圍的裝置中,所述裝置包含數(shù)字電視、數(shù)字直播系統(tǒng)、無線廣播系統(tǒng)、個(gè)人數(shù)字助理(PDA)、膝上型或臺(tái)式計(jì)算機(jī)、數(shù)碼相機(jī)、數(shù)字記錄裝置、數(shù)字媒體播放器、視頻游戲裝置、視頻游戲主機(jī)、蜂窩式或衛(wèi)星無線電電話、視頻電話會(huì)議裝置及其類似者。數(shù)字視頻裝置實(shí)施視頻壓縮技術(shù)(例如在由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分(高級視頻譯碼(AVC))所定義的標(biāo)準(zhǔn)及這些標(biāo)準(zhǔn)的擴(kuò)展中所描述的技術(shù)),以更有效地發(fā)射及接收數(shù)字視頻信息。
[0004]在視頻數(shù)據(jù)已被編碼之后,可將視頻數(shù)據(jù)包化以用于發(fā)射或存儲(chǔ)??蓪⒁曨l數(shù)據(jù)匯編為符合多種標(biāo)準(zhǔn)(例如國際標(biāo)準(zhǔn)化組織(ISO)基礎(chǔ)媒體文件格式及其擴(kuò)展(例如MP4文件格式及高級視頻譯碼(AVC)文件格式))中的任一者的視頻文件??梢远喾N方式來傳送此包化的視頻數(shù)據(jù)(例如使用網(wǎng)絡(luò)流來經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行發(fā)射)。
[0005]在2000年中期,在因特網(wǎng)上經(jīng)由實(shí)時(shí)傳送協(xié)議(RTP)的視頻及音頻業(yè)務(wù)的增長開始使因特網(wǎng)充斥大量網(wǎng)絡(luò)業(yè)務(wù),且不存在對這些協(xié)議的擁擠控制。此導(dǎo)致公司信息技術(shù)(IT)管理者對其防火墻進(jìn)行程序設(shè)計(jì)以阻斷含有阻塞公司的網(wǎng)關(guān)的視頻及音頻流的RTP包。
[0006]防火墻威脅視頻及音頻流服務(wù)的存在。因此,服務(wù)提供者開始經(jīng)由TCP(更具體來說,TCP的HTTP端口)虛擬電路來提供內(nèi)容。服務(wù)提供者的目的是將其視頻及音頻業(yè)務(wù)偽裝為有用的HTTP業(yè)務(wù)。IT防火墻管理者不容易阻斷經(jīng)由HTTP/TCP的視頻及音頻,且因此暫時(shí)經(jīng)由HTTP/TCP的視頻及音頻得以昌盛。
[0007]最初,將一種“漸進(jìn)式下載”方法用于下載大部分視頻。在此機(jī)制中,使用單個(gè)HTTP連接及轉(zhuǎn)移來下載整個(gè)視頻文件。用戶注視下載發(fā)生,且當(dāng)其覺得已緩沖了足以支持整個(gè)流查看體驗(yàn)的數(shù)據(jù)時(shí),其點(diǎn)擊“播放(PLAY)”且開始顯示視頻。一旦足夠數(shù)據(jù)被下載,播放器便可開始自動(dòng)地播放,從而提供偽流體驗(yàn)。然而,當(dāng)用戶想要立刻觀看視頻時(shí)(尤其在低容量鏈路上),此方法遭遇問題。另一問題是在變化的無線環(huán)境中,自適應(yīng)性下載可突然變慢到蝸牛爬行般的速度,從而導(dǎo)致在視頻中間的停頓。
[0008]從2005年以來,已致力于實(shí)施經(jīng)由HTTP的自適應(yīng)性流,其試圖解決這些問題。自適應(yīng)性流協(xié)議的實(shí)例包含微軟平滑流(MSS)、蘋果實(shí)況流(ALS)、Adobe HTTP動(dòng)態(tài)流(AHDS)及3GPP標(biāo)準(zhǔn)(經(jīng)由HTTP的動(dòng)態(tài)自適應(yīng)性流(DASH))。在2011年,Netfiix視頻流服務(wù)(基于MSS)在高峰時(shí)間(在晚間)在將視頻包遞送到客戶家中時(shí)消耗北美因特網(wǎng)回程通信的30%客戶。[0009]自適應(yīng)性流方法以非常類似于HTML網(wǎng)頁的方式來組織視頻。舉例來說,在DASH中,將“視頻網(wǎng)頁”定義為參考包括視頻的所有“片段”(子文件,亦稱作子區(qū)段)。片段通常為2秒的實(shí)時(shí)視頻或音頻,且在視頻的情況下其通常以MPEG I幀(基本上為完整的經(jīng)JPEG編碼圖片)開始。在H.264/AVC中,將這些幀稱作瞬時(shí)解碼器刷新(IDR)幀。在DASH中,將“視頻網(wǎng)頁”稱作“媒體呈現(xiàn)描述”(MPD)。2小時(shí)視頻的MPD可能參考3600個(gè)視頻統(tǒng)一資源定位符(URL)及3600個(gè)音頻URL,所述URL中的每一者可對應(yīng)于在播放時(shí)2秒的媒體。并且注意,可針對視頻被編碼的每一位速率而提供3600個(gè)視頻URL。
[0010]DASH的一個(gè)改良是可以若干不同位速率來描述相同視頻,且播放器可切換位速率(例如,每2秒)。Mro大體上描述相同視頻的3-8個(gè)不同呈現(xiàn)(稱作表現(xiàn)(representation))。當(dāng)因特網(wǎng)變得擁擠時(shí)或當(dāng)終端是在低容量鏈路上時(shí),可提取低位速率片段。當(dāng)因特網(wǎng)變得不擁擠且終端具有高容量鏈路時(shí),可提取高位速率片段。通常,提取單個(gè)音頻流且關(guān)于音頻不發(fā)生位速率切換。當(dāng)網(wǎng)絡(luò)或鏈路條件改變時(shí),播放器可通過提取較高或較低位速率的視頻片段來進(jìn)行適配。播放器通常在片段的邊界處進(jìn)行適配。因此,播放器可動(dòng)態(tài)地適應(yīng)因特網(wǎng)上的變化的擁擠條件,且經(jīng)由HTTP傳送音頻與視頻數(shù)據(jù)兩者。應(yīng)注意,如果提供8個(gè)不同表現(xiàn),那么可在原始服務(wù)器上管理總共3600*8 = 28,800個(gè)片段。
[0011]在于1993年引入ΗΤΤΡ0.9之后,其變得如此成功以致于因特網(wǎng)不久便充斥了 HTTP請求。接著在1997年,HTTP 1.0在RFC2068中被標(biāo)準(zhǔn)化,其包含高速緩存。瀏覽器開始高速緩存對象,而且研究者開始建置透明HTTP代理高速緩沖存儲(chǔ)器裝置以利用HTTP1.0中的新高速緩存特征。代理高速緩沖存儲(chǔ)器裝置暗中監(jiān)視HTTP GET請求且大體上轉(zhuǎn)遞所述請求而不改變其。當(dāng)代理高速緩沖存儲(chǔ)器注意到具有大約5個(gè)HTTP “高速緩存”標(biāo)頭中的一者的HTTP響應(yīng)(其意味內(nèi)容具有長壽命且可被高速緩存)(例如jpeg圖片或在20分鐘內(nèi)有效的般票報(bào)價(jià))時(shí),代理高速緩沖存儲(chǔ)器裝置可存儲(chǔ)所述可高速緩存的響應(yīng)且在相同或不同用戶在稍后請求所述內(nèi)容時(shí)重播其。網(wǎng)絡(luò)管理者可重新對交換器或路由器進(jìn)行程序設(shè)計(jì)以經(jīng)由其代理高速緩沖存儲(chǔ)器來投送所有HTTP業(yè)務(wù)。
[0012]另外,HTTP1.1(如RFC2616中所指定)規(guī)定了部分式GET請求。部分式GET請求包含指定目標(biāo)URL的信息以及“Range: ”標(biāo)頭,接著為指示所要字節(jié)范圍的值。盡管由HTTP1.1進(jìn)行了規(guī)定,但并非所有網(wǎng)頁瀏覽器實(shí)施部分式GET請求的使用。此外,即使當(dāng)網(wǎng)頁瀏覽器(或由客戶端裝置執(zhí)行的其它應(yīng)用程序)確實(shí)實(shí)施部分式GET請求時(shí),中間網(wǎng)絡(luò)裝置(例如代理服務(wù)器、代理高速緩沖存儲(chǔ)器裝置或其它代理裝置)常常經(jīng)配置以檢索完整文件,而非僅僅為由客戶端裝置請求的部分。
[0013]代理裝置通常經(jīng)配置以對網(wǎng)絡(luò)業(yè)務(wù)執(zhí)行額外動(dòng)作,例如深度包檢查以檢測病毒或其它惡意網(wǎng)絡(luò)業(yè)務(wù)、高速緩存(以響應(yīng)于針對相同數(shù)據(jù)的其它請求),或需要檢索整個(gè)文件的其它功能。因此,這些代理裝置趨向于剝離范圍請求及檢索在指定的URL的整個(gè)文件,且因此將整個(gè)檢索的文件提供到請求的客戶端裝置。舉例來說,某些病毒掃描算法需要掃描整個(gè)文件,在所述情況下,有必要下載整個(gè)文件。然而,對于相對大的多媒體文件(例如二小時(shí)的電影)而言,檢索完整文件而非所請求的字節(jié)范圍可對相對小的字節(jié)范圍向請求的客戶端裝置的發(fā)射造成顯著延遲。
【發(fā)明內(nèi)容】
[0014]大體而言,本發(fā)明描述與經(jīng)由網(wǎng)絡(luò)將字節(jié)范圍請求提交給流媒體數(shù)據(jù)有關(guān)的技術(shù)。代替使用部分式GET請求來提交字節(jié)范圍請求的做法,本發(fā)明的技術(shù)是針對在HTTPGET請求的URL中指定所請求的字節(jié)范圍。以此方式,字節(jié)范圍請求無需指定“Range: ”標(biāo)頭,由此避免中間代理高速緩沖存儲(chǔ)器裝置的不良行為。即,經(jīng)配置以響應(yīng)于接收到部分式GET請求而檢索完整文件的代理高速緩沖存儲(chǔ)器裝置應(yīng)僅檢索所請求的URL的部分?jǐn)?shù)據(jù)。當(dāng)所請求的URL指定字節(jié)范圍時(shí),所檢索的數(shù)據(jù)應(yīng)顯著小于在基礎(chǔ)URL處的完整文件。
[0015]在一個(gè)實(shí)例中,一種檢索多媒體數(shù)據(jù)的方法包含:確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍;形成統(tǒng)一資源定位符(URL),所述URL在所述URL的文件路徑部分中根據(jù)源裝置的要求來指定文件及字節(jié)范圍;及向源裝置發(fā)出指定所形成的URL的GET請求。
[0016]在另一實(shí)例中,用于檢索多媒體數(shù)據(jù)的信息的裝置包含一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍;形成統(tǒng)一資源定位符(URL),所述URL在所述URL的文件路徑部分中根據(jù)源裝置的要求來指定文件及字節(jié)范圍;及向源裝置發(fā)出指定所形成的URL的GET請求。
[0017]在另一實(shí)例中,用于檢索多媒體數(shù)據(jù)的信息的裝置包含:用于確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍的裝置;用于形成統(tǒng)一資源定位符(URL)的裝置,所述URL在所述URL的文件路徑部分中根據(jù)源裝置的要求來指定文件及字節(jié)范圍;及用于向源裝置發(fā)出指定所形成的URL的GET請求的裝置。
[0018]在另一實(shí)例中,計(jì)算機(jī)程序產(chǎn)品包含包括指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令在予以執(zhí)行時(shí)致使用于檢索多媒體數(shù)據(jù)的裝置的處理器執(zhí)行以下步驟:確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍;形成統(tǒng)一資源定位符(URL),所述URL在所述URL的文件路徑部分中根據(jù)源裝置的要求來指定文件及字節(jié)范圍;及向源裝置發(fā)出指定所形成的URL的GET請求。
[0019]在另一實(shí)例中,一種發(fā)送視頻數(shù)據(jù)的信息的方法包含:提供多媒體內(nèi)容的清單文件(manifest file),其中所述清單文件指定統(tǒng)一資源定位符(URL)模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板;接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的URL指定多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及響應(yīng)于所述請求而輸出對應(yīng)于所述請求的字節(jié)范圍的表現(xiàn)的多媒體數(shù)據(jù)。
[0020]在另一實(shí)例中,用于發(fā)送視頻數(shù)據(jù)的信息的裝置包括一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:提供多媒體內(nèi)容的清單文件,其中所述清單文件指定統(tǒng)一資源定位符(URL)模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板;接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的URL指定多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及響應(yīng)于所述請求而輸出對應(yīng)于所述請求的字節(jié)范圍的表現(xiàn)的多媒體數(shù)據(jù)。
[0021]在另一實(shí)例中,用于發(fā)送視頻數(shù)據(jù)的信息的裝置包含:用于提供多媒體內(nèi)容的清單文件的裝置,其中所述清單文件指定統(tǒng)一資源定位符(URL)模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板;用于接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求的裝置,其中所述請求的URL指定多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及用于響應(yīng)于所述請求而輸出對應(yīng)于所述請求的字節(jié)范圍的表現(xiàn)的多媒體數(shù)據(jù)的裝置。
[0022]在另一實(shí)例中,計(jì)算機(jī)程序產(chǎn)品包含包括指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令致使用于提供視頻數(shù)據(jù)的裝置的處理器執(zhí)行以下步驟:提供多媒體內(nèi)容的清單文件,其中所述清單文件指定統(tǒng)一資源定位符(URL)模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板;接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的URL指定多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及響應(yīng)于所述請求而輸出對應(yīng)于所述請求的字節(jié)范圍的表現(xiàn)的多媒體數(shù)據(jù)。
[0023]一個(gè)或一個(gè)以上實(shí)例的細(xì)節(jié)陳述于隨附圖式及以下描述中。其它特征、目標(biāo)及優(yōu)勢將從所述描述及所述圖式以及從權(quán)利要求書顯而易見。
【專利附圖】
【附圖說明】
[0024]圖1為框圖,其說明實(shí)施用于經(jīng)由網(wǎng)絡(luò)來流式傳輸媒體數(shù)據(jù)的技術(shù)的實(shí)例系統(tǒng)。
[0025]圖2為框圖,其說明形成圖1的網(wǎng)絡(luò)的部分的裝置的實(shí)例集合。
[0026]圖3為框圖,其說明包含各種內(nèi)容分配網(wǎng)絡(luò)(CDN)的實(shí)例系統(tǒng)。
[0027]圖4為概念圖,其說明實(shí)例多媒體內(nèi)容的元素。
[0028]圖5為框圖,其說明實(shí)例視頻文件的元素,所述元素可對應(yīng)于多媒體內(nèi)容的表現(xiàn)的區(qū)段。
[0029]圖6為流程圖,其說明種用于提供URL模板數(shù)據(jù)的指示及用于由客戶端裝置使用所述URL模板數(shù)據(jù)來產(chǎn)生字節(jié)范圍請求的實(shí)例方法。
[0030]圖7為流程圖,其說明一種用于產(chǎn)生在URL中指定字節(jié)范圍的GET請求的實(shí)例方法。
[0031]圖8為流程圖,其說明一種實(shí)例方法,其中經(jīng)由中間網(wǎng)絡(luò)裝置而在客戶端裝置與服務(wù)器裝置之間交換HTTP GET請求。
[0032]圖9為流程圖,其說明一種用于確定CDN(將從所述CDN檢索多媒體內(nèi)容的數(shù)據(jù))的實(shí)例方法。
【具體實(shí)施方式】
[0033]大體而言,本發(fā)明描述與多媒體數(shù)據(jù)(例如音頻及視頻數(shù)據(jù))經(jīng)由網(wǎng)絡(luò)的流有關(guān)的技術(shù)??山Y(jié)合經(jīng)由HTTP的動(dòng)態(tài)自適應(yīng)性流(DASH)來使用本發(fā)明的技術(shù)。本發(fā)明描述可結(jié)合網(wǎng)絡(luò)流執(zhí)行的各種技術(shù),所述技術(shù)中的任一者或全部可單獨(dú)地或以任何組合實(shí)施。如下文予以更詳細(xì)描述,執(zhí)行網(wǎng)絡(luò)流的各種裝置可經(jīng)配置以實(shí)施本發(fā)明的技術(shù)。
[0034]根據(jù)DASH及用于經(jīng)由網(wǎng)絡(luò)來流式傳輸數(shù)據(jù)的類似技術(shù),多媒體內(nèi)容(例如電影或其它媒體內(nèi)容,其還可包含音頻數(shù)據(jù)、視頻數(shù)據(jù)、文字覆蓋或其它數(shù)據(jù))可以多種方式編碼及具有多種特性。內(nèi)容預(yù)備裝置可形成相同多媒體內(nèi)容的多個(gè)表現(xiàn)。每一表現(xiàn)可對應(yīng)于特性(例如譯碼及呈現(xiàn)特性)的特定集合,以提供可由具有各種譯碼及呈現(xiàn)能力的多種不同客戶端裝置使用的數(shù)據(jù)。此外,具有各種位速率的表現(xiàn)可允許帶寬適配。即,客戶端裝置可確定當(dāng)前可用的帶寬量,且基于所述可用帶寬量連同客戶端裝置的譯碼及呈現(xiàn)能力來選擇表現(xiàn)。
[0035]在一些實(shí)例中,內(nèi)容預(yù)備裝置可指示一組表現(xiàn)具有一組共同特性。內(nèi)容預(yù)備裝置可接著指示所述組中的表現(xiàn)形成適配組(亦稱作適配集),使得可將所述組中的表現(xiàn)用于帶寬適配。即,所述組中的表現(xiàn)在位速率方面可不同,但在其它方面共享實(shí)質(zhì)上相同特性。以此方式,客戶端裝置可確定用于多媒體內(nèi)容的適配集的共同特性的各種集合,且基于客戶端裝置的譯碼及呈現(xiàn)能力來選擇適配集。接著,客戶端裝置可基于帶寬可用性而自適應(yīng)性地在所選的適配集中的表現(xiàn)之間進(jìn)行切換。
[0036]可將表現(xiàn)的數(shù)據(jù)分成個(gè)別文件。所述文件中的每一者可由特定的統(tǒng)一資源定位符(URL)尋址??蛻舳搜b置可提交對在特定URL的文件的GET請求以檢索所述文件。根據(jù)本發(fā)明的技術(shù),客戶端裝置可通過將所要字節(jié)范圍的指示包含于URL路徑自身內(nèi)(例如,根據(jù)由對應(yīng)的服務(wù)器裝置提供的URL模板)來修改GET請求。在本發(fā)明中應(yīng)注意,術(shù)語“路徑”可指示HTTP abs_path[RFC2616]抑或HTTP rel_path[RFC2616] [RFC2396]。字節(jié)范圍向服務(wù)器裝置指示僅所指示的字節(jié)范圍是所要的。
[0037]以此方式,本發(fā)明的技術(shù)包含代替常規(guī)部分式GET請求且改為指定在URL內(nèi)(例如,在URL路徑自身內(nèi))的所要字節(jié)范圍。舉例來說,根據(jù)本發(fā)明的技術(shù),在確定表現(xiàn)的URL可尋址文件的特定字節(jié)范圍是所要時(shí),客戶端裝置可通過指定在URL路徑內(nèi)的所要字節(jié)范圍來建構(gòu)針對URL的GET請求。清單文件建立者可提供用于以此方式建構(gòu)URL的模板,以及提供關(guān)于所述模板是必要的還是選用的的信息。另外,根據(jù)本發(fā)明的技術(shù),代理裝置或其它中間網(wǎng)絡(luò)裝置可經(jīng)配置以將接收的部分式GET請求轉(zhuǎn)換為經(jīng)修改URL。以此方式,經(jīng)配置以辨識部分式GET請求的代理裝置可根據(jù)本發(fā)明的技術(shù)來轉(zhuǎn)換部分式GET請求,以避免使上游代理裝置將部分式GET請求修改為完整GET請求。此外,根據(jù)本發(fā)明的技術(shù),服務(wù)器裝置可經(jīng)配置以不僅響應(yīng)于部分式GET請求而且響應(yīng)于經(jīng)修改URL,及可經(jīng)配置以指定如何建構(gòu)指定文件的字節(jié)范圍的這些經(jīng)修改URL。
[0038]在一些實(shí)例中,本發(fā)明還提供用于傳信多媒體內(nèi)容的特性的技術(shù),所述特性與明確指定于URL內(nèi)的字節(jié)范圍有關(guān)。本發(fā)明提供形成MH)文件的部分的列舉屬性,其標(biāo)記為“MustUseRangeURL”。對應(yīng)于所述屬性的字段的值指示客戶端裝置是否可(或必須)在URL自身中指定所要字節(jié)范圍。本發(fā)明還提供形成MH)文件的部分的列舉屬性,其標(biāo)記為“Al 1wedByteRanges ”??烧埱蟮淖止?jié)范圍可被指定于MPD文件內(nèi)、表現(xiàn)的區(qū)段索弓I (SIDX)盒內(nèi),或可為未指定的。AllowedByteRanges屬性提供客戶端裝置是否可請求如由MPD文件、SIDX盒或多媒體內(nèi)容的其它數(shù)據(jù)結(jié)構(gòu)指定的字節(jié)范圍的指示。
[0039]本發(fā)明進(jìn)一步提供ByteRangeTemplate字段,其指示將如何指定字節(jié)范圍。所述ByteRangeTemplate 字段可包含 $URL$ 字段、$StartByte$ 字段及 $EndByte$ 字段,所述字段可根據(jù)還指定字節(jié)范圍的恰當(dāng)形成的經(jīng)修改URL來排序。ByteRangeTemplate字段可進(jìn)一步指定額外字符,例如正斜杠或句號或其它ASCII符號。根據(jù)本發(fā)明的技術(shù),使用ByteRangeTemplate,客戶端裝置(或代理裝置)可將部分式GET請求(其包含“Range: ”字段)轉(zhuǎn)換為指定字節(jié)范圍而不使用“Range: ”字段的經(jīng)修改URL。
[0040]假設(shè)(例如)網(wǎng)站服務(wù)器使用字節(jié)范圍抑或通過服務(wù)范圍請求(其中范圍嵌入于URL中)來提供多媒體內(nèi)容(例如,電影“TR0N”)。在此實(shí)例中,網(wǎng)站服務(wù)器為www.example,com。網(wǎng)站服務(wù)器可在MPD(或清單文件)中對于多媒體內(nèi)容“TR0N”提供以下指示:[0041 ].URLTemplate = "http://www.example.com/TRON/segment.$Bandwidth$.$Index$:"
[0042].ByteRangeTemplate = " $Url$/$StartByte$/$EndByte$"
[0043].MustUseRangeURL = 1( = ByteRangeTemplateOptional)
[0044].Al1wedByteRanges = 0( = RangesOnlyFromMPD)
[0045]在此實(shí)例中,MPD文件指示字節(jié)范圍模板為URL,接著為斜杠及所要字節(jié)范圍中的開始字節(jié),接著為另一斜杠及所要字節(jié)范圍中的結(jié)束字節(jié)。MustUseRangeURL指示字節(jié)范圍模板為選用的,其意味服務(wù)器將對HTTP1.1部分式GET請求以及包含范圍請求的經(jīng)修改URL作出響應(yīng),且AllowedByteRanges字段指示僅準(zhǔn)許指定明確指示于MPD中的字節(jié)范圍。
[0046]繼續(xù)此實(shí)例,可根據(jù)HTTP1.1將常規(guī)URL及字節(jié)范圍表達(dá)為以下部分式get請求:
[0047].GET http://www.example.com/TRON/segment.1000.27HTTP/1.1
[0048].Host:www.example, com
[0049].Range:435291-560829
[0050]根據(jù)本發(fā)明的技術(shù)的客戶端裝置(或代理裝置)可修改以上的部分式GET請求以形成以下的經(jīng)修改URL:
[0051].GET http://www.example.com/TRON/segment.1000.27/435291/560829HTTP/1.1
[0052].Host:www.example, com
[0053]大體而言,客戶端裝置可產(chǎn)生此實(shí)例請求而非產(chǎn)生常規(guī)部分式GET請求。在此實(shí)例中,URL明確地指定所要字節(jié)范圍(出于實(shí)例的目的,假定將字節(jié)范圍指定于多媒體內(nèi)容的MPD中)。
[0054]本發(fā)明還提議使用HTTP的擴(kuò)展標(biāo)頭,所述擴(kuò)展標(biāo)頭指示URL包含字節(jié)范圍。此可允許代理裝置確定URL何時(shí)包含字節(jié)范圍,使得代理裝置可為提供請求的客戶端裝置預(yù)先提取多媒體內(nèi)容的數(shù)據(jù)。
[0055]本發(fā)明還提供用于選擇內(nèi)容分配網(wǎng)絡(luò)(CDN)或內(nèi)容服務(wù)器群的技術(shù)。在一些實(shí)例中,客戶端裝置可向重定向URL(包含于對BaseURL的請求的主體中)發(fā)出POST請求。重定向服務(wù)器裝置可接收POST且向所選的CDN(例如,基于請求的客戶端裝置的特性(例如客戶端裝置的位置瀏覽器類型、網(wǎng)絡(luò)地理或如下文所論述的其它選擇準(zhǔn)則))發(fā)出對于對應(yīng)于BaseURL的文件的請求。在其它實(shí)例中,可由多個(gè)CDN指定選擇準(zhǔn)則,例如當(dāng)日時(shí)間、往返延遲、跳躍計(jì)數(shù)、位置及其類似者??蛻舳搜b置可使用這些準(zhǔn)則來選擇⑶N。所述選擇可基于所述準(zhǔn)則或通過測量對應(yīng)于選擇準(zhǔn)則的網(wǎng)絡(luò)特性而隨機(jī)地作出,且使用這些準(zhǔn)則來確定性地選擇⑶N。
[0056]大體而言,本發(fā)明的技術(shù)可用以克服與多媒體數(shù)據(jù)的流有關(guān)(尤其涉及請求多媒體內(nèi)容的部分(例如片段或子區(qū)段))的一個(gè)或一個(gè)以上問題。這些問題包含并非所有瀏覽器皆實(shí)施字節(jié)范圍請求。由于字節(jié)范圍并非URL規(guī)范的部分(事實(shí)上,“Range: ”標(biāo)頭為獨(dú)立于URL發(fā)送的選用標(biāo)頭),所以HTML網(wǎng)頁不能參考字節(jié)范圍,且因此瀏覽器無需實(shí)施字節(jié)范圍請求。在確實(shí)實(shí)施字節(jié)范圍請求的瀏覽器中,這些瀏覽器可能不允許外掛程序(例如視頻外掛程序)發(fā)出字節(jié)范圍請求。此問題已成為瀏覽器外掛程序(例如Adobe PDF閱讀器外掛程序)的設(shè)計(jì)中的問題。如果瀏覽器的外掛程序不能發(fā)出字節(jié)范圍請求,那么DASH外掛程序?qū)⒉荒軓腗PEG視頻文件提取字節(jié)范圍。
[0057]另外,雖然有可能將完整MPEG視頻文件分配給合作的⑶N及通過向合作的⑶N發(fā)出HTTP范圍請求而檢索部分式MPEG文件,但此工作不易由代理高速緩沖存儲(chǔ)器裝置完成。不要求代理高速緩沖存儲(chǔ)器裝置實(shí)施字節(jié)范圍請求。各種代理高速緩沖存儲(chǔ)器裝置通常由數(shù)百個(gè)不同組織管理,且存在幾十種不同實(shí)施,且因此不可能確保所有代理高速緩沖存儲(chǔ)器裝置皆實(shí)施字節(jié)范圍請求。在HTTP1.1中,以完整文件來響應(yīng)于字節(jié)范圍請求是合法的。此可能由于瀏覽器忽略了字節(jié)范圍請求,或其可為有意的。如果代理高速緩沖存儲(chǔ)器實(shí)施病毒掃描器,那么所述掃描器可能將字節(jié)范圍請求轉(zhuǎn)換為完整文件請求,以便在將內(nèi)容作為字節(jié)范圍結(jié)果分發(fā)之前檢索所有內(nèi)容且對其進(jìn)行病毒掃描。典型網(wǎng)頁請求現(xiàn)今可能經(jīng)過3或3個(gè)以上代理裝置(原始服務(wù)器代理高速緩沖存儲(chǔ)器、全國回程通信代理、本地ISP代理)且任何單個(gè)代理裝置(或所有所述代理裝置)可經(jīng)配置以使字節(jié)范圍請求無效。
[0058]此外,相對少的代理高速緩沖存儲(chǔ)器裝置的復(fù)雜程度足以從一系列字節(jié)范圍請求(發(fā)生于(例如)典型視頻的2小時(shí)時(shí)段中)重新建構(gòu)MPEG文件。當(dāng)非常少的瀏覽器及僅瀏覽器外掛程序的子集可發(fā)出字節(jié)范圍請求時(shí),文件重新建構(gòu)實(shí)施起來是困難的。更有可能的是,高速緩沖存儲(chǔ)器將(a)根本不高速緩存字節(jié)范圍請求,或(b)僅保持來自給定文件的最近字節(jié)范圍請求,或(C)將每一單獨(dú)的字節(jié)范圍請求當(dāng)作單獨(dú)文件處理。在最后一種情況下,對于具有2秒片段的具有10個(gè)流的2小時(shí)電影,此將在代理高速緩沖存儲(chǔ)器中產(chǎn)生多達(dá)72,000個(gè)片段。在此情況下,管理每一電影的大量片段的開銷可能變得對于高速緩存來說太無效率且繁重。
[0059]本發(fā)明的技術(shù)包含用于流多媒體內(nèi)容(例如,根據(jù)3GPP DASH協(xié)議的多媒體內(nèi)容)以在由瀏覽器提取的URL內(nèi)發(fā)出字節(jié)范圍請求的機(jī)制。在一些實(shí)例中,這些技術(shù)還包含定義可如何將字節(jié)范圍映射到URL中的泛用模板、一種用以表達(dá)模板的使用是必要的還是僅僅為被準(zhǔn)許的(即,選用的)的方式、一種用以將數(shù)據(jù)(其指示存在嵌入于URL中的字節(jié)范圍)從客戶端裝置提供到原始服務(wù)器及代理裝置的方式,及一種用以基于BaseURL及/或ByteRangeTemplateURL的⑶N類型來選擇模板的方式??蓡为?dú)地或組合地使用這些技術(shù)中的任一者或全部。
[0060]視頻文件(例如媒體內(nèi)容的表現(xiàn)的區(qū)段)可與根據(jù)以下各者中的任一者封裝的視頻數(shù)據(jù)一致:IS0基礎(chǔ)媒體文件格式、可擴(kuò)充視頻譯碼(SVC)文件格式、高級視頻譯碼(AVC)文件格式、第三代合作伙伴計(jì)劃(3GPP)文件格式及/或多視圖視頻譯碼(MVC)文件格式,或其它類似的視頻文件格式。
[0061]ISO基礎(chǔ)媒體文件格式經(jīng)設(shè)計(jì)以含有用于以靈活、可擴(kuò)展格式呈現(xiàn)的定時(shí)媒體信息,所述格式促進(jìn)媒體的互換、管理、編輯及呈現(xiàn)。ISO基礎(chǔ)媒體文件格式(ISO/IEC14496-12:2004)指定于MPEG-4第12部分中,其定義基于時(shí)間的媒體文件的大體結(jié)構(gòu)。ISO基礎(chǔ)媒體文件格式被用作所述系列中的其它文件格式(例如定義對于H.264/MPEG-4AVC視頻壓縮的支持的AVC文件格式(IS0/IEC14496-15)、3GPP文件格式、SVC文件格式及MVC文件格式)的基礎(chǔ)。3GPP文件格式及MVC文件格式為AVC文件格式的擴(kuò)展。ISO基礎(chǔ)媒體文件格式含有媒體數(shù)據(jù)(例如音頻-視覺呈現(xiàn))的定時(shí)序列的時(shí)序、結(jié)構(gòu)及媒體信息。文件結(jié)構(gòu)可為面向?qū)ο蟮牡?。可將文件非常簡單地分解為基本對象且所述對象的類型隱含其結(jié)構(gòu)。[0062]符合ISO基礎(chǔ)媒體文件格式(及其擴(kuò)展)的文件可經(jīng)形成為一系列對象(稱為“盒”)。呈ISO基礎(chǔ)媒體文件格式的數(shù)據(jù)可包括于盒中,使得文件內(nèi)無需含有其它數(shù)據(jù)且文件內(nèi)無需存在在盒外部的數(shù)據(jù)。此包含由特定文件格式需要的任何初始簽名?!昂小笨蔀橛晌ㄒ活愋妥R別符及長度所定義的面向?qū)ο蟮慕ㄖ脡K。通常,一個(gè)文件中含有呈現(xiàn),且媒體呈現(xiàn)為獨(dú)立的。電影容器(電影盒)可含有媒體的元數(shù)據(jù),且視頻及音頻幀可包括于媒體數(shù)據(jù)容器中且可在其它文件中。
[0063]若干文件(有時(shí)稱作區(qū)段)中可含有表現(xiàn)(運(yùn)動(dòng)序列)。時(shí)序及成框(位置及大小)信息大體上是在ISO基礎(chǔ)媒體文件中且輔助文件可基本上使用任何格式。此呈現(xiàn)對于含有所述呈現(xiàn)的系統(tǒng)來說可為“本地”的,或可經(jīng)由網(wǎng)絡(luò)或其它流遞送機(jī)制而提供。
[0064]當(dāng)經(jīng)由流協(xié)議遞送媒體時(shí),可能需要將媒體從其表示于文件中的方式加以變換。此實(shí)例為當(dāng)經(jīng)由實(shí)時(shí)傳送協(xié)議(RTP)來發(fā)射媒體時(shí)。在文件中,例如,視頻的每一幀被連續(xù)地存儲(chǔ)作為文件格式樣本。在RTP中,必須服從特定用于所使用的編解碼器的包化規(guī)則以將這些幀置于RTP包中。流服務(wù)器可經(jīng)配置以在執(zhí)行時(shí)間計(jì)算此包化。然而,存在對流服務(wù)器的輔助的支持。
[0065]本發(fā)明的技術(shù)可適用于網(wǎng)絡(luò)流協(xié)議,例如HTTP流(例如,根據(jù)經(jīng)由HTTP的動(dòng)態(tài)自適應(yīng)性流(DASH))。在HTTP流中,頻繁使用的操作包含GET及部分式GET。GET操作檢索與給定的統(tǒng)一資源定位符(URL)或其它識別符(例如,URI)相關(guān)聯(lián)的整個(gè)文件。部分式GET操作接收字節(jié)范圍作為輸入?yún)?shù)且檢索文件的對應(yīng)于所述接收的字節(jié)范圍的連續(xù)數(shù)目個(gè)字節(jié)。因此,可提供電影片段以進(jìn)行HTTP流,這是因?yàn)椴糠质紾ET操作可獲得一個(gè)或一個(gè)以上個(gè)別電影片段。應(yīng)注意,在電影片段中,可存在不同軌跡(track)的若干軌跡片段。在HTTP流中,媒體表現(xiàn)可為客戶端可存取的數(shù)據(jù)的結(jié)構(gòu)化集合。客戶端可請求及下載媒體數(shù)據(jù)信息以向用戶提供流服務(wù)。
[0066]在使用HTTP流來流式傳輸3GPP數(shù)據(jù)的實(shí)例中,可存在多媒體內(nèi)容的視頻及/或音頻數(shù)據(jù)的多個(gè)表現(xiàn)。可在媒體呈現(xiàn)描述(MPD)數(shù)據(jù)結(jié)構(gòu)中定義這些表現(xiàn)的清單。媒體表現(xiàn)可對應(yīng)于HTTP流客戶端裝置可存取的數(shù)據(jù)的結(jié)構(gòu)化集合。HTTP流客戶端裝置可請求及下載媒體數(shù)據(jù)信息以向客戶端裝置的用戶提供流服務(wù)。可在MH)數(shù)據(jù)結(jié)構(gòu)中描述媒體表現(xiàn),所述MPD數(shù)據(jù)結(jié)構(gòu)可包含MPD的更新。
[0067]每一周期可含有相同媒體內(nèi)容的一個(gè)或一個(gè)以上表現(xiàn)。表現(xiàn)可為音頻或視頻數(shù)據(jù)的諸多替代性編碼版本中的一者。所述表現(xiàn)可在例如編碼類型的各種特性方面不同(例如,對于視頻數(shù)據(jù)而言的位速率、分辨率及/或編解碼器,及對于音頻數(shù)據(jù)而言的位速率、語言及/或編解碼器)。術(shù)語表現(xiàn)可用以指代經(jīng)編碼音頻或視頻數(shù)據(jù)的部分,其對應(yīng)于多媒體內(nèi)容的特定周期且以特定方式而編碼。
[0068]可將特定周期的表現(xiàn)指派給一個(gè)群,所述群可由MPD中的群屬性指示。大體上認(rèn)為相同群中的表現(xiàn)為彼此的替代物。舉例來說,可將特定周期的視頻數(shù)據(jù)的每一表現(xiàn)指派給相同群,使得可將所述表現(xiàn)中的任一者選擇用于解碼以顯示對應(yīng)周期的多媒體內(nèi)容的視頻數(shù)據(jù)。在一些實(shí)例中,在一個(gè)周期內(nèi)的媒體內(nèi)容可由來自群0(如果存在)的一個(gè)表現(xiàn)抑或來自每一非零群的至多一個(gè)表現(xiàn)的組合來表示。可關(guān)于周期的開始時(shí)間來表達(dá)所述周期的每一表現(xiàn)的時(shí)序數(shù)據(jù)。
[0069]表現(xiàn)可包含一個(gè)或一個(gè)以上區(qū)段。每一表現(xiàn)可包含初始化區(qū)段,或表現(xiàn)的每一區(qū)段可為自初始化型的。當(dāng)存在時(shí),初始化區(qū)段可含有用于存取表現(xiàn)的初始化信息。大體而言,初始化區(qū)段不含有媒體數(shù)據(jù)。區(qū)段可由例如統(tǒng)一資源定位符(URL)的識別符來唯一地參考。Mro可提供每一區(qū)段的識別符。在一些實(shí)例中,MPD還可以范圍屬性的形式提供字節(jié)范圍,所述范圍屬性可對應(yīng)于在可通過URL或URI存取的文件內(nèi)的區(qū)段的數(shù)據(jù)。
[0070]每一表現(xiàn)還可包含一個(gè)或一個(gè)以上媒體分量,其中每一媒體分量可對應(yīng)于一個(gè)個(gè)別媒體類型(例如音頻、視頻及/或時(shí)控文本(例如,用于隱藏字幕))的經(jīng)編碼版本。媒體分量可具有跨越一個(gè)表現(xiàn)內(nèi)的連續(xù)媒體區(qū)段的邊界的時(shí)間連續(xù)性。因此,表現(xiàn)可對應(yīng)于個(gè)別文件或區(qū)段序列,所述區(qū)段中的每一者可包含相同的譯碼及呈現(xiàn)特性。
[0071]在一些實(shí)例中,本發(fā)明的技術(shù)可提供一種或一種以上益處。舉例來說,這些技術(shù)可允許中間代理節(jié)點(diǎn)恰當(dāng)?shù)馗咚倬彺孀止?jié)范圍響應(yīng)。這些技術(shù)可導(dǎo)致代理節(jié)點(diǎn)恰當(dāng)?shù)馗咚倬彺嫠埱蟮淖止?jié)范圍(即使當(dāng)代理節(jié)點(diǎn)未被配置成高速緩存所請求的字節(jié)范圍而是被配置成檢索整個(gè)文件時(shí))。為了允許此恰當(dāng)高速緩存,可將字節(jié)范圍并入到URL的文件路徑部分中。通過將字節(jié)范圍并入到文件路徑中,可恰當(dāng)?shù)夭檎?將URL文件路徑用作鍵值)針對完全相同的字節(jié)范圍的未來請求,且所述未來請求產(chǎn)生高速緩存“命中”。由于查找通常僅對URL執(zhí)行(且不包含作為搜索鍵值的Range:標(biāo)頭),所以可發(fā)生此情況。
[0072]這些技術(shù)還可允許原始服務(wù)器使用每表現(xiàn)一個(gè)文件而非每2秒片段一個(gè)文件來存儲(chǔ)視頻表現(xiàn)(其中,通常存在3到8個(gè)視頻表現(xiàn)),而同時(shí)允許由中間節(jié)點(diǎn)高速緩存這些文件。此可將原始服務(wù)器上的文件的數(shù)目從9600-28,800個(gè)減小到3_8個(gè),且可使原始服務(wù)器在存儲(chǔ)及檢索視頻文件方面顯著更有效率。
[0073]此外,這些技術(shù)可將優(yōu)點(diǎn)提供給高速緩存服務(wù)器(常常為內(nèi)容分配代理),所述高速緩存服務(wù)器是根據(jù)用以將字節(jié)范圍并入到HTTP GET請求的URL中的方法而配置。如果這些服務(wù)器可辨識請求,那么其可重新匯編字節(jié)范圍片段且存儲(chǔ)2小時(shí)視頻的3-8個(gè)文件(就像原始服務(wù)器)。內(nèi)容分配網(wǎng)絡(luò)常常將“內(nèi)容特定應(yīng)用程序”部署于這些中間代理上以實(shí)現(xiàn)此定制高速緩存及檢索策略。因此,此在開放的因特網(wǎng)中為非常實(shí)用及可實(shí)現(xiàn)的益處。
[0074]此外,當(dāng)由若干個(gè)不同內(nèi)容分配網(wǎng)絡(luò)來高速緩存一個(gè)視頻時(shí),這些技術(shù)可提供優(yōu)點(diǎn)。歸因于“內(nèi)容特定應(yīng)用程序”的不同策略或不同能力,URL內(nèi)的字節(jié)范圍請求的確切型樣針對不同內(nèi)容分配網(wǎng)絡(luò)可能需要是不同的。本發(fā)明中所描述的技術(shù)可以容易及自然的方式促進(jìn)此情形,且可允許客戶端裝置針對不同內(nèi)容分配網(wǎng)絡(luò)而以不同方式嵌入字節(jié)范圍請求。
[0075]圖1為框圖,其說明實(shí)施用于經(jīng)由網(wǎng)絡(luò)來流式傳輸媒體數(shù)據(jù)的技術(shù)的實(shí)例系統(tǒng)
10。在此實(shí)例中,系統(tǒng)10包含內(nèi)容預(yù)備裝置20、服務(wù)器裝置60及客戶端裝置40??蛻舳搜b置40及服務(wù)器裝置60通過網(wǎng)絡(luò)74通信地耦合,所述網(wǎng)絡(luò)74可包括因特網(wǎng)。在一些實(shí)例中,內(nèi)容預(yù)備裝置20及服務(wù)器裝置60還可通過網(wǎng)絡(luò)74或另一網(wǎng)絡(luò)而耦合,或可直接通信地耦合。在一些實(shí)例中,內(nèi)容預(yù)備裝置20及服務(wù)器裝置60可包括相同裝置。在一些實(shí)例中,內(nèi)容預(yù)備裝置20可將預(yù)備的內(nèi)容分配給多個(gè)服務(wù)器裝置(包含服務(wù)器裝置60)。類似地,在一些實(shí)例中,客戶端裝置40可與多個(gè)服務(wù)器裝置(包含服務(wù)器裝置60)通信。
[0076]如下文予以更詳細(xì)描述,內(nèi)容預(yù)備裝置20、服務(wù)器裝置60及客戶端裝置40中的任一者或全部可經(jīng)配置以執(zhí)行本發(fā)明的對應(yīng)技術(shù)。舉例來說,服務(wù)器裝置60及/或內(nèi)容預(yù)備裝置20可定義泛用模板且將數(shù)據(jù)發(fā)送到客戶端裝置40 (例如,響應(yīng)于來自客戶端裝置40的請求),從而通知客戶端裝置40如何將字節(jié)范圍映射到URL中以請求來自(例如)服務(wù)器裝置60的數(shù)據(jù)。同樣地,客戶端裝置40可提交用以從URL檢索數(shù)據(jù)的請求,其中所述請求的URL根據(jù)泛用模板包含所請求的字節(jié)范圍。此外,服務(wù)器裝置60及/或內(nèi)容預(yù)備裝置20可將指示模板的使用是必要的還是選用的信息提供到客戶端裝置40。
[0077]另外,客戶端裝置40可將數(shù)據(jù)提供到中間網(wǎng)絡(luò)裝置(圖1中未展示),所述數(shù)據(jù)通知中間網(wǎng)絡(luò)裝置存在嵌入于URL中的字節(jié)范圍。中間網(wǎng)絡(luò)裝置可包含代理裝置、經(jīng)配置以高速緩存或檢查數(shù)據(jù)的路由器或其類似者,且可包含于如下文更詳細(xì)描述的圖2中所示的網(wǎng)絡(luò)74內(nèi)。此外,客戶端裝置40可使用清單文件來確定用于選擇內(nèi)容分配網(wǎng)絡(luò)(CDN)(將從其請求數(shù)據(jù))的技術(shù)。服務(wù)器裝置60表示可被包含于⑶N中的服務(wù)器裝置的實(shí)例。其它服務(wù)器裝置或中間網(wǎng)絡(luò)裝置可被包含于(例如)如下文更詳細(xì)描述的圖4中所示的其它CDN內(nèi)。大體而言,通常由產(chǎn)生清單文件(在HTML清單文件或DASH MPD中)的實(shí)體選擇及配置⑶N。在HTML的情況下,可通過改變URL內(nèi)的主機(jī)名稱來達(dá)成⑶N選擇。在DASH的情況下,根據(jù)本發(fā)明的技術(shù),可通過URL中的主機(jī)名稱及CDN URL型樣產(chǎn)生的組合來選擇CDN0根據(jù)本發(fā)明的技術(shù),每一 CDN可指定用于在URL自身內(nèi)產(chǎn)生特定用于所述CDN的字節(jié)范圍請求的模板。
[0078]在圖1的實(shí)例中,內(nèi)容預(yù)備裝置20包括音頻源22及視頻源24。音頻源22可包括(例如)產(chǎn)生電信號的麥克風(fēng),所述電信號代表待由音頻編碼器26編碼的經(jīng)捕獲音頻數(shù)據(jù)。替代地,音頻源22可包括存儲(chǔ)先前記錄的音頻數(shù)據(jù)的存儲(chǔ)媒體、音頻數(shù)據(jù)產(chǎn)生器(例如計(jì)算機(jī)化合成器)或任何其它音頻數(shù)據(jù)源。視頻源24可包括:視頻攝像機(jī),其產(chǎn)生待由視頻編碼器28編碼的視頻數(shù)據(jù);存儲(chǔ)媒體,其經(jīng)編碼有先前記錄的視頻數(shù)據(jù);視頻數(shù)據(jù)產(chǎn)生單元,例如計(jì)算機(jī)圖形源;或任何其它視頻數(shù)據(jù)源。內(nèi)容預(yù)備裝置20未必在所有實(shí)例中皆通信地耦合到服務(wù)器裝置60,而是可將多媒體內(nèi)容存儲(chǔ)到由服務(wù)器裝置60讀取的單獨(dú)媒體。
[0079]原始音頻及視頻數(shù)據(jù)可包括模擬或數(shù)字?jǐn)?shù)據(jù)。模擬數(shù)據(jù)可在由音頻編碼器26及/或視頻編碼器28編碼之前數(shù)字化。音頻源22可在講話參與者正在講話時(shí)從講話參與者獲得音頻數(shù)據(jù),且視頻源24可同時(shí)獲得講話參與者的視頻數(shù)據(jù)。在其它實(shí)例中,音頻源22可包括包括所存儲(chǔ)的音頻數(shù)據(jù)的計(jì)算機(jī)可讀存儲(chǔ)媒體,且視頻源24可包括包括所存儲(chǔ)的視頻數(shù)據(jù)的計(jì)算機(jī)可讀存儲(chǔ)媒體。以此方式,可將本發(fā)明中所描述的技術(shù)應(yīng)用于實(shí)況、流、實(shí)時(shí)音頻及視頻數(shù)據(jù)或存檔、預(yù)先記錄的音頻及視頻數(shù)據(jù)。
[0080]對應(yīng)于視頻幀的音頻幀大體上為含有音頻數(shù)據(jù)的音頻幀,所述音頻數(shù)據(jù)由音頻源22與在視頻幀內(nèi)所含有的由視頻源24所捕獲的視頻數(shù)據(jù)同時(shí)捕獲。舉例來說,當(dāng)講話參與者大體上通過講話而產(chǎn)生音頻數(shù)據(jù)時(shí),音頻源22捕獲音頻數(shù)據(jù),且視頻源24同時(shí)(即,在音頻源22正在捕獲音頻數(shù)據(jù)的同時(shí))捕獲講話參與者的視頻數(shù)據(jù)。因此,音頻幀可在時(shí)間上對應(yīng)于一個(gè)或一個(gè)以上特定視頻幀。因此,對應(yīng)于視頻幀的音頻幀大體上對應(yīng)于同時(shí)捕獲到音頻數(shù)據(jù)及視頻數(shù)據(jù)且音頻幀及視頻幀分別包括音頻數(shù)據(jù)及同時(shí)捕獲的視頻數(shù)據(jù)的情形。
[0081]音頻編碼器26大體上產(chǎn)生經(jīng)編碼音頻數(shù)據(jù)流,而視頻編碼器28產(chǎn)生經(jīng)編碼視頻數(shù)據(jù)流??蓪⒚恳粋€(gè)別數(shù)據(jù)流(不管為音頻還是視頻)稱作基本流?;玖鳛楸憩F(xiàn)的單個(gè)、數(shù)字地譯碼(可能被壓縮)分量。舉例來說,表現(xiàn)的經(jīng)譯碼視頻或音頻部分可為基本流?;玖骺稍诒环庋b于視頻文件內(nèi)之前轉(zhuǎn)換為包化的基本流(PES)。在相同表現(xiàn)內(nèi),流ID可用以區(qū)分屬于一個(gè)基本流的PES包與其它包?;玖鞯幕緮?shù)據(jù)單元為包化的基本流(PES)包。因此,經(jīng)譯碼視頻數(shù)據(jù)大體上對應(yīng)于基本視頻流。類似地,音頻數(shù)據(jù)對應(yīng)于一個(gè)或一個(gè)以上相應(yīng)基本流。
[0082]與許多視頻譯碼標(biāo)準(zhǔn)一樣,H.264/AVC定義用于無錯(cuò)位流的語法、語義及解碼過程,所述無錯(cuò)位流中的任一者符合某一配置文件或級別。H.264/AVC未指定編碼器,但編碼器被分派有以下任務(wù):保證所產(chǎn)生的位流對于解碼器而言為順應(yīng)標(biāo)準(zhǔn)的。在視頻譯碼標(biāo)準(zhǔn)的上下文中,“配置文件”對應(yīng)于算法、特征或工具的子集及應(yīng)用于其的約束。如由H.264標(biāo)準(zhǔn)所定義,例如,“配置文件”為由H.264標(biāo)準(zhǔn)指定的整個(gè)位流語法的子集?!凹墑e”對應(yīng)于解碼器資源消耗(例如解碼器存儲(chǔ)器及計(jì)算)的限制,其與圖片的分辨率、位速率及宏塊(MB)處理速率有關(guān)??赏ㄟ^pr0file_idC (配置文件指示符)值來傳信配置文件,而可通過Ievelidc (級別指示符)值來傳信級別。
[0083]H.264標(biāo)準(zhǔn)(例如)認(rèn)識到,在由給定配置文件的語法強(qiáng)加的界限內(nèi),仍有可能取決于由位流中的語法元素所取的值(例如經(jīng)解碼圖片的指定大小)而需要編碼器及解碼器的性能方面的大變化。H.264標(biāo)準(zhǔn)進(jìn)一步認(rèn)識到,在許多應(yīng)用中,實(shí)施能夠處理在特定配置文件內(nèi)語法的所有假設(shè)使用的解碼器既非實(shí)際的也非經(jīng)濟(jì)的。因此,H.264標(biāo)準(zhǔn)將“級別”定義為強(qiáng)加于位流中的語法元素的值的約束的指定集合。這些約束可為對值的簡單限制。替代地,這些約束可采用對值的算術(shù)組合(例如,圖片寬度乘以圖片高度乘以每秒解碼的圖片的數(shù)目)的約束的形式。H.264標(biāo)準(zhǔn)進(jìn)一步規(guī)定,個(gè)別實(shí)施可針對每一所支持配置文件而支持不同級別??商峁┒嗝襟w內(nèi)容的各種表現(xiàn),以適應(yīng)H.264內(nèi)的譯碼的各種配置文件及級別,以及適應(yīng)其它譯碼標(biāo)準(zhǔn)(例如即將來臨的高效視頻譯碼(HEVC)標(biāo)準(zhǔn))。
[0084]符合配置文件的解碼器通常支持所述配置文件中所定義的所有特征。舉例來說,作為譯碼特征,B圖片譯碼在H.264/AVC的基線配置文件中不受支持,但在H.264/AVC的其它配置文件中受到支持。符合特定級別的解碼器應(yīng)能夠不要求超過所述級別中所定義的限制的資源地解碼任何位流。配置文件及級別的定義可有助于解譯能力。舉例來說,在視頻發(fā)射期間,可針對整個(gè)發(fā)射作業(yè)階段協(xié)商一對配置文件及級別定義并就此達(dá)成一致。更具體來說,在H.264/AVC中,級別可定義(例如)對以下各者的限制:需要處理的塊的數(shù)目、解碼圖片緩沖器(DPB)大小、譯碼圖片緩沖器(CPB)大小、垂直運(yùn)動(dòng)向量范圍、每兩個(gè)連續(xù)MB的最大運(yùn)動(dòng)向量數(shù)目,及B塊是否可具有小于8x8像素的子塊分區(qū)。以此方式,解碼器可確定解碼器是否能恰當(dāng)?shù)亟獯a位流。
[0085]視頻壓縮標(biāo)準(zhǔn)(例如ITU-T H.261、H.262、H.263、MPEG-1、MPEG_2、H.264/MPEG-4第10部分及即將來臨的高效視頻譯碼(HEVC)標(biāo)準(zhǔn))使用運(yùn)動(dòng)補(bǔ)償?shù)臅r(shí)間預(yù)測以減少時(shí)間冗余。編碼器(例如視頻編碼器28)可使用根據(jù)一些先前編碼的圖片(在本文中亦稱作幀)的運(yùn)動(dòng)補(bǔ)償預(yù)測來根據(jù)運(yùn)動(dòng)向量預(yù)測當(dāng)前譯碼的圖片。在典型視頻譯碼中存在三種主要圖片類型。其為幀內(nèi)譯碼圖片(“I圖片”或“I幀”)、預(yù)測圖片(“P圖片”或“P幀”)及雙向預(yù)測圖片(“B圖片”或“B幀”)。P圖片可使用在時(shí)間次序上在當(dāng)前圖片前面的參考圖片。在B圖片中,可從一個(gè)或兩個(gè)參考圖片預(yù)測B圖片的每一塊。這些參考圖片可在時(shí)間次序上位于當(dāng)前圖片的前面或后面。
[0086]參數(shù)集大體上含有在序列參數(shù)集(SPS)中的序列層標(biāo)頭信息及在圖片參數(shù)集(PPS)中的不常改變的圖片層標(biāo)頭信息。就參數(shù)集而言,此不常改變的信息無需針對每一序列或圖片而重復(fù);因此,可改良譯碼效率。此外,參數(shù)集的使用可允許實(shí)現(xiàn)標(biāo)頭信息的帶外發(fā)射,從而避免需要冗余發(fā)射來達(dá)成錯(cuò)誤恢復(fù)。在帶外發(fā)射中,在不同于其它NAL單元的信道上發(fā)射參數(shù)集NAL單元。
[0087]在圖1的實(shí)例中,內(nèi)容預(yù)備裝置20的封裝單元30從視頻編碼器28接收包括經(jīng)譯碼視頻數(shù)據(jù)的基本流及從音頻編碼器26接收包括經(jīng)譯碼音頻數(shù)據(jù)的基本流。在一些實(shí)例中,視頻編碼器28及音頻編碼器26可各自包含用于從經(jīng)編碼數(shù)據(jù)形成PES包的包化器。在其它實(shí)例中,視頻編碼器28及音頻編碼器26可各自與用于從經(jīng)編碼數(shù)據(jù)形成PES包的相應(yīng)包化器建立接口。在其它實(shí)例中,封裝單元30可包含用于從經(jīng)編碼的音頻及視頻數(shù)據(jù)形成PES包的包化器。
[0088]視頻編碼器28可以多種方式編碼多媒體內(nèi)容的視頻數(shù)據(jù),以產(chǎn)生多媒體內(nèi)容的處于各種位速率及具有各種特性(例如像素分辨率、幀速率、與各種譯碼標(biāo)準(zhǔn)的符合度、與各種譯碼標(biāo)準(zhǔn)的各種配置文件及/或配置文件的級別的符合度、表現(xiàn)具有一個(gè)或一個(gè)以上視圖(例如,用于二維或三維播放),或其它這些特性)的不同表現(xiàn)。如本發(fā)明中所使用,表現(xiàn)可包括音頻數(shù)據(jù)及視頻數(shù)據(jù)的組合(例如,一個(gè)或一個(gè)以上音頻基本流及一個(gè)或一個(gè)以上視頻基本流)。每一 PES包可包含識別所述PES包所屬的基本流的stream_id。封裝單元30負(fù)責(zé)將基本流匯編為各種表現(xiàn)的視頻文件。
[0089]封裝單元30從音頻編碼器26及視頻編碼器28接收表現(xiàn)的基本流的PES包,且從所述PES包形成對應(yīng)的網(wǎng)絡(luò)抽象層(NAL)單元。在H.264/AVC (高級視頻譯碼)的實(shí)例中,經(jīng)譯碼視頻區(qū)段被組織為NAL單元,所述NAL單元提供“網(wǎng)絡(luò)親和”的視頻表現(xiàn)尋址應(yīng)用,例如視頻電話、存儲(chǔ)、廣播或流??蓪AL單元分類為視頻譯碼層(VCL)NAL單元及非VCLNAL單元。VCL單元可含有核心壓縮引擎且可包含塊、宏塊及/或切片級別數(shù)據(jù)。其它NAL單元可為非VCL NAL單元。
[0090]封裝單元30可將多媒體內(nèi)容的一個(gè)或一個(gè)以上表現(xiàn)的數(shù)據(jù)連同清單文件(例如,MPD)提供到輸出接口 32。輸出接口 32可包括:網(wǎng)絡(luò)接口或用于寫入到存儲(chǔ)媒體的接口,例如通用串行總線(USB)接口、CD或DVD編寫器或刻錄器;到磁性或快閃存儲(chǔ)媒體的接口 ;或用于存儲(chǔ)或發(fā)射媒體數(shù)據(jù)的其它接口。封裝單元30可將多媒體內(nèi)容的表現(xiàn)中的每一者的數(shù)據(jù)提供到輸出接口 32,所述輸出接口 32可經(jīng)由網(wǎng)絡(luò)發(fā)射、直接發(fā)射或存儲(chǔ)媒體而將數(shù)據(jù)發(fā)送到服務(wù)器裝置60。在圖1的實(shí)例中,服務(wù)器裝置60包含存儲(chǔ)各種多媒體內(nèi)容64的存儲(chǔ)媒體62,每一多媒體內(nèi)容64包含相應(yīng)清單文件66及一個(gè)或一個(gè)以上表現(xiàn)68A-68N (表現(xiàn)68)。根據(jù)本發(fā)明的技術(shù),可將清單文件66的部分存儲(chǔ)于單獨(dú)的位置(例如,存儲(chǔ)媒體62或另一存儲(chǔ)媒體的位置,可能為網(wǎng)絡(luò)74的另一裝置(例如代理裝置)的存儲(chǔ)媒體)中。
[0091]在一些實(shí)例中,可將表現(xiàn)68分成適配集。S卩,表現(xiàn)68的各個(gè)子集可包含特性的相應(yīng)共同集合,例如編解碼器、配置文件及級別、分辨率、視圖的數(shù)目、區(qū)段的文件格式、可識別將要隨著表現(xiàn)顯示的文本及/或待解碼及呈現(xiàn)(例如,通過揚(yáng)聲器)的音頻數(shù)據(jù)的語言或其它特性的文本類型信息、可描述適配集中的表現(xiàn)的場景的攝像機(jī)角度或真實(shí)世界攝像機(jī)透視的攝像機(jī)角度信息、描述針對特定觀眾的內(nèi)容適合性的分級信息,或其類似者。
[0092]清單文件66可包含指示對應(yīng)于特定適配集的表現(xiàn)68的子集以及所述適配集的共同特性的數(shù)據(jù)。清單文件66還可包含代表適配集的個(gè)別表現(xiàn)的個(gè)別特性(例如位速率)的數(shù)據(jù)。以此方式,適配集可為簡化的網(wǎng)絡(luò)帶寬適配作準(zhǔn)備??墒褂们鍐挝募?6的適配集元素的子代元素來指示適配集中的表現(xiàn)。
[0093]服務(wù)器裝置60包含請求處理單元70及網(wǎng)絡(luò)接口 72。在一些實(shí)例中,服務(wù)器裝置60可包含多個(gè)網(wǎng)絡(luò)接口(包含網(wǎng)絡(luò)接口 72)。此外,服務(wù)器裝置60的特征中的任一者或全部可實(shí)施于內(nèi)容分配網(wǎng)絡(luò)的其它裝置(例如路由器、橋接器、代理裝置、交換器或其它裝置)上。在一些實(shí)例中,內(nèi)容分配網(wǎng)絡(luò)的中間裝置可高速緩存多媒體內(nèi)容64的數(shù)據(jù),且包含實(shí)質(zhì)上符合服務(wù)器裝置60的組件的組件。大體而言,網(wǎng)絡(luò)接口 72經(jīng)配置以經(jīng)由網(wǎng)絡(luò)74來發(fā)送及接收數(shù)據(jù)。
[0094]請求處理單元70經(jīng)配置以從客戶端裝置(例如客戶端裝置40)接收針對存儲(chǔ)媒體72的數(shù)據(jù)的網(wǎng)絡(luò)請求。舉例來說,請求處理單元70可實(shí)施超文本傳送協(xié)議(HTTP)版本
1.1,如由R.Fielding等人在RFC2616 “超文本傳送協(xié)議-HTTP/1.1” (網(wǎng)絡(luò)工作組,IETF,1999年6月)中所描述。即,請求處理單元70可經(jīng)配置以接收HTTP GET請求或部分式GET請求且響應(yīng)于所述請求而提供多媒體內(nèi)容64的數(shù)據(jù)。所述請求可指定表現(xiàn)68中的一者的區(qū)段(例如,使用所述區(qū)段的URL)。在一些實(shí)例中,所述請求還可指定所述區(qū)段的一個(gè)或一個(gè)以上字節(jié)范圍。在一些實(shí)例中,可使用部分式GET請求來指定區(qū)段的字節(jié)范圍。在其它實(shí)例中,根據(jù)本發(fā)明的技術(shù),可將區(qū)段的字節(jié)范圍指定為區(qū)段的URL的部分(例如,根據(jù)泛用模板)。
[0095]請求處理單元70可進(jìn)一步經(jīng)配置以服務(wù)HTTP HEAD請求以提供表現(xiàn)68中的一者的區(qū)段的標(biāo)頭數(shù)據(jù)。在任何情況下,請求處理單元70可經(jīng)配置以處理所述請求以將所請求的數(shù)據(jù)提供到請求的裝置(例如客戶端裝置40)。此外,請求處理單元70可經(jīng)配置以:產(chǎn)生用于建構(gòu)指定字節(jié)范圍的URL的模板;提供指示所述模板是必要的還是選用的信息;及提供指示任何字節(jié)范圍是否為可接受的或是否僅字節(jié)范圍的特定集合是準(zhǔn)許的信息。當(dāng)僅特定字節(jié)范圍被準(zhǔn)許時(shí),請求處理單元70可提供所述被準(zhǔn)許的字節(jié)范圍的指示。
[0096]如圖1的實(shí)例中所說明,多媒體內(nèi)容64包含清單文件66,所述清單文件66可對應(yīng)于媒體呈現(xiàn)描述(MPD)。清單文件66可含有不同替代性表現(xiàn)68 (例如,具有不同質(zhì)量的視頻服務(wù))的描述,且描述可包含(例如)編解碼器信息、配置文件值、級別值、位速率及表現(xiàn)68的其它描述性特性??蛻舳搜b置40可檢索媒體呈現(xiàn)的MPD以確定如何存取表現(xiàn)68的區(qū)段。在常規(guī)DASH中,存在兩種用以指定字節(jié)范圍的方式。第一種方式為明確地將字節(jié)范圍置于個(gè)別片段定義中,將所述字節(jié)范圍存儲(chǔ)于MPD XML中。第二種方式為從MPEG文件中的SIDX盒提取字節(jié)范圍信息,且使用彼SIDX字節(jié)范圍信息來發(fā)出針對媒體的字節(jié)范圍請求??墒褂眠@些技術(shù)中的任一者或如由所屬領(lǐng)域的技術(shù)人員將理解的其它技術(shù)來指定上文所論述的字節(jié)范圍。
[0097]客戶端裝置40的網(wǎng)頁應(yīng)用程序52可包括由客戶端裝置40的基于硬件的處理單元執(zhí)行的網(wǎng)頁瀏覽器,或此網(wǎng)頁瀏覽器的外掛程序。應(yīng)將對網(wǎng)頁應(yīng)用程序52的提及大體上理解為包含網(wǎng)頁應(yīng)用程序(例如網(wǎng)頁瀏覽器)、獨(dú)立視頻播放器抑或?qū)⑼鈷觳シ懦绦虿⑷氲骄W(wǎng)頁瀏覽器的網(wǎng)頁瀏覽器。網(wǎng)頁應(yīng)用程序52可檢索客戶端裝置40的配置數(shù)據(jù)(未圖示)以確定視頻解碼器48的解碼能力及客戶端裝置40的視頻輸出44的呈現(xiàn)能力。
[0098]配置數(shù)據(jù)還可包含以下各者中的任一者或全部:由客戶端裝置40的用戶所選擇的語言偏好;對應(yīng)于由客戶端裝置40的用戶設(shè)置的深度偏好的一個(gè)或一個(gè)以上攝像機(jī)透視 '及/或由客戶端裝置40的用戶選擇的分級偏好。網(wǎng)頁應(yīng)用程序52可包括(例如)網(wǎng)頁瀏覽器或經(jīng)配置以提交HTTP GET請求及部分式GET請求的媒體客戶端。網(wǎng)頁應(yīng)用程序52可對應(yīng)于由客戶端裝置40的一個(gè)或一個(gè)以上處理器或處理單元(未圖示)執(zhí)行的軟件指令。在一些實(shí)例中,關(guān)于網(wǎng)頁應(yīng)用程序52所描述的功能性的全部或部分可以硬件或硬件、軟件及/或固件的組合實(shí)施,其中可提供必備的硬件以執(zhí)行軟件或固件的指令。
[0099]網(wǎng)頁應(yīng)用程序52可比較客戶端裝置40的解碼及呈現(xiàn)能力與由清單文件66的信息指示的表現(xiàn)68的特性。網(wǎng)頁應(yīng)用程序52可最初檢索清單文件66的至少一部分以確定表現(xiàn)68的特性。舉例來說,網(wǎng)頁應(yīng)用程序52可請求清單文件66的描述一個(gè)或一個(gè)以上適配集的特性的一部分。網(wǎng)頁應(yīng)用程序52可選擇表現(xiàn)68的子集(例如,適配集),其具有可由客戶端裝置40的譯碼及呈現(xiàn)能力滿足的特性。網(wǎng)頁應(yīng)用程序52可接著確定適配集中的表現(xiàn)的位速率、確定網(wǎng)絡(luò)帶寬的當(dāng)前可用量,且從所述表現(xiàn)中的一者檢索具有可由網(wǎng)絡(luò)帶寬滿足的位速率的區(qū)段(或字節(jié)范圍)。
[0100]大體而言,較高位速率的表現(xiàn)可產(chǎn)生較高質(zhì)量的視頻播放,而當(dāng)可用網(wǎng)絡(luò)帶寬減小時(shí)較低位速率的表現(xiàn)可提供足夠質(zhì)量的視頻播放。因此,當(dāng)可用網(wǎng)絡(luò)帶寬相對高時(shí),網(wǎng)頁應(yīng)用程序52可從相對高的位速率表現(xiàn)檢索數(shù)據(jù),而當(dāng)可用網(wǎng)絡(luò)帶寬為低時(shí),網(wǎng)頁應(yīng)用程序52可從相對低的位速率表現(xiàn)檢索數(shù)據(jù)。以此方式,客戶端裝置40可經(jīng)由網(wǎng)絡(luò)74來流式傳輸多媒體數(shù)據(jù),同時(shí)也適合于網(wǎng)絡(luò)74的變化的網(wǎng)絡(luò)帶寬可用性。
[0101]如上文所提及,在一些實(shí)例中,客戶端裝置40可將用戶信息提供到(例如)服務(wù)器裝置60或內(nèi)容分配網(wǎng)絡(luò)的其它裝置。用戶信息可采用瀏覽器小型文字檔的形式,或可采用其它形式。網(wǎng)頁應(yīng)用程序52 (例如)可收集用戶識別符、用戶識別符、用戶偏好及/或用戶人口統(tǒng)計(jì)信息,且將此用戶信息提供到服務(wù)器裝置60。網(wǎng)頁應(yīng)用程序52可接著接收與目標(biāo)廣告媒體內(nèi)容相關(guān)聯(lián)的清單文件,以用以在播放期間將來自目標(biāo)廣告媒體內(nèi)容的數(shù)據(jù)插入到所請求的媒體內(nèi)容的媒體數(shù)據(jù)中??捎捎趯η鍐挝募蚯鍐巫游募恼埱蠖苯咏邮沾藬?shù)據(jù),或可經(jīng)由到替代性清單文件或子文件的HTTP重定向(基于所供應(yīng)的瀏覽器小型文字檔,其用以存儲(chǔ)用戶人口統(tǒng)計(jì)及其它目標(biāo)信息)而接收此數(shù)據(jù)。
[0102]有時(shí),客戶端裝置40的用戶可使用客戶端裝置40的用戶接口(例如鍵盤、鼠標(biāo)、觸筆、觸摸屏接口、按鈕或其它接口)而與網(wǎng)頁應(yīng)用程序52互動(dòng),以請求多媒體內(nèi)容(例如多媒體內(nèi)容64)。響應(yīng)于來自用戶的這些請求,網(wǎng)頁應(yīng)用程序52可基于(例如)客戶端裝置40的解碼及呈現(xiàn)能力來選擇表現(xiàn)68中的一者。為了檢索表現(xiàn)68中的所選者的數(shù)據(jù),網(wǎng)頁應(yīng)用程序52可順序地請求表現(xiàn)68中的所選者的特定字節(jié)范圍。以此方式,代替經(jīng)由一個(gè)請求來接收完整文件的做法,網(wǎng)頁應(yīng)用程序52可經(jīng)由多個(gè)請求順序地接收文件的部分。根據(jù)本發(fā)明的技術(shù),網(wǎng)頁應(yīng)用程序52可形成包含指定字節(jié)范圍的URL(例如,根據(jù)模板)的請求。
[0103]在一些實(shí)例中,服務(wù)器裝置60可指定用于來自客戶端裝置(例如客戶端裝置40)的URL的泛用模板??蛻舳搜b置40又可使用所述模板來建構(gòu)HTTP GET請求的URL。在DASH協(xié)議中,URL是通過將其明確地列出于每一區(qū)段內(nèi)抑或通過給出URLTemplate而形成,所述URLTemplate為含有一個(gè)或一個(gè)以上熟知型樣(例如$$、$RepresentationID$、$Index$、$Bandwidth$或$Time$ (由DASH的當(dāng)前草案的表9描述))的URL。在作出URL請求之前,客戶端裝置40可將文本串(例如“$$”、表現(xiàn)id、區(qū)段的索引等)代入U(xiǎn)RLTemplate中以產(chǎn)生待提取的最終URL。本發(fā)明定義若干額外XML字段,其可被加到DASH文件的SegmentInfoDefault元素(例如,在多媒體內(nèi)容的MPD (例如多媒體內(nèi)容64的清單文件66)中)。
[0104]在一些實(shí)例中,服務(wù)器裝置60可在第一字段中提供表達(dá)泛用模板的使用(例如,模板是必要的還是選用的)的數(shù)據(jù)。舉例來說,服務(wù)器裝置60 (或代理裝置)可將指示是否客戶端裝置40被要求或只是被準(zhǔn)許使用模板的信息提供到客戶端裝置40。服務(wù)器裝置60可設(shè)置清單文件66中的元素的值以指示模板的使用。舉例來說,MH)文件(代表清單文件66的實(shí)例)可包含一標(biāo)記為“MustUseRangeURL”的字段,其可采用三個(gè)值中的一者:DoNotIncorporateByteRangeIntoUrI(O) ;ByteRangeTempIateOptional(I);或ByteRangeTemplateMandatory (2)。在一些實(shí)例中,如果服務(wù)器裝置60將值設(shè)置為零,那么所提取的URL必須不含有字節(jié)范圍且必須不使用ByteRangeTemplate。在一些實(shí)例中,服務(wù)器裝置60自選地將值設(shè)置為1,DASH播放器(例如,網(wǎng)頁應(yīng)用程序52)可發(fā)出規(guī)則字節(jié)范圍請求,或其可將字節(jié)范圍嵌入U(xiǎn)RL自身內(nèi)。在一些實(shí)例中,如果服務(wù)器裝置60將值設(shè)置為2,那么DASH播放器必須在URL內(nèi)發(fā)出字節(jié)范圍請求。
[0105]由本發(fā)明提供的另一字段為列舉屬性“AllowedByteRanges”,其還可采用三個(gè)值中的一者。第一值為Ranges0nlyFromMPD(0)。當(dāng)服務(wù)器裝置60指定此值時(shí),不允許DASH播放器(例如,網(wǎng)頁應(yīng)用程序52)使用來自SIDX的字節(jié)范圍(其可包含于表現(xiàn)68中的相應(yīng)者的數(shù)據(jù)內(nèi))。因此,可將DASH播放器限制到僅使用來自DASH MPD (例如,清單文件66)的字節(jié)范圍。第二值為RangesFromSIDX(I)。當(dāng)服務(wù)器裝置60指定此值時(shí),DASH播放器可僅使用來自SIDX的字節(jié)范圍(再次,其可被包含作為表現(xiàn)68中的相應(yīng)者的區(qū)段內(nèi)的數(shù)據(jù))以產(chǎn)生片段或區(qū)段請求。第三值RangesFromAnywhere (3)允許任意字節(jié)范圍請求(包含使用SIDX或MPD的能力及將兩個(gè)或兩個(gè)以上的片段組合于區(qū)段請求中的能力)以在字節(jié)范圍請求中同時(shí)請求兩個(gè)或兩個(gè)以上的區(qū)段或針對一個(gè)或一個(gè)以上區(qū)段或區(qū)段的部分的請求的其它混合體。
[0106]由本發(fā)明提供的又一字段為ByteRangeTemplate字段。服務(wù)器裝置60可提供此字段的數(shù)據(jù)。根據(jù)本發(fā)明的技術(shù),ByteRangeTemplate可指定包含字段$Url$、$StartByte$及$EndByte$的串型樣。另外,ByteRangeTemplate可含有為了發(fā)出基于URL的字節(jié)范圍請求而添加的額外ASCII字符,或其可包含代表單個(gè)美元符號的符號“$$”,如在URLTemplate元素中??蛻舳搜b置40可用數(shù)據(jù)代替ByteRangeTemplate的三個(gè)字段中的每一者。明確地說,客戶端裝置40可將對應(yīng)于URLTemplate字段的值的值代入到$Url$字段中??蛻舳搜b置40還可在$StartByte$及$EndByte$字段中將待請求的字節(jié)范圍的開始字節(jié)及結(jié)束字節(jié)代入到所得URL中。以此方式,客戶端裝置40可產(chǎn)生含有用于字節(jié)范圍請求的信息的URL??蛻舳搜b置40可經(jīng)由其內(nèi)不含有“Range: ”字段的GET請求而從此所建構(gòu)的URL提取數(shù)據(jù)。即,客戶端裝置40可將GET請求(包含所產(chǎn)生的URL)提交給服務(wù)器裝置60。
[0107]所屬領(lǐng)域的技術(shù)人員應(yīng)理解,字節(jié)范圍模板的串型樣是否存儲(chǔ)于ByteRangeTemplate屬性中或換作其是否存儲(chǔ)于URLTemplate中是無關(guān)緊要的。僅僅出于實(shí)例的目的而提供模板的串型樣存儲(chǔ)于ByteRangeTemplate及URLTemplate屬性中。大體而言,可將這些串型樣存儲(chǔ)于任一位置中或清單文件中的別處。
[0108]下文提供指定這些字段的數(shù)據(jù)的請求的實(shí)例。在此實(shí)例中,網(wǎng)站服務(wù)器(例如服務(wù)器裝置60)使用字節(jié)范圍抑或通過服務(wù)范圍請求(在范圍嵌入于URL中的情況下)來分發(fā)多媒體內(nèi)容(例如,電影“TRON”)。網(wǎng)站服務(wù)器可為(例如)www.mp4player, com。下文呈現(xiàn)此第一實(shí)例的值:
URLTcmplalc = " hUp://ww w.m p4pI ay.com/TRON/
scgmcnl.$Bandwidth$.$Indcx$"
[0109]ByicRangcTcmplalc = "$Url$/$SlartBylc$/$EndByic$" segment.$Bandwidth$
MuslUscRangeURL = I (= BylcRiingcrIcmpialcOptionar)
AllowcdBytcRanges = 0 (= RangcsOnlyFromMPD).$Index$" ByteRangeTemplate = " $Url$/$StartByte$/$EndByte$" MustUseRangeURL= 1( = ByteRangeTemplateOptional) AllowedByteRanges = 0( = RangesOnlyFromMPD)
[0110]在此實(shí)例中,在“www.mp4player.com”處的網(wǎng)站服務(wù)器通過將“ I”的值指派給元素“MustUseRangeURL”而指示字節(jié)范圍模板對于客戶端裝置而言為選用的。SP,客戶端裝置40可將字節(jié)范圍指定為根據(jù)URL模板及字節(jié)范圍模板所形成的URL的部`分,或客戶端裝置40可利用常規(guī)部分式GET請求。如果客戶端裝置40決定使用所述模板,那么客戶端裝置將提交針對URL的請求(“http://www.mp4player.com/TRON/segment.$Bandwidth$.$Index$”),接著為斜杠 $StartByte$ 的值、另一斜杠 “/,,,且接著為$EndByte$的值。因此,客戶端裝置40可建構(gòu)具有兩個(gè)部分的URL:對應(yīng)于特定表現(xiàn)及其區(qū)段的基礎(chǔ)部分;及指定所請求的字節(jié)范圍的開始字節(jié)及結(jié)束字節(jié)的字節(jié)范圍部分。所述字節(jié)范圍部分可基本上執(zhí)行部分式GET請求中的“Range: ”標(biāo)頭的功能,但被指定于URL路徑自身中而非指定為“Range: ”標(biāo)頭。對于所屬領(lǐng)域的技術(shù)人員而言,應(yīng)顯而易見,因?yàn)樽止?jié)范圍被指定于URL路徑中,所以GET請求的結(jié)果潛在地可由任何中間裝置(例如透明(或顯式)網(wǎng)站代理裝置)高速緩存。對于所屬領(lǐng)域的技術(shù)人員而言,應(yīng)明顯地,可高速緩存的請求允許放大視頻播放以允許數(shù)千或甚至數(shù)百萬個(gè)客戶端同時(shí)請求相同內(nèi)容。對于所屬領(lǐng)域的技術(shù)人員而言,應(yīng)顯而易見,因?yàn)樽止?jié)范圍是根據(jù)模板(其對于不同內(nèi)容分配網(wǎng)絡(luò)而言可為不同的)而指定,所以使不同內(nèi)容分配網(wǎng)絡(luò)針對url路徑內(nèi)字節(jié)范圍(byte-range-within-url-path)請求而采用一種且僅一種格式的重?fù)?dān)得到紓解。
[0111]此外,在此實(shí)例中,網(wǎng)站服務(wù)器通過將“O”的值指派給元素“AllowedByteRanges”而指示僅可指定被指定于MPD中的字節(jié)范圍。因此,不管客戶端裝置是決定使用字節(jié)范圍模板來指定字節(jié)范圍還是將字節(jié)范圍指定為部分式GET請求,客戶端裝置將僅被準(zhǔn)許指定MPD文件中所識別的字節(jié)范圍。
[0112]假定由客戶端裝置執(zhí)行的網(wǎng)頁瀏覽器(例如,客戶端裝置40的網(wǎng)頁應(yīng)用程序52)支持字節(jié)范圍請求且針對外掛程序而支持字節(jié)范圍請求,DASH外掛程序可使用HTTP1.1的Range:標(biāo)頭來發(fā)出字節(jié)范圍請求。假定IOOOKbps位速率的視頻具有區(qū)段ID = 27,指定字節(jié)范圍的常規(guī)部分式GET請求可為如下:
[0113]GET http://www.mp4player.com/TRON/segment.1000.27HTTP/1.1
[0114]Host:www.mp4player.com
[0115]Range:435291-560829
[0116]如果網(wǎng)頁瀏覽器不允許其外掛程序發(fā)出字節(jié)范圍請求,那么根據(jù)上文的實(shí)例,所述請求可為如下:[0117]GET http://www.mp4player.com/TRON/segment.1000.27/435291/560829HTTP/1.1
[0118]Host:www.mp4player.com
[0119]以此方式,本發(fā)明的技術(shù)可允許由客戶端裝置(例如客戶端裝置40)執(zhí)行的網(wǎng)頁瀏覽器外掛程序(例如網(wǎng)頁應(yīng)用程序52)發(fā)出字節(jié)范圍請求(即使當(dāng)所涉及的瀏覽器不允許在請求標(biāo)頭中發(fā)出正式的HTTP1.0 “Range: ”標(biāo)頭時(shí))。同樣地,網(wǎng)頁瀏覽器外掛程序可使用這些技術(shù)來以此方式來發(fā)出字節(jié)范圍請求(即使網(wǎng)頁瀏覽器不支持字節(jié)范圍請求)(例如)以處置其它網(wǎng)絡(luò)裝置(例如中間網(wǎng)絡(luò)裝置,例如,路由器)不支持或恰當(dāng)?shù)靥幹貌糠质紾ET請求的情形。
[0120]響應(yīng)于由網(wǎng)頁應(yīng)用程序52提交給服務(wù)器裝置60的請求,網(wǎng)絡(luò)接口 54可接收所選表現(xiàn)的已接收區(qū)段的數(shù)據(jù)并將所述數(shù)據(jù)提供到網(wǎng)頁應(yīng)用程序52。網(wǎng)頁應(yīng)用程序52又可將所述區(qū)段提供到解封裝單元50。解封裝單元50可將視頻文件的元素解封裝為組成的PES流,解包化所述PES流以檢索經(jīng)編碼數(shù)據(jù),且取決于所述經(jīng)編碼數(shù)據(jù)是音頻還是視頻流的部分(例如,如由流的PES包標(biāo)頭所指示)而將所述經(jīng)編碼數(shù)據(jù)發(fā)送到音頻解碼器46抑或視頻解碼器48。音頻解碼器46解碼經(jīng)編碼音頻數(shù)據(jù)且將所述經(jīng)解碼音頻數(shù)據(jù)發(fā)送到音頻輸出42,而視頻解碼器48解碼經(jīng)編碼視頻數(shù)據(jù)且將所述經(jīng)解碼視頻數(shù)據(jù)(其可包含流的多個(gè)視圖)發(fā)送到視頻輸出44。
[0121]視頻編碼器28、視頻解碼器48、音頻編碼器26、音頻解碼器46、封裝單元30、網(wǎng)頁應(yīng)用程序52及解封裝單元50各自可適當(dāng)?shù)貙?shí)施為多種合適的處理電路中的任一者,例如:一個(gè)或一個(gè)以上微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、離散邏輯電路、軟件、硬件、固件或其任何組合。視頻編碼器28及視頻解碼器48中的每一者可包含于一個(gè)或一個(gè)以上編碼器或解碼器中,所述一個(gè)或一個(gè)以上編碼器或解碼器中的任一者可整合為組合式視頻編碼器/解碼器(CODEC)的部分。同樣地,音頻編碼器26及音頻解碼器46中的每一者可包含于一個(gè)或一個(gè)以上編碼器或解碼器中,所述一個(gè)或一個(gè)以上編碼器或解碼器中的任一者可整合為組合式CODEC的部分。一包含視頻編碼器28、視頻解碼器48、音頻編碼器26、音頻解碼器46、封裝單元30、網(wǎng)頁應(yīng)用程序52及/或解封裝單元50的設(shè)備可包括集成電路、微處理器及/或無線通信裝置(例如蜂窩式電話)。
[0122]以此方式,客戶端裝置40表示用于檢索多媒體數(shù)據(jù)的信息的裝置的實(shí)例,其可包含一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍;形成統(tǒng)一資源定位符(URL),所述URL在所述URL的文件路徑部分中根據(jù)源裝置的要求來指定文件及字節(jié)范圍;及向源裝置發(fā)出指定所形成的URL的GET請求。
[0123]此外,服務(wù)器裝置60表示用于發(fā)送視頻數(shù)據(jù)的信息的裝置的實(shí)例,其可包含一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:提供多媒體內(nèi)容的清單文件,其中所述清單文件指定統(tǒng)一資源定位符(URL)模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板;接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的URL指定多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及響應(yīng)于所述請求而輸出對應(yīng)于所述請求的字節(jié)范圍的表現(xiàn)的多媒體數(shù)據(jù)。[0124]圖2為框圖,其說明形成圖1的網(wǎng)絡(luò)74的部分的裝置的實(shí)例集合。在此實(shí)例中,網(wǎng)絡(luò)74包含路由裝置80A、80B (路由裝置80)及代理高速緩沖存儲(chǔ)器裝置82。路由裝置80及代理高速緩沖存儲(chǔ)器裝置82希望表示可形成網(wǎng)絡(luò)74的部分的少量裝置。其它網(wǎng)絡(luò)裝置(例如交換器、集線器、網(wǎng)關(guān)、防火墻、橋接器及其它這些裝置)還可包含于網(wǎng)絡(luò)74內(nèi)。此外,可沿服務(wù)器裝置60與客戶端裝置40之間的網(wǎng)絡(luò)路徑而提供額外網(wǎng)絡(luò)裝置。
[0125]大體而言,路由裝置80實(shí)施一個(gè)或一個(gè)以上路由協(xié)議以經(jīng)由網(wǎng)絡(luò)74交換網(wǎng)絡(luò)數(shù)據(jù)。在一些實(shí)例中,路由裝置80可經(jīng)配置以執(zhí)行代理或高速緩存操作,例如歸因于如下文所描述的代理高速緩沖存儲(chǔ)器裝置82的功能性。因此,在一些實(shí)例中,還可將路由裝置80稱作代理裝置。大體而言,路由裝置80執(zhí)行路由協(xié)議以發(fā)現(xiàn)經(jīng)由網(wǎng)絡(luò)74的路由。通過執(zhí)行這些路由協(xié)議,路由裝置80B可發(fā)現(xiàn)從其自身經(jīng)由路由裝置80A到服務(wù)器裝置60的網(wǎng)絡(luò)路由。
[0126]因此,路由裝置80B可從客戶端裝置40接收以服務(wù)器裝置60為目的地的網(wǎng)絡(luò)通信(例如TCP-1P封裝HTTP GET請求)。響應(yīng)于這些通信,路由裝置80B可確定到服務(wù)器裝置60的路由,且進(jìn)一步確定所述路由包含代理高速緩沖存儲(chǔ)器裝置82。舉例來說,代理高速緩沖存儲(chǔ)器裝置82可包括沿所述路由的“下一跳躍”,或一個(gè)或一個(gè)以上額外網(wǎng)絡(luò)裝置可將路由裝置80B通信地耦合到代理高速緩沖存儲(chǔ)器裝置82。代理高速緩沖存儲(chǔ)器裝置82還可將通信導(dǎo)引到路由裝置80A,所述路由裝置80A可將通信轉(zhuǎn)遞到服務(wù)器裝置60。
[0127]代理高速緩沖存儲(chǔ)器裝置82可執(zhí)行代理高速緩沖存儲(chǔ)器功能。HTTP代理高速緩沖存儲(chǔ)器對于因特網(wǎng)的運(yùn)作是重要的。HTTP代理高速緩沖存儲(chǔ)器裝置(例如代理高速緩沖存儲(chǔ)器裝置82)可實(shí)施任何或所有HTTP協(xié)議版本(例如,ΗΤΤΡ0.9、HTTP 1.0及/或HTTP1.1)。此外,代理高速緩沖存儲(chǔ)器裝置(例如代理高速緩沖存儲(chǔ)器裝置82)可基于出現(xiàn)于HTTP GET請求中的唯一“統(tǒng)一資源定位符”(URL)來高速緩存內(nèi)容。此URL可用作用以隨后在高速緩沖存儲(chǔ)器中查找提取請求的鍵值。代理高速緩沖存儲(chǔ)器裝置82可經(jīng)配置以高速緩存多媒體內(nèi)容的表現(xiàn)的區(qū)段或子區(qū)段,其可對應(yīng)于URL(例如根據(jù)本發(fā)明的技術(shù)的經(jīng)修改URL)。
[0128]在一些實(shí)例中,內(nèi)容分配網(wǎng)絡(luò)(CDN)可提供于網(wǎng)絡(luò)74內(nèi)或通信地耦合到網(wǎng)絡(luò)74。提供CDN的公司的實(shí)例包含Akama1、Level3Communications及Limelight。CDN的裝置可執(zhí)行類似于代理高速緩沖存儲(chǔ)器裝置82的功能。CDN可將非常類似于代理高速緩沖存儲(chǔ)器裝置的裝置布置于ISP及國家回程通信提供者的入口網(wǎng)站處。為收取費(fèi)用,CDN可分配內(nèi)容或給代理高速緩沖存儲(chǔ)器裝置“預(yù)先填充”客戶的內(nèi)容。客戶可接著參考所述內(nèi)容且經(jīng)由一般已知為DNS拌和的技術(shù),智能名稱服務(wù)器可將針對內(nèi)容的請求導(dǎo)引到最近的本地CDN高速緩沖存儲(chǔ)器,從而在網(wǎng)頁正載入時(shí)節(jié)約寶貴的往返時(shí)間。替代地,客戶可支付不同費(fèi)用且可僅高速緩存內(nèi)容(其未事先被“預(yù)先填充”)。
[0129]如上文所論述,流網(wǎng)絡(luò)協(xié)議可提供相同多媒體內(nèi)容的多個(gè)表現(xiàn)。因此,雖然自適應(yīng)性流協(xié)議(例如DASH)允許進(jìn)行適配,但益處的成本可能很高。多媒體內(nèi)容(其可表示數(shù)十、數(shù)百、數(shù)千、數(shù)百萬或更大數(shù)目個(gè)字節(jié))可在(例如)八個(gè)不同位速率下編碼,且被分割為2秒?yún)^(qū)段,外加一個(gè)或一個(gè)以上音頻流(例如,立體聲或Dolby5.1),音頻流還可被分割為片段。因此,2小時(shí)視頻可產(chǎn)生3600或更多個(gè)片段乘10個(gè)流,對應(yīng)的數(shù)據(jù)可消耗代理高速緩沖存儲(chǔ)器或CDN中的大量目錄存儲(chǔ)空間。[0130]為了避免大量存儲(chǔ),服務(wù)器裝置60可經(jīng)配置以接收流中的每一者的個(gè)別文件(例如,在上文的實(shí)例中,十個(gè)文件)。根據(jù)本發(fā)明的技術(shù),客戶端裝置40可使用HTTP GET或部分式GET請求或GET請求的URL中指定的字節(jié)范圍請求來檢索區(qū)段或子區(qū)段。在一些實(shí)例中,可由客戶端裝置40使用HTTP協(xié)議堆棧來發(fā)出字節(jié)范圍請求。以此方式,例如,36,000個(gè)片段的典型電影可折疊為十個(gè)文件:8個(gè)音頻及2個(gè)視頻。根據(jù)本發(fā)明的技術(shù),客戶端裝置40可使用HTTP GET請求來檢索文件的特定字節(jié)范圍,所述HTTPGET請求包含代表自身指定字節(jié)范圍的URL的數(shù)據(jù)。
[0131]在一些情況下,當(dāng)代理裝置無法恰當(dāng)?shù)靥幹谩癛ange: ”標(biāo)頭但接收到HTTP1.1 “Range: ”標(biāo)頭時(shí),所述代理裝置可忽略標(biāo)頭且提取并分發(fā)整個(gè)文件,而非文件的所請求部分。對于2小時(shí)MPEG視頻文件而言,此可為災(zāi)難性的,所述視頻文件可達(dá)到幾十億字節(jié)的大小。在此流的中間進(jìn)行的速率切換可能導(dǎo)致代理高速緩沖存儲(chǔ)器開始針對新速率而提取整個(gè)文件,從而導(dǎo)致延遲(直到至少一半數(shù)據(jù)到達(dá)高速緩沖存儲(chǔ)器,此為高速緩沖存儲(chǔ)器可發(fā)送回內(nèi)容響應(yīng)的較早時(shí)間)。此破壞了部分式GET請求的預(yù)期目的,所述預(yù)期目的是順序地檢索文件的小部分以實(shí)現(xiàn)網(wǎng)絡(luò)流。為了克服此問題,本發(fā)明提供用于將字節(jié)范圍請求透明地嵌入U(xiǎn)RL中由此繞過將“Range: ”標(biāo)頭請求轉(zhuǎn)換為完整文件請求的代理高速緩沖存儲(chǔ)器的技術(shù)。此外,本發(fā)明還提供用于傳信以下信息的技術(shù):原始服務(wù)器應(yīng)尋找字節(jié)范圍請求。
[0132]明確地說,本發(fā)明提供用于經(jīng)由不支持字節(jié)范圍請求的中間代理來傳信字節(jié)范圍的技術(shù)。即,客戶端裝置40可提交字節(jié)范圍請求,使得所述字節(jié)范圍請求由中間網(wǎng)絡(luò)裝置(例如路由裝置80及代理高速緩沖存儲(chǔ)器裝置82)恰當(dāng)?shù)靥幹谩H缟衔乃峒?,網(wǎng)頁瀏覽器(例如由客戶端裝置40執(zhí)行的網(wǎng)頁應(yīng)用程序52)可不僅在網(wǎng)頁瀏覽器不根據(jù)HTTP1.1來實(shí)施(或不允許外掛程序利用)字節(jié)范圍請求的情況下根據(jù)字節(jié)范圍模板將范圍請求嵌AURL中,而且在中間裝置不支持或不恰當(dāng)?shù)靥幹貌糠质紾ET請求時(shí)提交范圍請求。自始至終,由于字節(jié)范圍被嵌入U(xiǎn)RL中,所以代理裝置(例如路由裝置80及/或代理高速緩沖存儲(chǔ)器裝置82)可能能夠存儲(chǔ)部分式字節(jié)范圍響應(yīng)(即使當(dāng)代理裝置不理解字節(jié)范圍請求時(shí))。因此,對完全相同的字節(jié)范圍的未來提取應(yīng)導(dǎo)致代理裝置正確地從其高速緩沖存儲(chǔ)器提取所述字節(jié)范圍的數(shù)據(jù)。
[0133]本發(fā)明還提供HTTP的新“擴(kuò)展標(biāo)頭”。大體而言,HTTP允許在HTTP “GET”請求中及在HTTP響應(yīng)中的用戶定義的擴(kuò)展標(biāo)頭。如RFC2616的部分7.1中所定義,“未辨識的標(biāo)頭字段應(yīng)被接受器忽略且必須由透明代理轉(zhuǎn)遞”。這些擴(kuò)展標(biāo)頭經(jīng)剖析為縮減為“GET”請求中的擴(kuò)展標(biāo)頭字段的實(shí)體標(biāo)頭字段。擴(kuò)展標(biāo)頭名稱為任何未辨識的HTTP標(biāo)頭(S卩,任何字母符記)。雖然擴(kuò)展標(biāo)頭可為尚未由HTTP定義的任何字母符記,但通常在SMTP消息標(biāo)頭中,保證決不將字首“X-”用于SMTP的任何未來版本中,如RFC822中所定義。HTTP協(xié)議自身是基于RFC822中所定義的標(biāo)頭機(jī)制,且“X-”慣例也由HTTP代理用以識別非HTTP擴(kuò)展標(biāo)頭,所述非HTTP擴(kuò)展標(biāo)頭通常被轉(zhuǎn)遞(未改變)到原始服務(wù)器,且接著被轉(zhuǎn)遞回到客戶端(未改變)。
[0134]本發(fā)明提供稱為“X-Dash-ByteRange-URL”的新擴(kuò)展標(biāo)頭,其僅出現(xiàn)于HTTP GET請求中。字首“X-”用以避免與HTTP的未來沖突。字首“Dash-”傳信DASH客戶端正產(chǎn)生標(biāo)頭。所屬領(lǐng)域的技術(shù)人員將領(lǐng)會(huì),此標(biāo)頭的確切名稱是不重要的;這些技術(shù)假定客戶端裝置及服務(wù)器裝置是根據(jù)擴(kuò)展標(biāo)頭的通用名稱而配置。
[0135]此標(biāo)頭將字節(jié)范圍被包含于HTTP GET請求中的信息提供到中間節(jié)點(diǎn)及代理裝置(其經(jīng)配置以解譯標(biāo)頭)。此允許原始服務(wù)器或CDN將MPEG文件存儲(chǔ)作為單個(gè)文件,且如果其理解此標(biāo)頭,那么其可使用“X-Dash-ByteRange-URL”標(biāo)頭來確定存在被嵌入于URL中的字節(jié)范圍。
[0136]因此,客戶端裝置40可在嵌入于GET請求的URL內(nèi)的范圍請求中提供擴(kuò)展標(biāo)頭。此外,當(dāng)代理裝置(例如路由裝置80及/或代理高速緩沖存儲(chǔ)器裝置82)經(jīng)配置以辨識標(biāo)頭時(shí),代理裝置可僅檢索所請求的字節(jié)范圍并將其提供到客戶端裝置40。此外,代理高速緩沖存儲(chǔ)器裝置82及/或路由裝置80可經(jīng)配置以根據(jù)針對相同文件的字節(jié)范圍請求的序列來重新匯編文件。另一方面,當(dāng)代理裝置(例如路由裝置80及/或代理高速緩沖存儲(chǔ)器裝置82)未經(jīng)配置成解譯標(biāo)頭時(shí),代理裝置可只是向服務(wù)器裝置60傳遞包含標(biāo)頭的GET請求。
[0137]“X-Dash-ByteRange-URL”標(biāo)頭可具有有效載荷。下文論述有效載荷的兩個(gè)實(shí)例。在實(shí)例中,有效載荷為空的。通過標(biāo)頭的存在來傳信字節(jié)范圍的存在。字節(jié)范圍可總是被附加到HTTP GET URL請求的結(jié)尾。原始服務(wù)器(例如,服務(wù)器裝置60)或代理裝置(例如,路由裝置80或代理高速緩沖存儲(chǔ)器裝置82中的一者)可接著從最后一個(gè)字符起搜索URL且推導(dǎo)出最大長度的字節(jié)范圍請求(例如,使用針對字符“0-9”及及“,”的搜索,如由RFC2616中的字節(jié)范圍請求規(guī)范所定義)。
[0138]在一些實(shí)例中,原始服務(wù)器或代理裝置可接著從URL移除字節(jié)范圍,開啟文件(使用字節(jié)范圍被移除的URL),提取必要的字節(jié),且將所述范圍的字節(jié)分發(fā)回到客戶端裝置40。此設(shè)計(jì)與不實(shí)施“X-Dash-ByteRange-URL”標(biāo)頭的中間代理后向兼容,且這些中間代理裝置將正確地高速緩存字節(jié)范圍且在稍后的請求時(shí)將其分發(fā)到客戶端或客戶端代理。舉例來說,代理高速緩沖存儲(chǔ)器裝置82可經(jīng)配置以辨識及處置X-Dash-Byterange-URL標(biāo)頭,而路由裝置80B可未經(jīng)配置以處置X-Dash-Byterange-URL標(biāo)頭。盡管如此,路由裝置80B仍可將包含此標(biāo)頭的請求傳遞到代理高速緩沖存儲(chǔ)器裝置82,且代理高速緩沖存儲(chǔ)器裝置82可從這些請求移除標(biāo)頭,檢索所請求的字節(jié)范圍,高速緩存所請求的字節(jié)范圍的數(shù)據(jù),及將所請求的字節(jié)范圍經(jīng)由路由裝置80B提供到客戶端裝置40。代理高速緩沖存儲(chǔ)器裝置82可高速緩存相同文件的隨后的字節(jié)范圍,且在一些實(shí)例中可根據(jù)這些字節(jié)范圍請求的序列重新匯編完整文件。以此方式,代理高速緩沖存儲(chǔ)器裝置82可避免在僅將所請求的字節(jié)范圍提供到客戶端裝置40之前載入整個(gè)文件(此可另外在向客戶端裝置40的發(fā)射中導(dǎo)致顯著延遲)。
[0139]同時(shí),原始服務(wù)器(例如,服務(wù)器裝置60)可將整個(gè)視頻流保持在單個(gè)MPEG文件中,且其可更有效率地服務(wù)于請求且更有效率地將MPEG視頻存儲(chǔ)于磁盤上或非易失性(例如,F(xiàn)LASH)存儲(chǔ)器中。舉例來說,根據(jù)本發(fā)明的技術(shù),以下請求可用以檢索視頻的字節(jié)范圍:
[0140]GET http://www.example.com/movies/1984_TR0N.1000.27123992-240211
[0141]host:www.example, com
[0142]X-Dash-ByteRange-URL
[0143]在另一實(shí)例中,X-Dash-ByteRange-URL標(biāo)頭的有效載荷含有來自URL自身的實(shí)際字節(jié)范圍請求規(guī)范。因此,其如用戶定義的“Range:”標(biāo)頭般起作用,但行為是不同的。原始服務(wù)器(例如服務(wù)器裝置60)可經(jīng)配置以解譯具有有效載荷的“X-Dash-ByteRange-URL”標(biāo)頭,且將此標(biāo)頭的有效載荷與請求URL匹配。通過計(jì)算型樣匹配,原始服務(wù)器可從URL移除字節(jié)范圍說明符且形成新URL,所述新URL用以從其磁盤或非易失性存儲(chǔ)器提取完整MPEG文件。原始服務(wù)器可接著使用字節(jié)范圍規(guī)范(再次,使用與由RFC2616指定的語法相同的語法)以從MPEG文件提取必要的字節(jié)。舉例來說,根據(jù)本發(fā)明的技術(shù),以下請求可用以檢索視頻的字節(jié)范圍。
[0144]GET http://www.example, com/movies/123992-240211/1984—TRON.1000.27
[0145]host:www.example, com
[0146]X-Dash-ByteRange-URL: 123992-240211
[0147]服務(wù)器、代理或⑶N裝置(例如,服務(wù)器裝置60、路由裝置80或代理高速緩沖存儲(chǔ)器裝置82中的一者)可接著(例如)如下重新撰寫此請求且分發(fā)內(nèi)容,就如同已作為常規(guī)部分式GET請求產(chǎn)生所述請求一般:
[0148]GET http://www.example, com/movies// 1984_TR0N.1000.27
[0149]host:www.example, com
[0150]Range:123992-240211
[0151]應(yīng)注意,在NFS及UNIX文件系統(tǒng)上,將兩個(gè)或兩個(gè)以上的“/”字符的存在視為與單個(gè)“/”字符相同??纱嬖趯Ρ炯夹g(shù)的許多益處。經(jīng)配置以實(shí)施HTTP的此增強(qiáng)的⑶N或代理裝置可服務(wù)向單個(gè)MPEG文件的字節(jié)范圍請求,從而節(jié)約磁盤上的存儲(chǔ)空間。智能型代理高速緩沖存儲(chǔ)器或CDN可甚至根據(jù)一系列這些范圍請求建置MPEG文件,從而將所有這些范圍請求組合為單個(gè)經(jīng)高速緩存文件。舉例來說,代理高速緩沖存儲(chǔ)器裝置82可經(jīng)配置以根據(jù)多個(gè)順序字節(jié)范圍請求(例如,來自客戶端裝置40或其它客戶端裝置)建構(gòu)完整MPEG文件或其它視頻文件。
[0152]存在其它可能的實(shí)施,例如其中型樣被指定于“X-Dash-ByteRange-URL”標(biāo)頭中或另一擴(kuò)展標(biāo)頭中,以傳信在URL中字節(jié)范圍的存在,所述字節(jié)范圍可由原始服務(wù)器移除。還預(yù)期將所有這些其它實(shí)施用于實(shí)施本發(fā)明的技術(shù)。
[0153]以此方式,代理高速緩沖存儲(chǔ)器裝置82表示用于發(fā)送視頻數(shù)據(jù)的信息的裝置的實(shí)例,其可包含一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:提供多媒體內(nèi)容的清單文件,其中所述清單文件指定統(tǒng)一資源定位符(URL)模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板;接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的URL指定多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及響應(yīng)于所述請求而輸出表現(xiàn)的對應(yīng)于所述請求的字節(jié)范圍的多媒體數(shù)據(jù)。
[0154]圖3為框圖,其說明包含各種內(nèi)容分配網(wǎng)絡(luò)92A-92N(CDN92)的實(shí)例系統(tǒng)90。在此實(shí)例中,內(nèi)容預(yù)備裝置20預(yù)備呈多種表現(xiàn)的多媒體內(nèi)容,且將一個(gè)或一個(gè)以上表現(xiàn)提供到⑶N92中的每一者。在一些實(shí)例中,⑶N92中的每一者可接收相同表現(xiàn),而在其它實(shí)例中,⑶N92可接收關(guān)于其它⑶N92的表現(xiàn)的不同集合。類似于服務(wù)器裝置60 (如關(guān)于圖1及圖2所論述)的服務(wù)器裝置可提供于CDN92中的每一者中。替代地,代理或高速緩沖存儲(chǔ)器裝置可提供于⑶N92中的每一者中。此外,在一些實(shí)例中,⑶N92中的一些包含服務(wù)器裝置,而⑶N92中的其它⑶N包含代理裝置。術(shù)語“⑶N”大體上在本發(fā)明中用以指代內(nèi)容遞送網(wǎng)絡(luò)、內(nèi)容分配網(wǎng)絡(luò)、內(nèi)容服務(wù)器群或其它類似設(shè)施。根據(jù)本發(fā)明的技術(shù),CDN92中的每一者可包含特定用于相應(yīng)CDN的指定字節(jié)范圍的URL的模板。
[0155]在一些實(shí)例中,CDN92中的某些者僅在當(dāng)日、當(dāng)周、當(dāng)月、當(dāng)年或其它時(shí)間周期的某些時(shí)間期間為在作用中的。舉例來說,CDN92A可在早晨及下午若干小時(shí)期間為作用中的,而CDN92B可在晚間及夜間若干小時(shí)期間為作用中的。
[0156]本發(fā)明提供用于選擇⑶N或內(nèi)容服務(wù)器群(例如,通過客戶端裝置40)的技術(shù),如關(guān)于圖3所描述。假定DASH MPD文件包含指示一系列BaseURL的數(shù)據(jù),所述BaseURL用以產(chǎn)生針對DASH內(nèi)容的請求。此外,假定每一 BaseURL指代唯一⑶N(例如,⑶N92中的唯一者)。因此,DASH播放器(由客戶端裝置40執(zhí)行)可經(jīng)配置以通過選擇對應(yīng)的BaseURL來選擇適當(dāng)?shù)腃DN。在下表I中,展示了可用以作出選擇的一系列五個(gè)選擇準(zhǔn)則。存在可使用的其它準(zhǔn)則(另外或在替代例中),且這些五個(gè)準(zhǔn)則代表了廣泛得多的可能選擇準(zhǔn)則的集合。因此,可關(guān)于表I中所示的準(zhǔn)則而提供額外或替代性選擇準(zhǔn)則。
[0157]表1-實(shí)例⑶N選擇準(zhǔn)則
[0158]
【權(quán)利要求】
1.一種檢索多媒體數(shù)據(jù)的方法,所述方法包括: 確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍; 形成統(tǒng)一資源定位符URL,所述URL根據(jù)模板而在所述URL的文件路徑部分中根據(jù)所述源裝置的要求來指定所述文件及所述字節(jié)范圍;及 向所述源裝置發(fā)出指定所述所形成的URL的GET請求。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括接收所述多媒體內(nèi)容的清單文件,其中所述清單文件指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,其中確定所述字節(jié)范圍包括從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍。
3.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括接收包括區(qū)段索引數(shù)據(jù)結(jié)構(gòu)的所述表現(xiàn)的數(shù)據(jù),其中所述區(qū)段索引數(shù)據(jù)結(jié)構(gòu)指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,且其中確定所述字節(jié)范圍包括從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍。
4.根據(jù)權(quán)利要求1所述的方法,其中所述GET請求不包含“Range:”標(biāo)頭。
5.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括形成所述GET請求以在所述GET請求的所述URL中包含指示所述字節(jié)范圍的位置的擴(kuò)展標(biāo)頭。
6.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括: 接收用于選擇多個(gè)內(nèi)容分配網(wǎng)絡(luò)CDN中的一者的一個(gè)或一個(gè)以上選擇準(zhǔn)則;及 基于所述選擇準(zhǔn)則而從所述多個(gè)CDN中選擇CDN, 其中發(fā)出所述GET請求 包括向所述所選的CDN發(fā)出所述GET請求,及其中根據(jù)所述模板來形成所述URL包括根據(jù)特定用于所述所選的CDN的字節(jié)范圍模板來形成所述URL。
7.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括: 將POST消息提交給重定向URL以確定多個(gè)內(nèi)容分配網(wǎng)絡(luò)CDN中的將從其檢索所述數(shù)據(jù)的內(nèi)容分配網(wǎng)絡(luò);及 響應(yīng)于所述POST消息而接收所述多個(gè)CDN中的CDN的基礎(chǔ)URL的指示, 其中形成所述URL包括形成所述URL以指定所述多個(gè)CDN中的所述CDN的所述接收的基礎(chǔ)URL, 其中根據(jù)所述模板來形成所述URL包括根據(jù)特定用于所述所選的CDN的字節(jié)范圍模板來形成所述URL,及 其中發(fā)出所述GET請求包括向所述多個(gè)CDN中的所述CDN發(fā)出所述GET請求。
8.根據(jù)權(quán)利要求7所述的方法,其中提交所述POST消息包括將一個(gè)或一個(gè)以上POST消息提交給所述重定向URL,所述一個(gè)或一個(gè)以上POST消息指示以下各者中的一者或一者以上:BaseURL、選擇準(zhǔn)則及本地信息,所述本地信息包含以下各者中的一者或一者以上:地理位置信息、跳躍計(jì)數(shù)及本地時(shí)刻。
9.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括從所述源裝置接收指示所述模板的信肩、O
10.根據(jù)權(quán)利要求1所述的方法,其中確定包括通過客戶端裝置確定,其中形成包括通過所述客戶端裝置形成,且其中發(fā)出包括通過所述客戶端裝置發(fā)出。
11.一種用于接收多媒體數(shù)據(jù)的信息的裝置,所述裝置包括一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍;形成統(tǒng)一資源定位符URL,所述URL根據(jù)模板而在所述URL的文件路徑部分中根據(jù)所述源裝置的要求來指定所述文件及所述字節(jié)范圍;及向所述源裝置發(fā)出指定所述所形成的URL的GET請求。
12.根據(jù)權(quán)利要求11所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以接收所述多媒體內(nèi)容的清單文件,其中所述清單文件指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,且其中為了確定所述字節(jié)范圍,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍。
13.根據(jù)權(quán)利要求11所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以接收包括區(qū)段索引數(shù)據(jù)結(jié)構(gòu)的所述表現(xiàn)的數(shù)據(jù),其中所述區(qū)段索引數(shù)據(jù)結(jié)構(gòu)指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,且其中為了確定所述字節(jié)范圍,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍。
14.根據(jù)權(quán)利要 求11所述的裝置,其中所述GET請求不包含“Range:”標(biāo)頭。
15.根據(jù)權(quán)利要求11所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以形成所述GET請求以在所述GET請求的所述URL中包含指示所述字節(jié)范圍的位置的擴(kuò)展標(biāo)頭。
16.根據(jù)權(quán)利要求11所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以:接收用于選擇多個(gè)內(nèi)容分配網(wǎng)絡(luò)CDN中的一者的一個(gè)或一個(gè)以上選擇準(zhǔn)則;基于所述選擇準(zhǔn)則而從所述多個(gè)CDN中選擇CDN ;及向所述所選的CDN發(fā)出所述GET請求,其中所述模板包括特定用于所述所選的CDN的字節(jié)范圍模板。
17.根據(jù)權(quán)利要求11所述的裝置,其中所述裝置包括以下各者中的至少一者: 集成電路; 微處理器;及 無線通信裝置,其包含所述一個(gè)或一個(gè)以上處理器。
18.一種用于檢索多媒體數(shù)據(jù)的裝置,所述裝置包括: 用于確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍的裝置; 用于形成統(tǒng)一資源定位符URL的裝置,所述URL根據(jù)模板而在所述URL的文件路徑部分中根據(jù)所述源裝置的要求來指定所述文件及所述字節(jié)范圍;及 用于向所述源裝置發(fā)出指定所述所形成的URL的GET請求的裝置。
19.根據(jù)權(quán)利要求18所述的裝置,其進(jìn)一步包括用于接收所述多媒體內(nèi)容的清單文件的裝置,其中所述清單文件指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,其中所述用于確定所述字節(jié)范圍的裝置包括用于從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍的>j-U ρ?α裝直。
20.根據(jù)權(quán)利要求18所述的裝置,其進(jìn)一步包括用于接收包括區(qū)段索引數(shù)據(jù)結(jié)構(gòu)的所述表現(xiàn)的數(shù)據(jù)的裝置,其中所述區(qū)段索引數(shù)據(jù)結(jié)構(gòu)指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,且其中所述用于確定所述字節(jié)范圍的裝置包括用于從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍的裝置。
21.根據(jù)權(quán)利要求18所述的裝置,其中所述GET請求不包含“Range:”標(biāo)頭。
22.根據(jù)權(quán)利要求18所述的裝置,其進(jìn)一步包括用于形成所述GET請求以在所述GET請求的所述URL中包含指示所述字節(jié)范圍的位置的擴(kuò)展標(biāo)頭的裝置。
23.根據(jù)權(quán)利要求18所述的裝置,其進(jìn)一步包括: 用于接收用于選擇多個(gè)內(nèi)容分配網(wǎng)絡(luò)CDN中的一者的一個(gè)或一個(gè)以上選擇準(zhǔn)則的裝置;及 用于基于所述選擇準(zhǔn)則而從所述多個(gè)CDN中選擇CDN的裝置, 其中所述用于發(fā)出所述GET請求的裝置包括用于向所述所選的CDN發(fā)出所述GET請求的裝置,及 其中所述用于根據(jù)所述模板來形成所述URL的裝置包括用于根據(jù)特定用于所述所選的CDN的字節(jié)范圍模板來形成所述URL的裝置。
24.一種計(jì)算機(jī)程序產(chǎn)品,其包括其上存儲(chǔ)有指令的計(jì)算機(jī)可讀媒體,所述指令在被執(zhí)行時(shí)致使用于檢索多媒體數(shù)據(jù)的裝置的一個(gè)或一個(gè)以上處理器執(zhí)行以下步驟: 確定待從源裝置請求的多媒體內(nèi)容的表現(xiàn)的文件的字節(jié)范圍; 形成統(tǒng)一資源定位符URL,所述URL根據(jù)模板而在所述URL的文件路徑部分中根據(jù)所述源裝置的要求來指定所述文件及所述字節(jié)范圍;及 向所述源裝置發(fā)出指定所述所形成的URL的GET請求。
25.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步包括致使所述處理器接收所述多媒體內(nèi)容的清單文件的指令,其中所述清單文件指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,其中所述致使所述處理器確定所述字節(jié)范圍的指令包括致使所述處理器從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍的指令。
26.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步包括致使所述處理器接收包括區(qū)段索引數(shù)據(jù)結(jié)構(gòu)的所述表現(xiàn)的數(shù)據(jù)的指令,其中所述區(qū)段索引數(shù)據(jù)結(jié)構(gòu)指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍,且其中所述致使所述處理器確定所述字節(jié)范圍的指令包括致使所述處理器從所述多個(gè)字節(jié)范圍中選擇所述表現(xiàn)的所述字節(jié)范圍的指令。
27.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其中所述GET請求不包含“Range:”標(biāo)頭。
28.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步包括致使所述處理器形成所述GET請求以在所述GET請求的所述URL中包含指示所述字節(jié)范圍的位置的擴(kuò)展標(biāo)頭的指令。
29.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步包括致使所述處理器執(zhí)行以下步驟的指令: 接收用于選擇多個(gè)內(nèi)容分配網(wǎng)絡(luò)CDN中的一者的一個(gè)或一個(gè)以上選擇準(zhǔn)則;及 基于所述選擇準(zhǔn)則而從所述多個(gè)CDN中選擇CDN, 其中所述致使所述處理器發(fā)出所述GET請求的指令包括致使所述處理器向所述所選的CDN發(fā)出所述GET請求的指令,及 其中所述致使所述處理器根據(jù)所述模板來形成所述URL的指令包括致使所述處理器根據(jù)特定用于所述所選的CDN的字節(jié)范圍模板來形成所述URL的指令。
30.一種發(fā)送多媒體數(shù)據(jù)的信息的方法,所述方法包括: 提供多媒體內(nèi)容的清單文件,其中所述清單文件指定統(tǒng)一資源定位符URL模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板; 接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的所述URL指定所述多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及 響應(yīng)于所述請求而輸出對應(yīng)于所述請求的所述字節(jié)范圍的所述表現(xiàn)的多媒體數(shù)據(jù)。
31.根據(jù)權(quán)利要求30所述的方法,其中所述清單文件進(jìn)一步包括指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的信息,且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。
32.根據(jù)權(quán)利要求30所述的方法,其進(jìn)一步包括提供指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的區(qū)段索引數(shù)據(jù)結(jié)構(gòu),且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。
33.根據(jù)權(quán)利要求30所述的方法,其進(jìn)一步包括接收在所述請求內(nèi)的擴(kuò)展標(biāo)頭,其中所述擴(kuò)展標(biāo)頭在所述GET請求的所述URL中指示所述字節(jié)范圍的位置。
34.根據(jù)權(quán)利要求30所述的方法,其中提供包括通過服務(wù)器裝置提供,其中接收包括通過所述服務(wù)器裝置接收,且其中輸出包括通過所述服務(wù)器裝置輸出。
35.根據(jù)權(quán)利要求30所述的方法,其中提供包括通過代理高速緩沖存儲(chǔ)器裝置提供,其中接收包括通過所述代理高速緩沖存儲(chǔ)器裝置接收,且其中輸出包括通過所述代理高速緩沖存儲(chǔ)器裝置輸出。
36.根據(jù)權(quán)利要求30所述的方法,其中所述請求包括針對所述多媒體內(nèi)容的所述表現(xiàn)的所述字節(jié)范圍的第一請求,所述方法進(jìn)一步包括: 向服務(wù)器裝置請求所述表現(xiàn)的所述字節(jié)范圍; 高速緩存從所述服務(wù)器裝置接 收的所述字節(jié)范圍的數(shù)據(jù); 接收針對所述表現(xiàn)的所述字節(jié)范圍的第二、不同請求 '及 響應(yīng)于所述第二請求而輸出所述表現(xiàn)的所述字節(jié)范圍的所述經(jīng)高速緩存的數(shù)據(jù)。
37.根據(jù)權(quán)利要求30所述的方法,其中所述請求包括第一請求且其中所述字節(jié)范圍包括第一字節(jié)范圍,所述方法進(jìn)一步包括: 向服務(wù)器裝置請求所述表現(xiàn)的所述第一字節(jié)范圍; 高速緩存從所述服務(wù)器裝置接收的所述第一字節(jié)范圍的數(shù)據(jù); 接收第二請求,所述第二請求包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的第二URL,其中所述第二請求的所述第二 URL指定所述多媒體內(nèi)容的所述表現(xiàn)的第二字節(jié)范圍,其中所述第二字節(jié)范圍跟在所述第一字節(jié)范圍后面; 向所述服務(wù)器裝置請求所述表現(xiàn)的所述第二字節(jié)范圍;及 使用從所述服務(wù)器裝置接收的所述第一字節(jié)范圍的所述經(jīng)高速緩存的數(shù)據(jù)及所述第二字節(jié)范圍的數(shù)據(jù)來匯編所述表現(xiàn)的本地復(fù)本。
38.根據(jù)權(quán)利要求30所述的方法,其中所述清單文件指示所述字節(jié)范圍模板全局地適用于所有內(nèi)容分配網(wǎng)絡(luò)。
39.根據(jù)權(quán)利要求30所述的方法,其中所述字節(jié)范圍模板包括多個(gè)字節(jié)范圍模板中的一者,且其中所述清單文件指示所述字節(jié)范圍模板中的每一者適用于多個(gè)內(nèi)容分配網(wǎng)絡(luò)中的相應(yīng)者。
40.一種用于發(fā)送多媒體數(shù)據(jù)的信息的裝置,所述裝置包括一個(gè)或一個(gè)以上處理器,所述一個(gè)或一個(gè)以上處理器經(jīng)配置以:提供多媒體內(nèi)容的清單文件,其中所述清單文件指定統(tǒng)一資源定位符URL模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板;接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的所述URL指定所述多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及響應(yīng)于所述請求而輸出對應(yīng)于所述請求的所述字節(jié)范圍的所述表現(xiàn)的多媒體數(shù)據(jù)。
41.根據(jù)權(quán)利要求40所述的裝置,其中所述清單文件進(jìn)一步包括指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的信息,且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。
42.根據(jù)權(quán)利要求40所述的裝置,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以提供指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的區(qū)段索引數(shù)據(jù)結(jié)構(gòu),且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。
43.根據(jù)權(quán)利要求40所述的裝置,其中所述一個(gè)或一個(gè)以上處理器經(jīng)配置以接收在所述請求內(nèi)的擴(kuò)展標(biāo)頭,其中所述擴(kuò)展標(biāo)頭在GET請求的所述URL中指示所述字節(jié)范圍的位置。
44.根據(jù)權(quán)利要求40所述的裝置,其中所述裝置包括服務(wù)器裝置及代理高速緩沖存儲(chǔ)器裝置中的至少一者。
45.根據(jù)權(quán)利要 求40所述的裝置,其中所述請求包括針對所述多媒體內(nèi)容的所述表現(xiàn)的所述字節(jié)范圍的第一請求,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以:向服務(wù)器裝置請求所述表現(xiàn)的所述字節(jié)范圍;高速緩存從所述服務(wù)器裝置接收的所述字節(jié)范圍的數(shù)據(jù);接收針對所述表現(xiàn)的所述字節(jié)范圍的第二、不同請求;及響應(yīng)于所述第二請求而輸出所述表現(xiàn)的所述字節(jié)范圍的所述經(jīng)高速緩存的數(shù)據(jù)。
46.根據(jù)權(quán)利要求40所述的裝置,其中所述裝置包括以下各者中的至少一者: 集成電路; 微處理器 '及 無線通信裝置,其包含所述一個(gè)或一個(gè)以上處理器。
47.一種用于發(fā)送多媒體數(shù)據(jù)的信息的裝置,所述裝置包括: 用于提供多媒體內(nèi)容的清單文件的裝置,其中所述清單文件指定統(tǒng)一資源定位符URL模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板; 用于接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求的裝置,其中所述請求的所述URL指定所述多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍 '及 用于響應(yīng)于所述請求而輸出對應(yīng)于所述請求的所述字節(jié)范圍的所述表現(xiàn)的多媒體數(shù)據(jù)的裝置。
48.根據(jù)權(quán)利要求47所述的裝置,其中所述清單文件進(jìn)一步包括指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的信息,且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。
49.根據(jù)權(quán)利要求47所述的裝置,其進(jìn)一步包括用于提供指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的區(qū)段索引數(shù)據(jù)結(jié)構(gòu)的裝置,且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。
50.根據(jù)權(quán)利要求47所述的裝置,其進(jìn)一步包括用于接收在所述請求內(nèi)的擴(kuò)展標(biāo)頭的裝置,其中所述擴(kuò)展標(biāo)頭在GET請求的所述URL中指示所述字節(jié)范圍的位置。
51.根據(jù)權(quán)利要求47所述的裝置,其中所述請求包括針對所述多媒體內(nèi)容的所述表現(xiàn)的所述字節(jié)范圍的第一請求,所述裝置進(jìn)一步包括: 用于向服務(wù)器裝置請求所述表現(xiàn)的所述字節(jié)范圍的裝置; 用于高速緩存從所述服務(wù)器裝置接收的所述字節(jié)范圍的數(shù)據(jù)的裝置; 用于接收針對所述表現(xiàn)的所述字節(jié)范圍的第二、不同請求的裝置;及用于響應(yīng)于所述第二請求而輸出所述表現(xiàn)的所述字節(jié)范圍的所述經(jīng)高速緩存的數(shù)據(jù)的裝置。
52.—種計(jì)算機(jī)程序產(chǎn)品,其包括其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令在被執(zhí)行時(shí)致使用于提供多媒體數(shù)據(jù)的裝置的一個(gè)或一個(gè)以上處理器執(zhí)行以下步驟: 提供多媒體內(nèi)容的清單文件,其中所述清單文件指定統(tǒng)一資源定位符URL模板及字節(jié)范圍模板,其中所述URL模板及所述字節(jié)范圍模板提供用于形成URL以將字節(jié)范圍請求包含于所述URL內(nèi)的模板; 接收包含根據(jù)所述URL模板及所述字節(jié)范圍模板建構(gòu)的URL的請求,其中所述請求的所述URL指定所述多媒體內(nèi)容的表現(xiàn)的字節(jié)范圍;及 響應(yīng)于所述請求而輸出對應(yīng)于所述請求的所述字節(jié)范圍的所述表現(xiàn)的多媒體數(shù)據(jù)。
53.根據(jù)權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其中所述清單文件進(jìn)一步包括指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的信息,且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。`
54.根據(jù)權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步包括致使所述處理器提供指定可針對所述表現(xiàn)而請求的多個(gè)字節(jié)范圍的區(qū)段索引數(shù)據(jù)結(jié)構(gòu)的指令,且其中由所述請求的所述URL指定的所述字節(jié)范圍包括所述多個(gè)字節(jié)范圍中的一者。
55.根據(jù)權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)一步包括致使所述處理器接收在所述請求內(nèi)的擴(kuò)展標(biāo)頭的指令,其中所述擴(kuò)展標(biāo)頭在GET請求的所述URL中指示所述字節(jié)范圍的位置。
56.根據(jù)權(quán)利要求52所述的計(jì)算機(jī)程序產(chǎn)品,其中所述請求包括針對所述多媒體內(nèi)容的所述表現(xiàn)的所述字節(jié)范圍的第一請求,所述計(jì)算機(jī)程序產(chǎn)品進(jìn)一步包括致使所述處理器執(zhí)行以下步驟的指令: 向服務(wù)器裝置請求所述表現(xiàn)的所述字節(jié)范圍; 高速緩存從所述服務(wù)器裝置接收的所述字節(jié)范圍的數(shù)據(jù); 接收針對所述表現(xiàn)的所述字節(jié)范圍的第二、不同請求 '及 響應(yīng)于所述第二請求而輸出所述表現(xiàn)的所述字節(jié)范圍的所述經(jīng)高速緩存的數(shù)據(jù)。
【文檔編號】H04L29/06GK103460667SQ201280016213
【公開日】2013年12月18日 申請日期:2012年4月5日 優(yōu)先權(quán)日:2011年4月7日
【發(fā)明者】托馬斯·斯托克哈默, 唐納德·W·吉利斯, 邁克爾·G·盧比, 費(fèi)絲·烏盧皮納爾 申請人:高通股份有限公司