預(yù)測(cè)性自適應(yīng)媒體流式傳輸?shù)闹谱鞣椒?br>
【專利摘要】本發(fā)明提供了一種用于控制媒體內(nèi)容從服務(wù)器到客戶端的流式傳輸?shù)姆椒ê蛯?duì)應(yīng)的設(shè)備。計(jì)算裝置針對(duì)所述媒體內(nèi)容的多個(gè)可變比特率版本中的每一者來預(yù)測(cè)所述媒體內(nèi)容的即將到來的部分的比特率,且使用所述預(yù)測(cè)比特率以及網(wǎng)絡(luò)帶寬的測(cè)量值作為依據(jù)來選擇所述可變比特率版本中的一個(gè)版本流式傳輸給客戶端。通過在所述媒體內(nèi)容的整個(gè)過程內(nèi)以滑窗為基礎(chǔ)來重復(fù)此預(yù)測(cè)和選擇功能,對(duì)可變比特率版本的選擇可以動(dòng)態(tài)地改變,以幫助適應(yīng)整個(gè)媒體內(nèi)容中比特率的變化以及網(wǎng)絡(luò)帶寬的變化。
【專利說明】預(yù)測(cè)性自適應(yīng)媒體流式傳輸
【背景技術(shù)】
[0001]除非本文另有指示,否則本部分中描述的內(nèi)容不是權(quán)利要求書的現(xiàn)有技術(shù)且不因?yàn)榘诒静糠种芯捅怀姓J(rèn)是現(xiàn)有技術(shù)。
[0002]隨著網(wǎng)絡(luò)和計(jì)算技術(shù)的進(jìn)步,裝置接收并播放實(shí)時(shí)地從網(wǎng)絡(luò)服務(wù)器流式傳輸?shù)拿襟w現(xiàn)在是很平常的事情。實(shí)際上,例如,裝置可經(jīng)編程或以其它方式進(jìn)行布置而具有提供用戶接口的媒體播放器,在所述接口處所述裝置可接收對(duì)特定媒體進(jìn)行流式播放的用戶請(qǐng)求。媒體播放器可接著使裝置與服務(wù)器根據(jù)經(jīng)協(xié)商的協(xié)議(諸如超文本傳輸協(xié)議(HTTP)、實(shí)時(shí)流協(xié)議(RTSP)、實(shí)時(shí)傳輸協(xié)議(RTP)、實(shí)時(shí)控制協(xié)議(RTCP)和實(shí)時(shí)消息傳送協(xié)議(RTMP))進(jìn)行交互,以請(qǐng)求服務(wù)器流式傳輸(stream)特定媒體。在裝置接收作為響應(yīng)而從服務(wù)器流式傳輸?shù)拿襟w時(shí),裝置可接著在用戶接口處播放所述媒體以便用戶享受。
【發(fā)明內(nèi)容】
[0003]本文中公開了與控制媒體從服務(wù)器的流式傳輸有關(guān)的方法和裝置。
[0004]在一個(gè)方面,例如,公開了一種用于控制媒體內(nèi)容從服務(wù)器到客戶端的流式傳輸?shù)姆椒ā?shí)際上,所述服務(wù)器將能夠訪問所述媒體內(nèi)容的多個(gè)可變比特率(VBR)版本。所述方法可接著涉及在所述媒體內(nèi)容正從所述服務(wù)器流式傳輸給所述客戶端的同時(shí)針對(duì)所述媒體內(nèi)容的多個(gè)順序出現(xiàn)的部分中的每一者執(zhí)行以下功能:(i)在所述客戶端接收所述媒體內(nèi)容的所述部分之前識(shí)別所述媒體內(nèi)容的所述VBR版本中的一個(gè)或多個(gè)版本,其中所述識(shí)別是至少部分基于確定在所述一個(gè)或多個(gè)VBR版本的每一者中所述媒體內(nèi)容部分具有低于帶寬閾值的比特率;(ii)從所述媒體內(nèi)容的所述經(jīng)確定的一個(gè)或多個(gè)VBR版本中選擇所述媒體內(nèi)容的最高比特率的VBR版本;以及(iii)致使所述媒體內(nèi)容的所述所選的VBR版本從所述服務(wù)器流式傳輸給所述客戶端。
[0005]在另一方面,公開了一種上面存儲(chǔ)有指令的非暫時(shí)性計(jì)算機(jī)可讀媒體,所述指令可執(zhí)行以致使裝置在媒體內(nèi)容從服務(wù)器流式傳輸給所述裝置期間針對(duì)所述媒體內(nèi)容的多個(gè)順序出現(xiàn)的部分中的每一者執(zhí)行以下功能:(i)確定用于從所述服務(wù)器到所述裝置的通信的網(wǎng)絡(luò)帶寬;(ii)在所述裝置接收所述媒體內(nèi)容的所述部分之前識(shí)別所述媒體內(nèi)容的多個(gè)VBR版本中的一個(gè)或多個(gè)版本,其中所述識(shí)別是至少部分基于在所述一個(gè)或多個(gè)VBR版本的每一者中所述媒體內(nèi)容的所述部分具有小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬的比特率;(iii)從所述媒體內(nèi)容的所述經(jīng)識(shí)別的一個(gè)或多個(gè)VBR版本中選擇所述媒體內(nèi)容的最高比特率的VBR版本;以及(iv)向所述服務(wù)器傳輸控制信號(hào),請(qǐng)求所述服務(wù)器將所述媒體內(nèi)容的所述所選的VBR版本流式傳輸給所述裝置。
[0006]另外,在又一方面,公開了一種計(jì)算裝置,所述計(jì)算裝置包括網(wǎng)絡(luò)通信接口、用戶接口、處理器、數(shù)據(jù)存儲(chǔ)裝置以及程序指令,所述程序指令存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)裝置中且是所述處理器可執(zhí)行的以執(zhí)行各種功能。所述功能可包括(a)通過所述網(wǎng)絡(luò)通信接口接收從服務(wù)器流式傳輸給所述計(jì)算裝置的媒體內(nèi)容;(b)在所述用戶接口處播放正接收到的所述媒體內(nèi)容;以及(C)在接收從所述服務(wù)器流式傳輸給所述計(jì)算裝置的所述媒體內(nèi)容的同時(shí),周期性地(i)確定用于從所述服務(wù)器到所述計(jì)算裝置的通信的網(wǎng)絡(luò)帶寬的測(cè)量值、
(ii)評(píng)估所述媒體內(nèi)容的多個(gè)VBR版本且從所述多個(gè)VBR版本中選擇在所述媒體內(nèi)容的下一個(gè)滑窗內(nèi)的比特率將小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬的最高比特率的VBR版本以及
(iii)通過所述網(wǎng)絡(luò)通信接口向所述服務(wù)器傳輸請(qǐng)求以使所述服務(wù)器將所述所選的VBR版本流式傳輸給所述計(jì)算裝置。
[0007]本領(lǐng)域的普通技術(shù)人員通過閱讀以下【具體實(shí)施方式】、在適當(dāng)時(shí)參看附圖將能更明顯看出這些以及其它方面、優(yōu)點(diǎn)和替代方案。
[0008]另外,應(yīng)理解,在此
【發(fā)明內(nèi)容】
部分中以及本文件中別處提供的描述僅意欲用作實(shí)例。因此,可改為使用其它布置和其它元件(例如,機(jī)械、接口、功能、功能次序等),且可將一些元件完全省去。另外,本文中描述的許多元件是可實(shí)施為離散或分布式組件或者與其它組件相結(jié)合且以各種合適組合和在各種合適位置中實(shí)施的功能實(shí)體。
【專利附圖】
【附圖說明】
[0009]圖1是媒體內(nèi)容的示例恒定比特率(CBR)版本的圖。
[0010]圖2是媒體內(nèi)容的示例VBR版本的圖,描繪了每版本的平均目標(biāo)比特率。
[0011]圖3是圖2的示例VBR版本的圖,描繪了每版本的最大目標(biāo)比特率。
[0012]圖4是圖2的示例VBR版本的圖,描繪了每一版本的預(yù)測(cè)性比特率。
[0013]圖5是可在其中實(shí)施本發(fā)明方法的網(wǎng)絡(luò)布置的簡化框圖。
[0014]圖6是在所述方法內(nèi)可操作的客戶端裝置的簡化框圖。
[0015]圖7是在所述方法內(nèi)可操作的服務(wù)器的簡化框圖。
[0016]圖8是描繪了可根據(jù)所述方法來執(zhí)行的功能的流程圖。
[0017]圖9是描繪了可根據(jù)所述方法來執(zhí)行的功能的另一流程圖。
[0018]圖10是對(duì)可根據(jù)所述方法來執(zhí)行的功能的進(jìn)一步描繪。
【具體實(shí)施方式】
[0019]在以下詳細(xì)描述中,參看附圖,附圖構(gòu)成了本文一部分。詳細(xì)描述、附圖和權(quán)利要求書中描述的說明性實(shí)施例不打算為限制性的??衫闷渌鼘?shí)施例,且可作出其它改變,而不會(huì)脫離本文中提出的主題的精神或范圍。將容易理解到,本公開的方面(如大體上在本文中描述且在圖式中圖示)可被布置、替換、組合、分離且設(shè)計(jì)成各種不同配置,其皆明確地涵蓋于本文中。
[0020]一般來說,對(duì)諸如音頻或視頻等實(shí)時(shí)媒體進(jìn)行編碼可能會(huì)涉及到將媒體的原始數(shù)字化版本轉(zhuǎn)換成適合于傳輸或存儲(chǔ)的壓縮形式。編碼器-解碼器(編解碼器)可因此操作以接收表示所述媒體的原始比特流且應(yīng)用將所述比特流的每一順序時(shí)間間隔進(jìn)行壓縮的算法,以便用比原始比特流中少的比特來表示每一時(shí)間間隔。此壓縮過程可通過允許經(jīng)由支持有限傳輸速度或“帶寬”的網(wǎng)絡(luò)足夠快地傳輸和接收媒體而幫助促進(jìn)實(shí)時(shí)媒體流式傳輸和播放。明確地說,通過用較少比特來表示媒體的順序時(shí)間間隔,將需要較少帶寬來支持將媒體實(shí)時(shí)傳輸給發(fā)出請(qǐng)求的裝置。
[0021]實(shí)際上,用以對(duì)實(shí)時(shí)媒體進(jìn)行編碼的編解碼器可應(yīng)用恒定比特率(CBR)編碼或可變比特率(VBR)編碼。CBR編碼將媒體的每一順序時(shí)間間隔轉(zhuǎn)換成給定量的數(shù)據(jù),其中所述量在媒體的持續(xù)時(shí)間內(nèi)保持大致相同。因此,對(duì)流式傳輸經(jīng)CBR編碼的媒體的網(wǎng)絡(luò)帶寬要求在一段時(shí)間內(nèi)將保持大致相同。
[0022]另一方面,VBR編碼涉及相較于對(duì)媒體的其它時(shí)間間隔進(jìn)行編碼使用較高比特率來對(duì)媒體的一些時(shí)間間隔進(jìn)行編碼。與CBR編碼相比,VBR編碼可導(dǎo)致較好的質(zhì)量,因?yàn)槭褂酶鄶?shù)據(jù)來表示媒體的可從中受益的某些部分(諸如較高細(xì)節(jié)視頻或快速運(yùn)動(dòng)視頻)。另外,VBR編碼可實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)帶寬的更好使用,因?yàn)榭墒褂幂^多帶寬來流式傳輸媒體的較高比特率部分,而可使用較少帶寬來流式傳輸媒體的較低比特率部分。
[0023]實(shí)際上可用于將媒體從服務(wù)器傳輸?shù)娇蛻舳搜b置的網(wǎng)絡(luò)帶寬可能會(huì)因?yàn)樵S多因素而隨著時(shí)間變化,包括但不限于服務(wù)器處負(fù)荷的改變、客戶端處負(fù)荷的改變以及服務(wù)器與客戶端之間的通信路徑中負(fù)荷的改變。
[0024]為了適應(yīng)網(wǎng)絡(luò)帶寬的此類變化,流媒體服務(wù)器可具有(或在運(yùn)行中產(chǎn)生)媒體內(nèi)容的各種不同比特率版本(即,不同編碼)且可將當(dāng)前網(wǎng)絡(luò)帶寬可支持的最高比特率版本流式傳輸給發(fā)出請(qǐng)求的客戶端裝置。實(shí)際上,例如,客戶端裝置可具有指定可供流式傳輸?shù)母鞣N版本的比特率的索引,且客戶端可確定網(wǎng)絡(luò)帶寬并選擇所確定的網(wǎng)絡(luò)帶寬將支持的最高比特率版本(例如,具有小于或等于所確定的網(wǎng)絡(luò)帶寬的比特率的版本)。客戶端可接著向服務(wù)器發(fā)送請(qǐng)求以使服務(wù)器流式傳輸所述所請(qǐng)求的版本,且服務(wù)器可作出響應(yīng)而將所述所請(qǐng)求的版本流式傳輸給客戶端。或者,客戶端可確定網(wǎng)絡(luò)帶寬且向服務(wù)器發(fā)送所確定的網(wǎng)絡(luò)帶寬的指示,且服務(wù)器可選擇所確定的網(wǎng)絡(luò)帶寬將支持的最高比特率版本且將所述最高比特率版本流式傳輸給客戶端。
[0025]基于網(wǎng)絡(luò)帶寬來選擇比特率版本的這個(gè)過程可以在流媒體會(huì)話開頭一次完成(作為靜態(tài)自適應(yīng)流式傳輸過程)或動(dòng)態(tài)地進(jìn)行以適應(yīng)流式傳輸期間變動(dòng)的網(wǎng)絡(luò)條件(作為動(dòng)態(tài)自適應(yīng)流式傳輸過程)。另外,可針對(duì)經(jīng)CBR編碼的媒體以及針對(duì)經(jīng)VBR編碼的媒體來執(zhí)行此過程。
[0026]為了就經(jīng)CBR編碼的媒體來了解此過程,考慮圖1中的圖,它示出了在五分鐘的間隔內(nèi)按三個(gè)不同比特率來編碼的一條視頻媒體的比特率:2000kbps (Tl)、3500kbps(T2)和5000kbps (T3)。給定媒體內(nèi)容的這些經(jīng)相當(dāng)恒定比特率編碼的版本,假如可用網(wǎng)絡(luò)帶寬在開始是4000kbps,那么客戶端可請(qǐng)求服務(wù)器流式傳輸版本T2,因?yàn)樗强梢杂每捎玫?000kbps帶寬進(jìn)行流式傳輸?shù)淖罡弑忍芈拾姹厩乙虼俗銐蚩焖俚氐竭_(dá)客戶端以實(shí)現(xiàn)無縫播放。如果網(wǎng)絡(luò)帶寬在某時(shí)接著降至3000kbps,那么客戶端可請(qǐng)求服務(wù)器轉(zhuǎn)變到流式傳輸版本Tl,因?yàn)樗髮⑹强梢杂每捎玫?000kbps帶寬進(jìn)行流式傳輸?shù)淖罡弑忍芈拾姹厩铱梢宰銐蚩焖俚氐竭_(dá)客戶端以實(shí)現(xiàn)無縫播放。因此,在網(wǎng)絡(luò)帶寬減小時(shí),流式傳輸可以繼續(xù),盡管是傳輸媒體內(nèi)容的較低比特率版本。同樣地,如果網(wǎng)絡(luò)帶寬增加,那么流式傳輸可以轉(zhuǎn)變回到媒體內(nèi)容的較高比特率版本。
[0027]可以相對(duì)于經(jīng)VBR編碼的媒體執(zhí)行此相同過程。圖2(例如)描繪了按三個(gè)不同比特率等級(jí)編碼的一條媒體內(nèi)容的變動(dòng)比特率,示出了五分鐘的間隔。如此實(shí)例中所示,每一版本的實(shí)際比特率隨著時(shí)間而大幅變化。貫穿每一版本描繪的虛線因此表示可被視為每一版本的“目標(biāo)”比特率(例如,平均比特率)的事物,再次是:2000kbps (Tl),3500kbps (T2)和5000kbps(T3)。使用這些目標(biāo)比特率作為與變動(dòng)的網(wǎng)絡(luò)帶寬的比較點(diǎn),假如可用網(wǎng)絡(luò)帶寬在開始是4000kbps,那么客戶端可請(qǐng)求服務(wù)器流式傳輸版本T2,因?yàn)樗强梢杂每捎玫?000kbps帶寬至少按其目標(biāo)比特率(3500kbps)進(jìn)行流式傳輸?shù)淖罡弑忍芈拾姹尽2⑶彝瑯拥?,如果網(wǎng)絡(luò)帶寬在某時(shí)接著降至3000kbps,那么客戶端可請(qǐng)求服務(wù)器轉(zhuǎn)變到流式傳輸版本Tl,因?yàn)樗笫强梢杂每捎玫?000kbps帶寬至少按其目標(biāo)比特率(2000kbps)進(jìn)行流式傳輸?shù)淖罡弑忍芈拾姹?br>
[0028]然而,將此過程應(yīng)用于經(jīng)VBR編碼的媒體的流式傳輸實(shí)際上會(huì)更復(fù)雜,因?yàn)樽儎?dòng)的媒體比特率和網(wǎng)絡(luò)帶寬可能會(huì)使客戶端的播放緩沖區(qū)(自適應(yīng)流式傳輸緩沖區(qū))耗盡因而停止播放的風(fēng)險(xiǎn)增加。明確地說,如果客戶端使用平均比特率作為比較點(diǎn),那么媒體內(nèi)容的具有比網(wǎng)絡(luò)帶寬高的實(shí)際比特率的任何部分都不可能以它們所需的比特率足夠快地到達(dá)客戶端,從而無法播放。因此,播放將會(huì)中斷,因?yàn)榭蛻舳艘却~外數(shù)據(jù)到來。例如,就圖2中所示的VBR版本來說,如果當(dāng)前網(wǎng)絡(luò)帶寬是4000kbps且客戶端因此選擇了版本T2(具有為3500kbps的目標(biāo)比特率),那么從約100秒至170秒可能會(huì)出現(xiàn)問題,在此期間媒體比特率將會(huì)升高到高于4000kbps的網(wǎng)絡(luò)帶寬,使得可能會(huì)嚴(yán)重耗盡客戶端的播放緩沖區(qū)。
[0029]解決此問題的一個(gè)方法是應(yīng)用“守恒因數(shù)”,諸如平均比特率或最大比特率的乘數(shù),作為媒體內(nèi)容的每一 VBR版本的比較點(diǎn)。參看圖3,例如,每一 VBR版本處的虛線表示所述版本的最大比特率。通過使用所述最大比特率作為與網(wǎng)絡(luò)帶寬的比較點(diǎn),客戶端可以幫助避免使其播放緩沖區(qū)耗盡,因?yàn)樗x的VBR版本將始終小于或等于最近確定的網(wǎng)絡(luò)帶寬。另一方面,此守恒方法的缺點(diǎn)是所述過程將無法實(shí)現(xiàn)對(duì)可用帶寬的最佳使用。
[0030]本方法提供了可幫助實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)帶寬的更佳使用同時(shí)又減少緩沖區(qū)不足的風(fēng)險(xiǎn)的先進(jìn)方法。此方法(它可被稱作預(yù)測(cè)性自適應(yīng)媒體流式傳輸)可涉及針對(duì)媒體的一連串即將到來的部分(例如,時(shí)間間隔(“時(shí)間邊界”)或數(shù)據(jù)量間隔(“數(shù)據(jù)邊界”))中的每一者來預(yù)測(cè)在所述部分中每一 VBR版本的比特率,以及使用那些預(yù)測(cè)比特率作為與網(wǎng)絡(luò)帶寬的比較點(diǎn)以便選擇一 VBR版本來流式傳輸給客戶端。可有利地以滑窗為基礎(chǔ)(或者,以非重疊(即,互不相容)窗)來重復(fù)此過程,以便在媒體的整個(gè)過程中提供持續(xù)的比特率預(yù)測(cè)且不斷地使用即將到來的比特率的最新預(yù)測(cè)值作為依據(jù)來選擇待流式傳輸?shù)腣BR版本。
[0031]圖4有助于說明此過程的實(shí)例,其中在30秒或5兆字節(jié)的滑窗內(nèi)以滑窗為基礎(chǔ)每隔一秒來預(yù)測(cè)每一 VBR版本的即將到來的比特率,作為平均的即將到來的比特率。在圖4中的圖中,將預(yù)測(cè)性比特率繪成貫穿每一 VBR版本的虛線,有效地對(duì)每版本的比特率曲線進(jìn)行平滑化。在任一時(shí)間時(shí),每VBR版本的此預(yù)測(cè)性比特率表示在所述VBR版本中在媒體的即將到來的窗內(nèi)的平均比特率,且因此,在即將到來的平均比特率在媒體內(nèi)容的整個(gè)過程中發(fā)生變化時(shí),預(yù)測(cè)性比特率在媒體內(nèi)容的整個(gè)過程中也發(fā)生變化。
[0032]就圖4中所示的預(yù)測(cè)性比特率來說,假如我們?yōu)楹唵纹鹨姸僭O(shè)網(wǎng)絡(luò)帶寬始終都是4000kbps,那么在約20秒處將選擇VBR版本T2,因?yàn)樵谶@三個(gè)VBR版本中,版本T2的預(yù)測(cè)比特率將具有將小于或等于網(wǎng)絡(luò)帶寬的最高預(yù)測(cè)比特率。然而,從約90秒處開始,版本T2的預(yù)測(cè)比特率將高于網(wǎng)絡(luò)帶寬,且將改為選擇版本Tl,因?yàn)榘姹綯l接著將具有將小于或等于網(wǎng)絡(luò)帶寬的最高預(yù)測(cè)比特率。依次地,在約140秒處,由于版本T2的預(yù)測(cè)比特率回落到網(wǎng)絡(luò)帶寬以下,因此將再次選擇版本T2,因?yàn)樗鼘⒕哂袑⑿∮诨虻扔诰W(wǎng)絡(luò)帶寬的最高預(yù)測(cè)比特率。并且從約180秒處開始,版本T3接著將落到網(wǎng)絡(luò)帶寬以下且因此將選擇版本T3,因?yàn)樗鼘⒕哂袑⑿∮诨虻扔诰W(wǎng)絡(luò)帶寬的最高預(yù)測(cè)比特率。
[0033]顯而易見地,在此實(shí)例中,從約180秒處開始選擇版本T3可幫助在那時(shí)最大化播放質(zhì)量(通過流式傳輸媒體的較高比特率版本)。但是,其它所論述的方法并不會(huì)發(fā)生此種情況,從而無法進(jìn)行自適應(yīng)流式傳輸。這舉例示出了可如何使用本方法來改善媒體流式傳輸。
[0034]還請(qǐng)注意,上述實(shí)例的許多變化也是可能的。例如,對(duì)媒體內(nèi)容的每一即將到來的窗內(nèi)的比特率的預(yù)測(cè)可以是平均值以外的測(cè)量值。例如,對(duì)于每一即將到來的窗,所述預(yù)測(cè)可以是媒體內(nèi)容的最大比特率或者可以是基于平均值、最大值或其它特征的更復(fù)雜的統(tǒng)計(jì)預(yù)測(cè)。
[0035]作為另一實(shí)例,預(yù)測(cè)間隔和窗尺寸參數(shù)的變化也是可能的。例如,在其中進(jìn)行每一預(yù)測(cè)的間隔可以是恒定的或可變的,可以不同于一秒,且可以是時(shí)間間隔或數(shù)據(jù)間隔。最佳地,所述間隔可以小至處理能力和其它資源將允許的程度,以便提供最相關(guān)的即將到來的比特率預(yù)測(cè)。另外,在其中進(jìn)行即將到來的比特率的預(yù)測(cè)的窗尺寸也可以是恒定或可變的尺寸且可以不同于30秒或5兆字節(jié)。例如,窗尺寸可以小到足以切實(shí)地估測(cè)即將到來的比特率以便幫助避免緩沖區(qū)不足。
[0036]實(shí)際上,每VBR版本的預(yù)測(cè)性比特率的產(chǎn)生可以由客戶端、服務(wù)器或任何其它計(jì)算實(shí)體基于界定每一 VBR版本的可變比特率的索引來執(zhí)行。
[0037]客戶端(例如)可以在服務(wù)器將媒體內(nèi)容流式傳輸給客戶端的同時(shí)執(zhí)行此過程,其中每一預(yù)測(cè)窗是(例如)從迄今接收到的媒體內(nèi)容中的最近的點(diǎn)(或所述點(diǎn)的某一偏移)處開始。使用上述示例參數(shù),例如,每隔一秒,客戶端可以針對(duì)每一 VBR版本來預(yù)測(cè)在即將到來的部分內(nèi)媒體的代表性比特率,所述部分是從客戶端接收到的最近媒體文件位置處開始且在媒體文件中向前延伸30秒或5兆字節(jié)。(因此,預(yù)測(cè)窗可以涵蓋已經(jīng)離開服務(wù)器但還沒到達(dá)客戶端的一條媒體內(nèi)容。)并且,客戶端可以選擇具有小于或等于網(wǎng)絡(luò)帶寬的最新測(cè)量值的最高預(yù)測(cè)比特率的VBR版本,且可以請(qǐng)求服務(wù)器將所述所選的VBR版本流式傳輸給客戶端。
[0038]或者,客戶端可以在某一稍早時(shí)間時(shí)(諸如在流媒體會(huì)話開始之前)針對(duì)媒體內(nèi)容的一連串窗中的每一者執(zhí)行此預(yù)測(cè)(每VBR版本),因此確立每一 VBR版本的數(shù)據(jù),諸如圖4中的虛線所表示的數(shù)據(jù)。隨著流式傳輸繼續(xù)進(jìn)行,客戶端接著可以不斷地(例如,在同一或另一預(yù)測(cè)間隔處)使用先前確立的預(yù)測(cè)值作為依據(jù)來選擇具有小于或等于網(wǎng)絡(luò)帶寬的最新量測(cè)值的最高預(yù)測(cè)比特率的VBR,且可以請(qǐng)求服務(wù)器將所述所選的VBR版本流式傳輸給客戶端。
[0039]又或者,服務(wù)器可以在服務(wù)器將媒體內(nèi)容流式傳輸給客戶端的同時(shí)執(zhí)行此過程,其中每一預(yù)測(cè)窗是(例如)從迄今從服務(wù)器流式傳輸?shù)拿襟w內(nèi)容中的最近的點(diǎn)(或所述點(diǎn)的某一偏移)處開始。在每一預(yù)測(cè)間隔處,服務(wù)器可因此預(yù)測(cè)每一 VBR版本的即將到來的比特率且可選擇具有小于或等于網(wǎng)絡(luò)帶寬的最新測(cè)量值的最高預(yù)測(cè)比特率的VBR版本,且服務(wù)器可接著將所述所選的VBR版本流式傳輸給客戶端。
[0040]再或者,服務(wù)器或另一實(shí)體可以在某一稍早時(shí)間時(shí)(諸如在流媒體會(huì)話開始之前)針對(duì)媒體內(nèi)容的一連串窗中的每一者執(zhí)行此預(yù)測(cè)(每VBR版本),因此確立每一 VBR版本的數(shù)據(jù),諸如圖4中的虛線所表示的數(shù)據(jù)??蓪⑺鲱A(yù)測(cè)性比特率數(shù)據(jù)提供給客戶端(例如,作為媒體文件索引的一部分或者以某其它方式)以供客戶端用作依據(jù)來在流式傳輸繼續(xù)進(jìn)行時(shí)選擇和請(qǐng)求VBR版本,或者可提供給服務(wù)器以供服務(wù)器用作依據(jù)來在流式傳輸繼續(xù)進(jìn)行時(shí)選擇將流式傳輸給客戶端的VBR版本。其它布置也是可能的。
[0041]實(shí)際上,對(duì)于媒體內(nèi)容的給定VBR版本的即將到來的比特率的預(yù)測(cè)將考慮指示(例如,指定或以其它方式界定或確立)在一段時(shí)間內(nèi)所述VBR版本的即將到來的比特率的數(shù)據(jù)。如上所述,例如,所論述的媒體內(nèi)容可具有相關(guān)聯(lián)的索引,且所述索引可提供可用以確立預(yù)測(cè)性比特率的數(shù)據(jù)。
[0042]例如,每一 VBR版本的媒體內(nèi)容可分割成被稱作片段或塊的多個(gè)順序部分,且所述索引可為每一部分指定所述部分的數(shù)據(jù)大小和所述部分的持續(xù)時(shí)間。通過參考所述索弓丨,計(jì)算裝置可因此按所指示的數(shù)據(jù)大小除以持續(xù)時(shí)間來計(jì)算VBR版本的每部分的比特率。另外,計(jì)算裝置可跨越界定適用時(shí)間或數(shù)據(jù)窗的許多此類部分來計(jì)算比特率的平均值或其它統(tǒng)計(jì)測(cè)量值。因此,比特率預(yù)測(cè)可包括橫跨VBR版本的多個(gè)即將到來的塊的窗。
[0043]作為另一實(shí)例,對(duì)于每一 VBR版本,媒體文件索弓I可將媒體內(nèi)容的時(shí)間位置映射到媒體內(nèi)容文件中的文件位置,諸如指示媒體內(nèi)容的相應(yīng)時(shí)間位置位于文件中多遠(yuǎn)的文件偏移量。通過參考這樣一個(gè)索引,計(jì)算裝置可因此通過以下方式來計(jì)算媒體文件的任一部分的比特率:按所述部分的所指示的開始和結(jié)束文件位置之間的差來計(jì)算所述部分的數(shù)據(jù)大小以及將所述數(shù)據(jù)大小除以所述部分的對(duì)應(yīng)持續(xù)時(shí)間。更明確地說,假如一部分的開始時(shí)間是X,開始文件位置是fp (X),持續(xù)時(shí)間是Π,且結(jié)束文件位置是fp (χ+η),那么所述部分的比特率是(fp(x+n)-fp(x))/n。此外,如果文件位置是按字節(jié)而非比特來測(cè)量,那么這個(gè)值可以通過乘以8而轉(zhuǎn)換成比特。(然而,如本文中使用的術(shù)語“比特率”不一定限于比特且最好可廣泛地表征為“數(shù)據(jù)率”,不管是按比特、字節(jié)還是其它數(shù)據(jù)量,且不管是按秒或按其它單位時(shí)間。)
[0044]接下來,圖5是可在其中實(shí)施本發(fā)明方法的實(shí)例的網(wǎng)絡(luò)布置的簡化框圖。如圖5中所示,所述網(wǎng)絡(luò)布置包括客戶端裝置12、網(wǎng)絡(luò)(例如,因特網(wǎng)或其它網(wǎng)絡(luò))14和服務(wù)器16,其中服務(wù)器能夠訪問特定媒體內(nèi)容的多個(gè)VBR版本18,且客戶端能夠訪問界定了每一 VBR版本的變動(dòng)比特率的媒體索引20。
[0045]就此布置來說,客戶端12可發(fā)起流媒體會(huì)話,通過所述流媒體會(huì)話,服務(wù)器16將經(jīng)由網(wǎng)絡(luò)14將媒體內(nèi)容流式傳輸給客戶端。例如,客戶端可向服務(wù)器發(fā)送RTSP DESCRIBE請(qǐng)求且作為響應(yīng)可從服務(wù)器接收RTSP DESCRIBE答復(fù),所述答復(fù)指明了服務(wù)器可以流式傳輸給客戶端的一個(gè)或多個(gè)流(諸如音頻和視頻),其中一個(gè)這樣的流(例如)界定所論述的媒體內(nèi)容。另外,客戶端可發(fā)出請(qǐng)求且從服務(wù)器或從另一實(shí)體接收用于媒體內(nèi)容的索引20。
[0046]通過參考所述索引,客戶端可接著針對(duì)媒體內(nèi)容的每一 VBR版本來預(yù)測(cè)媒體內(nèi)容的第一部分(例如,第一窗)的比特率。另外,客戶端可確定網(wǎng)絡(luò)帶寬的當(dāng)前測(cè)量值。客戶端可接著將每一 VBR版本的即將到來的部分的預(yù)測(cè)比特率與網(wǎng)絡(luò)帶寬相比較以確定所述即將到來的部分的預(yù)測(cè)比特率小于或等于所確定的網(wǎng)絡(luò)帶寬的一個(gè)或多個(gè)VBR版本。另夕卜,在所確定的一個(gè)或多個(gè)VBR版本中,客戶端可接著選擇在即將到來的部分中具有最高預(yù)測(cè)比特率的那個(gè)VBR版本??蛻舳丝山又蚍?wù)器發(fā)送RTSP PLAY請(qǐng)求以使服務(wù)器流式傳輸所選的VBR版本,諸如通過在所述請(qǐng)求中的參數(shù)中指明所述VBR版本。服務(wù)器可接著開始將媒體內(nèi)容的所請(qǐng)求VBR版本流式傳輸給客戶端,且客戶端可開始接收、緩沖并播放所流式傳輸?shù)拿襟w內(nèi)容。
[0047]繼續(xù)參考所述索引,客戶端可接著針對(duì)媒體內(nèi)容的下一個(gè)即將到來的部分類似地預(yù)測(cè)VBR版本的比特率,客戶端可再次確定網(wǎng)絡(luò)帶寬的當(dāng)前測(cè)量值,且客戶端可再次選擇所述下一個(gè)即將到來的部分的最高預(yù)測(cè)比特率小于或等于所確定的網(wǎng)絡(luò)帶寬的VBR版本。
[0048]如果所選的VBR版本是服務(wù)器目前正流式傳輸給客戶端的版本,那么客戶端無需采取任何行動(dòng)。然而,如果所選的VBR版本不同于服務(wù)器目前正流式傳輸給客戶端的版本,那么客戶端可將控制信號(hào)發(fā)送給服務(wù)器,使服務(wù)器轉(zhuǎn)變到流式傳輸所選的VBR版本。例如,客戶端可向服務(wù)器發(fā)送含有切換流標(biāo)頭的RTSP PLAY,它指明了當(dāng)前VBR版本且請(qǐng)求服務(wù)器轉(zhuǎn)變到新的所選VBR版本?;蛘撸蛻舳丝上蚍?wù)器發(fā)送另一 RTSP請(qǐng)求、RTMP請(qǐng)求、RTCP請(qǐng)求、HTTP請(qǐng)求或任一其它命令,服務(wù)器將經(jīng)布置以將所述請(qǐng)求或命令解釋為轉(zhuǎn)變到流式傳輸新VBR版本的請(qǐng)求。服務(wù)器可接著作出響應(yīng)而轉(zhuǎn)變到流式傳輸新VBR版本,最佳是在一段時(shí)間內(nèi)無縫地這樣做(將新選的VBR版本有效地拼接到舊的VBR版本)。
[0049]客戶端裝置12可以是經(jīng)布置以請(qǐng)求并接收流媒體且在接收到媒體時(shí)播放所述媒體的任何計(jì)算裝置。例如,客戶端裝置可以是個(gè)人計(jì)算機(jī)、平板計(jì)算機(jī)、手持式移動(dòng)電話或其它通信裝置、集成的音頻或視頻播放器、游戲裝置或現(xiàn)在已知或之后開發(fā)的任何其它裝置。圖6是示出了可包括在這樣一種裝置中以便于將所述方法的各方面付諸實(shí)踐的組件的簡化框圖。
[0050]如圖6中所示,示例客戶端裝置包括網(wǎng)絡(luò)通信接口 22、用戶接口 24、處理器26和數(shù)據(jù)存儲(chǔ)裝置28,其皆可通過系統(tǒng)總線或其它連接機(jī)構(gòu)30而耦合到一起。
[0051]網(wǎng)絡(luò)通信接口 22可包含經(jīng)布置以允許客戶端12在網(wǎng)絡(luò)14上且經(jīng)由網(wǎng)絡(luò)14與多個(gè)實(shí)體(例如,與服務(wù)器16)通信的有線或無線接口。例如,網(wǎng)絡(luò)通信接口 22可包含用于在局域網(wǎng)上且又經(jīng)由路由器和/或一個(gè)或多個(gè)其它網(wǎng)絡(luò)元件與網(wǎng)絡(luò)14上的實(shí)體通信的有線或無線以太網(wǎng)接口。作為另一實(shí)例,所述網(wǎng)絡(luò)通信接口可包含蜂窩式無線接口,所述蜂窩式無線接口經(jīng)布置以參與到根據(jù)諸如LTE、WiMAX、CDMA、GSM或其類似者等協(xié)議與無線接入網(wǎng)且經(jīng)由無線接入網(wǎng)與網(wǎng)絡(luò)14上的實(shí)體的空中接口通信中。其它實(shí)例也是可能的。
[0052]用戶接口 24可使得客戶端12能夠與客戶端的用戶交互且因此可以包含諸如顯示屏、音頻揚(yáng)聲器和其類似者等輸出組件以及諸如鍵盤、相機(jī)、觸模板或觸摸屏和其類似者等輸入組件。另外,用戶接口 24可包括用于將媒體從數(shù)字形式轉(zhuǎn)換成模擬形式以便于向用戶播放數(shù)字化媒體的電路。
[0053]處理器26可包含一個(gè)或多個(gè)通用處理器(例如,INTEL微處理器)和/或一個(gè)或多個(gè)專用處理器(例如,專用集成電路、數(shù)字信號(hào)處理器等)。如果處理器26包括多個(gè)處理器,那么所述處理器可經(jīng)布置以結(jié)合起來(例如,并行地)或分開來工作。另外,處理器26可全部或部分地與網(wǎng)絡(luò)通信接口 22或一個(gè)或多個(gè)其它組件集成。
[0054]數(shù)據(jù)存儲(chǔ)裝置28可接著包含一個(gè)或多個(gè)易失性和/或非易失性存儲(chǔ)組件,諸如磁性、光學(xué)、有機(jī)、快閃或其它類型的現(xiàn)在已知或之后開發(fā)的存儲(chǔ)裝置,且可全部或部分地與處理器26集成和/或可以是從客戶端12可卸除的或在外部與客戶端12連接(經(jīng)由有線或無線裝置)。如所示,數(shù)據(jù)存儲(chǔ)裝置28含有程序指令32和程序數(shù)據(jù)34。一般來說,程序指令32可以是處理器26可執(zhí)行的以實(shí)施本文中描述的各種客戶端功能。或者,一些或全部的此類功能可以由各種其它機(jī)械實(shí)施方案來執(zhí)行。程序數(shù)據(jù)34可接著包括諸如所接收到的經(jīng)緩沖以播放的媒體內(nèi)容等數(shù)據(jù)、媒體文件索引以及界定圖形用戶接口的數(shù)據(jù),客戶端可在用戶接口 24上呈現(xiàn)所述圖形用戶接口以方便用戶請(qǐng)求流媒體和其類似者。
[0055]服務(wù)器16可以是經(jīng)布置以接收對(duì)流媒體的請(qǐng)求以及流式傳輸所請(qǐng)求的媒體以便播放的任何計(jì)算裝置。因而,服務(wù)器很可能是服務(wù)器類計(jì)算機(jī)。然而,服務(wù)器可以更簡單,諸如布置有作為服務(wù)器來操作的邏輯的上述裝置中的一者。圖7是示出了可包括在這樣一種服務(wù)器中以便于將所述方法的各方面付諸實(shí)踐的組件的簡化框圖。
[0056]如圖7中所示,示例服務(wù)器包括網(wǎng)絡(luò)通信接口 40、處理器42和數(shù)據(jù)存儲(chǔ)裝置44,其皆可通過系統(tǒng)總線或其它連接機(jī)構(gòu)46而耦合到一起。
[0057]網(wǎng)絡(luò)通信接口 40可包含經(jīng)布置以允許服務(wù)器16在網(wǎng)絡(luò)14上且經(jīng)由網(wǎng)絡(luò)14與多個(gè)實(shí)體(例如,與客戶端12)通信的有線或無線接口。因而,網(wǎng)絡(luò)通信接口 40可包含有線或無線以太網(wǎng)接口、蜂窩式無線接口或任何其它類型的網(wǎng)絡(luò)接口。
[0058]處理器42可包含一個(gè)或多個(gè)通用處理器和/或一個(gè)或多個(gè)專用處理器且可全部或部分地與網(wǎng)絡(luò)通信接口集成。并且,數(shù)據(jù)存儲(chǔ)裝置44可包含一個(gè)或多個(gè)易失性和/或非易失性存儲(chǔ)組件且可全部或部分地與處理器42集成。如所示,數(shù)據(jù)存儲(chǔ)裝置44含有可執(zhí)行以執(zhí)行本文中描述的各種服務(wù)器功能的程序指令48,以及程序數(shù)據(jù)50 (諸如流式傳輸給客戶端12以便播放的媒體內(nèi)容的各種VBR版本)。
[0059]接下來,圖8是描繪了可以根據(jù)本發(fā)明方法的示例實(shí)施方案來執(zhí)行以控制媒體內(nèi)容從服務(wù)器到客戶端的流式傳輸?shù)墓δ艿牧鞒虉D,其中服務(wù)器能夠訪問媒體內(nèi)容的多個(gè)VBR版本。
[0060]如圖8中所示,在框60處,示例方法涉及確定帶寬閾值。帶寬閾值可以是(例如)網(wǎng)絡(luò)帶寬的實(shí)時(shí)(即,當(dāng)前或基本上當(dāng)前)測(cè)量值或這樣一個(gè)測(cè)量值的某一導(dǎo)出值。因而,帶寬閾值可以不時(shí)地改變或可以是恒定的且甚至可能是預(yù)定的。
[0061]如果由客戶端執(zhí)行,那么確定帶寬閾值的這個(gè)功能可涉及客戶端耗盡其播放緩沖區(qū)且接著允許緩沖區(qū)填滿來自服務(wù)器的傳入數(shù)據(jù),且測(cè)量緩沖區(qū)填充的速率或者測(cè)量數(shù)據(jù)從服務(wù)器到達(dá)客戶端的速率??蛻舳丝山又鴮y(cè)得的速率或測(cè)得的速率的某一倍數(shù)或偏移版本視為帶寬閾值?;蛘撸蛻舳丝梢杂媚骋黄渌绞絹泶_定帶寬閾值和/或由另一實(shí)體來告知帶寬閾值。另一方面,如果所述功能由服務(wù)器執(zhí)行,那么服務(wù)器可以從客戶端或從服務(wù)器與客戶端之間的通信路徑中的一個(gè)或多個(gè)其它實(shí)體接收網(wǎng)絡(luò)帶寬或帶寬閾值的報(bào)告,或者服務(wù)器可用任何其它方式來確定帶寬。
[0062]在框62 (它可以改為發(fā)生在框60之前)處,示例方法進(jìn)一步涉及針對(duì)媒體內(nèi)容的每一 VBR版本來預(yù)測(cè)媒體內(nèi)容的即將到來的部分的比特率。如上所述,例如,這可以涉及參考媒體文件索引來預(yù)測(cè)每VBR版本的所述即將到來的部分的比特率。另外,如果已經(jīng)確立了每一 VBR版本的一連串部分(例如,滑窗)中的每一者的預(yù)測(cè)比特率,那么此功能可以涉及參考所述已經(jīng)確立的預(yù)測(cè)比特率數(shù)據(jù)來確定每VBR版本的所述即將到來的部分的預(yù)測(cè)比特率。
[0063]在框64處,示例方法接著涉及識(shí)別媒體內(nèi)容的一個(gè)或多個(gè)VBR版本,這是基于在每一個(gè)這樣的VBR版本中媒體內(nèi)容的即將到來的部分具有低于帶寬閾值的預(yù)測(cè)比特率來進(jìn)行。(注意,本文中的“低于”測(cè)試最好可以包括“小于或等于”,因?yàn)閹掗撝悼梢栽O(shè)為剛好高于或處于所要水平處。)明確地說,所述方法可以涉及將每一VBR版本的預(yù)測(cè)比特率分別與帶寬閾值相比較以識(shí)別即將到來的部分具有低于帶寬閾值的預(yù)測(cè)比特率的一個(gè)或多個(gè)所述VBR版本。
[0064]識(shí)別所述一個(gè)或多個(gè)VBR版本的功能還可以考慮除了所述VBR版本的即將到來的部分是否滿足帶寬閾值以外的一個(gè)或多個(gè)其它因素。例如,所述識(shí)別還可以至少部分基于對(duì)客戶端的播放緩沖區(qū)目前有多滿的確定。就此來說,如果客戶端的播放緩沖區(qū)快要空了(例如,瀕于耗盡),那么選擇與原本會(huì)選擇的版本相比比特率較低的版本可能是有利的,因?yàn)檩^低比特率版本將更緩慢地播放且因此可以幫助填充緩沖區(qū)。因此,如果所述識(shí)別功能是由客戶端執(zhí)行,那么客戶端可以確定其播放緩沖區(qū)是否快要空了且如果是則可按照某一因數(shù)將帶寬閾值調(diào)低以便迫使選擇可能的較低比特率VBR版本。同樣地,如果所述識(shí)別功能是由服務(wù)器執(zhí)行,那么客戶端可以向服務(wù)器報(bào)告其緩沖區(qū)充滿程度且服務(wù)器可應(yīng)用類似調(diào)整以將緩沖區(qū)充滿程度考慮在內(nèi)。還可以考慮其它因素。
[0065]在框66處,示例方法接著涉及選擇所述一個(gè)或多個(gè)經(jīng)識(shí)別的VBR版本中的最高比特率VBR版本。如果只識(shí)別了一個(gè)VBR版本,那么此功能將相當(dāng)于選擇所述VBR版本。但是,如果識(shí)別了一個(gè)以上VBR版本,那么此功能將涉及選擇所述一個(gè)或多個(gè)經(jīng)識(shí)別的VBR版本中具有最高比特率的VBR版本。
[0066]請(qǐng)注意,框66的此功能可以以不同方式與框64的功能相結(jié)合。例如,所述功能可以涉及首先對(duì)VBR版本進(jìn)行排位,且接著,按從最高比特率的VBR版本到最低比特率的VBR版本的排位次序,進(jìn)行檢查以查看所述VBR版本的即將到來的部分是否具有比帶寬閾值低的預(yù)測(cè)比特率。按排位次序繼續(xù)下去,一旦發(fā)現(xiàn)有VBR版本滿足針對(duì)其即將到來的部分的此帶寬閾值測(cè)試,所述功能將接著涉及將所述VBR版本選為所述版本。就此過程來說,框64的功能可以涉及識(shí)別VBR版本中具有比帶寬閾值低的預(yù)測(cè)比特率的排位最高的VBR版本,且框66的功能可以涉及選擇所述經(jīng)識(shí)別的VBR版本。
[0067]在框68處,示例方法可接著涉及使服務(wù)器將所選的VBR版本流式傳輸給客戶端。如果此功能由(例如)客戶端執(zhí)行,那么此功能可以涉及向服務(wù)器發(fā)送控制命令,指示服務(wù)器將所選的VBR版本流式傳輸給客戶端(或者不采取任何行動(dòng),如果所述VBR版本與目前流式傳輸給客戶端的VBR版本相同的話)。另一方面,如果此功能由服務(wù)器執(zhí)行,那么此功能可以涉及轉(zhuǎn)變到將所選的VBR版本流式傳輸給客戶端(或者繼續(xù)流式傳輸所述VBR版本,如果所述版本是目前流式傳輸給客戶端的VBR版本的話)。
[0068]在框70處,示例方法可接著涉及前進(jìn)到媒體內(nèi)容的下一個(gè)即將到來的部分,直到到達(dá)媒體內(nèi)容文件的結(jié)尾為止。依次地,所述方法可接著涉及從框60處開始來重復(fù)所述過程。如上所述,可跨越時(shí)間或數(shù)據(jù)量來界定媒體內(nèi)容的每一部分,且所述部分可以是離散的或重疊的(作為滑窗)。
[0069]接下來,圖9是描繪了可以根據(jù)本發(fā)明方法的示例實(shí)施方案來執(zhí)行以控制媒體內(nèi)容從服務(wù)器到裝置的流式傳輸?shù)墓δ艿牧硪涣鞒虉D。此方法可以由編碼在非暫時(shí)性計(jì)算機(jī)可讀媒體(諸如客戶端12的數(shù)據(jù)存儲(chǔ)裝置)上的指令界定,所述指令可以是處理器(諸如客戶端12的處理器26)可執(zhí)行的以實(shí)施各種功能。
[0070]如圖9中所示,在框72處,示例方法涉及確定用于從服務(wù)器到所述裝置的通信的網(wǎng)絡(luò)帶寬。在框74處,示例方法接著涉及在裝置接收媒體內(nèi)容的一部分之前識(shí)別媒體內(nèi)容的多個(gè)VBR版本中的一個(gè)或多個(gè)版本,其中所述識(shí)別是至少部分基于在所述一個(gè)或多個(gè)VBR版本的每一者中所述媒體內(nèi)容的所述部分具有小于或等于所確定的網(wǎng)絡(luò)帶寬的比特率。在框76處,示例方法接著涉及從媒體內(nèi)容的所述經(jīng)識(shí)別的一個(gè)或多個(gè)VBR版本中選擇媒體內(nèi)容的最高比特率的VBR版本。并且在框78處,示例方法涉及向服務(wù)器傳輸控制信號(hào),請(qǐng)求服務(wù)器將媒體內(nèi)容的所選VBR版本流式傳輸給所述裝置。在框80處,示例方法接著涉及前進(jìn)到媒體內(nèi)容的下一個(gè)順序出現(xiàn)的部分(例如,以滑窗為基礎(chǔ)或作為下一個(gè)離散、互斥的部分)直到到達(dá)媒體文件的結(jié)尾為止,且從框72處重復(fù)所述方法。
[0071]上文結(jié)合圖8的流程圖而提供的對(duì)類似功能的定義和論述也適用于圖9的功能,且反之亦然。例如,如上所述,識(shí)別一個(gè)或多個(gè)VBR版本的行為可基于播放緩沖區(qū)的充滿程度。并且作為另一實(shí)例,確定網(wǎng)絡(luò)帶寬的行為可以涉及確定數(shù)據(jù)從服務(wù)器到達(dá)客戶端裝置的速率且將網(wǎng)絡(luò)帶寬視為基于所述測(cè)得的到達(dá)速率的值。
[0072]另外,此示例方法以及上述方法可以包括又一些其它功能或者所論述功能的變型。例如,如上所述,所述方法可以涉及接收并存儲(chǔ)媒體內(nèi)容的索引,其中所述索引包括表示在一段時(shí)間內(nèi)每一 VBR版本的比特率的數(shù)據(jù)。在那種情況中,識(shí)別媒體內(nèi)容的一個(gè)或多個(gè)VBR版本的功能可以涉及使用索引作為識(shí)別依據(jù)(諸如參考所述索引以預(yù)測(cè)每VBR版本中媒體內(nèi)容的即將到來的部分的比特率)以及使用那些預(yù)測(cè)比特率作為依據(jù)來識(shí)別所述一個(gè)或多個(gè)VBR版本。
[0073]如上所述,例如,索引中的數(shù)據(jù)可為每一 VBR版本指定所述VBR版本的順序塊的大小和持續(xù)時(shí)間,且使用索引作為依據(jù)來識(shí)別所述一個(gè)或多個(gè)VBR版本的功能可以涉及(i)根據(jù)索引來確定媒體內(nèi)容的所述部分的按時(shí)間計(jì)的塊大小的測(cè)量值(諸如平均值或最大值)、(?)使用所確定的測(cè)量值作為媒體內(nèi)容的所述部分的比特率的表示以及(iii)如果媒體內(nèi)容的所述部分的比特率的表示小于或等于所確定的網(wǎng)絡(luò)帶寬,那么確定所述VBR版本是媒體內(nèi)容的所述部分將具有小于或等于所確定的網(wǎng)絡(luò)帶寬的比特率的VBR版本。
[0074]另外或其它,索引中的數(shù)據(jù)可為每一 VBR版本指定媒體內(nèi)容時(shí)間位置與媒體內(nèi)容數(shù)據(jù)位置之間的映射,且使用索引作為依據(jù)來識(shí)別一個(gè)或多個(gè)VBR版本的功能可以涉及
(i)根據(jù)索引來確定媒體內(nèi)容的所述部分的按時(shí)間段計(jì)的媒體內(nèi)容數(shù)據(jù)大小的測(cè)量值(諸如平均值或最大值)、(?)使用所述測(cè)量值作為媒體內(nèi)容的所述部分的比特率的表示以及
(iii)如果媒體內(nèi)容的所述部分的比特率的表示小于或等于所確定的網(wǎng)絡(luò)帶寬,那么確定所述VBR版本是媒體內(nèi)容的所述部分將具有小于或等于所確定的網(wǎng)絡(luò)帶寬的比特率的VBR版本。
[0075]最后,圖10是可以根據(jù)本發(fā)明方法的示例實(shí)施方案來執(zhí)行的功能的又一描繪。這些功能也可以由計(jì)算裝置(諸如客戶端12)執(zhí)行。明確地說,這樣一個(gè)裝置的數(shù)據(jù)存儲(chǔ)裝置可以存儲(chǔ)可由所述裝置的處理器執(zhí)行以實(shí)施所述方法的功能的程序指令。
[0076]如圖10中所示,在框82處,示例方法涉及通過網(wǎng)絡(luò)通信接口接收正從服務(wù)器流式傳輸給計(jì)算裝置的媒體內(nèi)容。在框84處,示例方法進(jìn)一步涉及在用戶接口處播放正接收到的媒體內(nèi)容,其中對(duì)于迄今接收到的媒體內(nèi)容,框84可以與框82并行地進(jìn)行。并且在框85處,示例方法涉及在接收從服務(wù)器流式傳輸給計(jì)算裝置的媒體內(nèi)容的同時(shí)周期性地(i)確定用于從服務(wù)器到計(jì)算裝置的通信的網(wǎng)絡(luò)帶寬的測(cè)量值、(?)評(píng)估媒體內(nèi)容的多個(gè)VBR版本且從所述多個(gè)VBR版本中選擇在媒體內(nèi)容的下一個(gè)滑窗內(nèi)的比特率將小于或等于所確定的網(wǎng)絡(luò)帶寬的最高比特率的VBR版本以及(iii)通過網(wǎng)絡(luò)通信接口向服務(wù)器傳輸請(qǐng)求以使服務(wù)器將所選的VBR版本流式傳輸給計(jì)算裝置。
[0077]像上文的論述一樣,上文結(jié)合圖8和圖9而提供的對(duì)類似功能的定義和論述也適用于圖9的功能,且反之亦然。例如,如上所述,在媒體內(nèi)容的播放期間,計(jì)算裝置的數(shù)據(jù)存儲(chǔ)裝置可以界定用于媒體內(nèi)容的播放緩沖區(qū),且示例方法的功能可進(jìn)一步包括基于播放緩沖區(qū)的充滿水平來選擇最高比特率的VBR版本。作為另一實(shí)例,計(jì)算裝置的數(shù)據(jù)存儲(chǔ)裝置可以保存媒體內(nèi)容的索引,且計(jì)算裝置可以使用所述索引作為依據(jù)來確定在媒體內(nèi)容的下一個(gè)滑窗內(nèi)媒體內(nèi)容的每一 VBR版本的比特率,以便于選擇在媒體內(nèi)容的下一個(gè)滑窗內(nèi)的比特率將小于或等于所確定的網(wǎng)絡(luò)帶寬的最高比特率的VBR版本。
[0078]雖然本文中已公開了各種方面和實(shí)施例,但是其它方面和實(shí)施例將是本領(lǐng)域的技術(shù)人員所顯而易見的。本文中公開的各種方面和實(shí)施例只是為了進(jìn)行說明而非意欲為限制性的,真正的范圍和精神則由權(quán)利要求書指定。
【權(quán)利要求】
1.一種用于控制媒體內(nèi)容從服務(wù)器到客戶端的流式傳輸?shù)姆椒?,其中所述服?wù)器能夠訪問所述媒體內(nèi)容的多個(gè)可變比特率(VBR)版本,所述方法包含在所述媒體內(nèi)容正從所述服務(wù)器流式傳輸給所述客戶端的同時(shí)針對(duì)所述媒體內(nèi)容的多個(gè)順序出現(xiàn)的部分中的每一者執(zhí)行以下功能: 在所述客戶端接收所述媒體內(nèi)容的所述部分之前識(shí)別所述媒體內(nèi)容的所述VBR版本中的一個(gè)或多個(gè)版本,所述識(shí)別是至少部分基于確定在所述一個(gè)或多個(gè)VBR版本的每一者中所述媒體內(nèi)容部分具有低于帶寬閾值的比特率; 從所述媒體內(nèi)容的所述經(jīng)確定的一個(gè)或多個(gè)VBR版本中選擇所述媒體內(nèi)容的最高比特率的VBR版本;以及 致使所述媒體內(nèi)容的所述所選的VBR版本從所述服務(wù)器流式傳輸給所述客戶端。
2.根據(jù)權(quán)利要求1所述的方法,其中所述識(shí)別進(jìn)一步至少部分基于所述客戶端處的播放緩沖區(qū)的充滿水平。
3.根據(jù)權(quán)利要求1所述的方法,其中在所述客戶端接收所述媒體內(nèi)容的所述部分之前識(shí)別所述媒體內(nèi)容的所述VBR版本中的一個(gè)或多個(gè)版本包含: 針對(duì)所述多個(gè)VBR版本中的每一 VBR版本,預(yù)測(cè)所述媒體內(nèi)容的所述部分的比特率的測(cè)量值; 針對(duì)所述多個(gè)VBR版本中的每一 VBR版本,確定所述媒體內(nèi)容的所述部分的比特率的所述預(yù)測(cè)測(cè)量值是否低于所述帶寬閾值。
4.根據(jù)權(quán)利要求3所述的方法,其中所述測(cè)量值包含平均值或最大值。
5.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包含,針對(duì)所述媒體內(nèi)容的所述多個(gè)順序出現(xiàn)的部分中的每一者,在所述媒體內(nèi)容正從所述服務(wù)器流式傳輸給所述客戶端的同時(shí): 基于對(duì)所述服務(wù)器與所述客戶端之間的網(wǎng)絡(luò)帶寬的評(píng)估來確定所述帶寬閾值。
6.根據(jù)權(quán)利要求5所述的方法,其中確定所述帶寬閾值包含測(cè)量數(shù)據(jù)從所述服務(wù)器到達(dá)所述客戶端的速率,且至少部分基于所述測(cè)得的到達(dá)速率來確立所述帶寬閾值。
7.根據(jù)權(quán)利要求5所述的方法,其中所述媒體內(nèi)容的所述順序出現(xiàn)的部分彼此重疊以協(xié)同地在所述媒體內(nèi)容上界定滑窗。
8.根據(jù)權(quán)利要求7所述的方法,其中所述滑窗是有大小邊界或時(shí)間邊界的。
9.根據(jù)權(quán)利要求5所述的方法,其中所述媒體內(nèi)容的所述順序出現(xiàn)的部分是所述媒體內(nèi)容的互斥部分。
10.根據(jù)權(quán)利要求1所述的方法,其中致使所述媒體內(nèi)容的所述所選的VBR版本從所述服務(wù)器流式傳輸給所述客戶端包含致使所述服務(wù)器從流式傳輸所述媒體內(nèi)容的所述VBR版本中的另一者轉(zhuǎn)變?yōu)榱魇絺鬏斔雒襟w內(nèi)容的所述所選的VBR版本。
11.根據(jù)權(quán)利要求1所述的方法,所述方法由所述客戶端執(zhí)行, 其中致使所述媒體內(nèi)容的所述所選的VBR版本從所述服務(wù)器流式傳輸給所述客戶端包含從所述客戶端向所述服務(wù)器傳輸控制信號(hào),所述控制信號(hào)請(qǐng)求所述服務(wù)器將所述媒體內(nèi)容的所述所選的VBR版本流式傳輸給所述客戶端。
12.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包含,針對(duì)所述媒體內(nèi)容的所述多個(gè)順序出現(xiàn)的部分中的每一者: 通過所述客戶端將所述帶寬閾值確定為用于從所述服務(wù)器到所述客戶端的通信的網(wǎng)絡(luò)帶寬的實(shí)時(shí)測(cè)量值。
13.根據(jù)權(quán)利要求1所述的方法,所述方法由所述服務(wù)器執(zhí)行, 其中所述方法進(jìn)一步包含從所述客戶端接收網(wǎng)絡(luò)帶寬的測(cè)量值,所述帶寬閾值基于所述接收到的測(cè)量值。
14.一種上面存儲(chǔ)有指令的非暫時(shí)性計(jì)算機(jī)可讀媒體,所述指令可執(zhí)行以致使裝置在媒體內(nèi)容從服務(wù)器流式傳輸給裝置期間針對(duì)所述媒體內(nèi)容的多個(gè)順序出現(xiàn)的部分中的每一者執(zhí)行以下功能: 確定用于從所述服務(wù)器到所述裝置的通信的網(wǎng)絡(luò)帶寬; 在所述裝置接收所述媒體內(nèi)容的所述部分之前識(shí)別所述媒體內(nèi)容的多個(gè)可變比特率(VBR)版本中的一個(gè)或多個(gè)版本,所述識(shí)別是至少部分基于在所述一個(gè)或多個(gè)VBR版本的每一者中所述媒體內(nèi)容的所述部分具有小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬的比特率; 從所述媒體內(nèi)容的所述經(jīng)識(shí)別的一個(gè)或多個(gè)VBR版本中選擇所述媒體內(nèi)容的最高比特率的VBR版本;以及 向所述服務(wù)器傳輸控制信號(hào),請(qǐng)求所述服務(wù)器將所述媒體內(nèi)容的所述所選的VBR版本流式傳輸給所述裝置。
15.根據(jù)權(quán)利要求14所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述識(shí)別進(jìn)一步至少部分基于所述裝置處的播放緩沖區(qū)的充滿水平。
16.根據(jù)權(quán)利要求14所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述裝置是手持式無線通信裝置,且其中所述非暫時(shí)性計(jì)算機(jī)可讀媒體包含所述裝置的數(shù)據(jù)存儲(chǔ)裝置。
17.根據(jù)權(quán)利要求14所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述功能進(jìn)一步包含: 接收并存儲(chǔ)所述媒體內(nèi)容的索引,所述索引包括表示在一段時(shí)間內(nèi)所述多個(gè)VBR版本的比特率的數(shù)據(jù),其中識(shí)別所述媒體內(nèi)容的所述VBR版本中的一個(gè)或多個(gè)版本包含使用所述索引作為所述識(shí)別的依據(jù)。
18.根據(jù)權(quán)利要求17所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述索引中的所述數(shù)據(jù)為所述多個(gè)VBR版本中的每一 VBR版本指定所述VBR版本的順序塊的大小和持續(xù)時(shí)間,且其中使用所述索引作為所述識(shí)別的依據(jù)包含: 根據(jù)所述索弓I來確定所述媒體內(nèi)容的所述部分的按時(shí)間計(jì)的塊大小的測(cè)量值; 使用所述經(jīng)確定的測(cè)量值作為所述媒體內(nèi)容的所述部分的比特率的表示;以及 如果所述媒體內(nèi)容的所述部分的比特率的所述表示小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬,那么確定所述VBR版本是所述媒體內(nèi)容的所述部分將具有小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬的比特率的VBR版本。
19.根據(jù)權(quán)利要求18所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述媒體內(nèi)容的所述部分的按時(shí)間計(jì)的塊大小的所述測(cè)量值包含平均值或最大值。
20.根據(jù)權(quán)利要求17所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述索引中的所述數(shù)據(jù)為每一 VBR版本指定媒體內(nèi)容時(shí)間位置與媒體內(nèi)容數(shù)據(jù)位置之間的映射,且其中使用所述索引作為所述識(shí)別的依據(jù)包含: 根據(jù)所述索引來確定所述媒體內(nèi)容的所述部分的按時(shí)間段來計(jì)的媒體內(nèi)容數(shù)據(jù)大小的測(cè)量值; 使用所述測(cè)量值作為所述媒體內(nèi)容的所述部分的比特率的表示;以及 如果所述媒體內(nèi)容的所述部分的比特率的所述表示小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬,那么確定所述VBR版本是所述媒體內(nèi)容的所述部分將具有小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬的比特率的VBR版本。
21.根據(jù)權(quán)利要求20所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述測(cè)量值包含平均值或最大值。
22.根據(jù)權(quán)利要求14所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中確定用于從所述服務(wù)器到所述裝置的通信的網(wǎng)絡(luò)帶寬包含測(cè)量數(shù)據(jù)從所述服務(wù)器到達(dá)所述裝置的速率,所述網(wǎng)絡(luò)帶寬是至少部分基于所述測(cè)得的到達(dá)速率。
23.根據(jù)權(quán)利要求14所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述媒體內(nèi)容的所述順序出現(xiàn)的部分彼此重疊以協(xié)同地在所述媒體內(nèi)容上界定滑窗。
24.根據(jù)權(quán)利要求23所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述滑窗是有大小邊界或時(shí)間邊界的。
25.根據(jù)權(quán)利要求14所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述媒體內(nèi)容的所述順序出現(xiàn)的部分是互不相容的。
26.根據(jù)權(quán)利要求14所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述控制信號(hào)請(qǐng)求所述服務(wù)器從將所述媒體內(nèi)容的所述VBR版本中的另一者流式傳輸給所述裝置轉(zhuǎn)變成將所述媒體內(nèi)容的所述所選的VBR版本流式傳輸給所述裝置。
27.一種計(jì)算裝置,包含: 網(wǎng)絡(luò)通信接口; 用戶接口 ; 處理器; 數(shù)據(jù)存儲(chǔ)裝置;以及 程序指令,所述程序指令存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)裝置中且是所述處理器可執(zhí)行的以至少執(zhí)行以下功能: (a)通過所述網(wǎng)絡(luò)通信接口接收從服務(wù)器流式傳輸給所述計(jì)算裝置的媒體內(nèi)容, (b)在所述用戶接口處播放正接收到的所述媒體內(nèi)容;以及 (c)在接收從所述服務(wù)器流式傳輸給所述計(jì)算裝置的所述媒體內(nèi)容的同時(shí),周期性地(i)確定用于從所述服務(wù)器到所述計(jì)算裝置的通信的網(wǎng)絡(luò)帶寬的測(cè)量值、(ii)評(píng)估所述媒體內(nèi)容的多個(gè)可變比特率(VBR)版本且從所述多個(gè)VBR版本中選擇在所述媒體內(nèi)容的下一個(gè)滑窗內(nèi)的比特率將小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬的最高比特率的VBR版本以及(iii)通過所述網(wǎng)絡(luò)通信接口向所述服務(wù)器傳輸請(qǐng)求以使所述服務(wù)器將所述所選的VBR版本流式傳輸給所述計(jì)算裝置。
28.根據(jù)權(quán)利要求27所述的計(jì)算裝置,其中: 在所述媒體內(nèi)容的所述播放期間,所述數(shù)據(jù)存儲(chǔ)裝置界定用于所述媒體內(nèi)容的播放緩沖區(qū),且 所述功能進(jìn)一步包含基于所述播放緩沖區(qū)的充滿水平來選擇所述最高比特率的VBR版本。
29.根據(jù)權(quán)利要求27所述的計(jì)算裝置,其中所述請(qǐng)求是使所述服務(wù)器從流式傳輸所述VBR版本中的另一者轉(zhuǎn)變成流式傳輸所述所選的VBR版本。
30.根據(jù)權(quán)利要求27所述的計(jì)算裝置,其中所述數(shù)據(jù)存儲(chǔ)裝置保存所述媒體內(nèi)容的索弓丨,所述索弓I含有表示在一段時(shí)間內(nèi)所述VBR版本的比特率的數(shù)據(jù),其中評(píng)估所述媒體內(nèi)容的所述多個(gè)VBR版本且從所述多個(gè)VBR版本中選擇在所述媒體內(nèi)容的下一個(gè)滑窗內(nèi)的比特率將小于或等于所述經(jīng)確定的網(wǎng)絡(luò)帶寬的最高比特率的VBR版本包含使用所述索引作為依據(jù)來確定在所述媒體內(nèi)容的所述下一個(gè)滑窗內(nèi)所述媒體內(nèi)容的每一 VBR版本的比特率。
【文檔編號(hào)】G06F15/16GK104272289SQ201380013463
【公開日】2015年1月7日 申請(qǐng)日期:2013年3月11日 優(yōu)先權(quán)日:2012年3月13日
【發(fā)明者】T·英斯基普, D·麥克萊恩 申請(qǐng)人:谷歌公司