務器推送特征一起使用。因此,并且根據(jù)一個實施 例,提供了一種使用無狀態(tài)通信協(xié)議(比如HTTP2.0)中的實況服務器推送策略的、用于實 況視頻流傳輸?shù)募夹g。實況視頻內容被分解成基于HTTP的文件段的序列。每個段包含是 持續(xù)時間中的潛在的許多分鐘或者小時的視頻內容(比如對體育事件的實況廣播)的短回 放時間間隔(例如,秒級)。推送服務器從視頻客戶端(例如,DASH客戶端)接收推送標記 符請求W確定推送哪些段??蒞例如在輕量級GET請求中包括推送標記符,該輕量級GET 請求指示視頻客戶端正在請求的開始段編號和結束段編號。視頻客戶端可w在由它與之關 聯(lián)的給定的低延時推送策略確定的某些時間發(fā)送推送標記符請求。一旦推送的視頻段由視 頻客戶端的HTTP找接收,就可W回放或者附加地和備選地在高速緩存(例如,客戶端)中 存儲它們。然后,在視頻客戶端準備好回放已經推送的內容時,它可W從高速緩存獲得該內 容而無需向推送服務器發(fā)送出另一請求。
[0021] 根據(jù)本發(fā)明的另一實施例,提供了一種用于使用由HTTP2.0支持的服務器推送 方案的視頻流傳輸?shù)姆椒?。特別地,該方法包括根據(jù)給定的推送策略減少視頻流的段大小, 直至實現(xiàn)希望的延時,同時考慮開銷的影響并且支持動態(tài)比特率切換。推送策略可W包括 無推送策略、全推送策略或者k推送策略。無推送策略是如下推送策略,在該推送策略中, 客戶端發(fā)送對于每個視頻段的HTTP請求,并且服務器通過向客戶端發(fā)送對應的段來對每 個請求做出響應。全推送策略是如下推送策略,在該推送策略中,客戶端發(fā)布對于整個實況 視頻流的僅一個請求,并且服務器通過在每個視頻段變成可用時主動地推送它來對請求做 出響應。K推送策略是如下推送策略,在該推送策略中,客戶端發(fā)布對于k個視頻段的請求, 并且服務器通過在每個段變成可用時推送上至k個段來對請求做出響應。變化k推送中的 k可W用來保證客戶端具有用于如果希望則切換成不同比特率/分辨率的適當能力??蒞 在客戶端處通過發(fā)送對于視頻段的不同比特略/分辨率的下一HTTP請求來完成切換。通 過配置k值,可W控制客戶端的能力和開銷(例如,切換延遲)。在一些實施例中,可W對于 給定的實況視頻流組合兩個或者更多不同推送策略;例如,將k推送策略使用某個時間段、 繼而是全推送策略或者無推送策略。其它推送策略及其組合可W被運用并且將按照本公開 內容而變得清楚。
[0022] 在一些實施例中,可W使得內容可用于在多種不同比特率和分辨率從推送服務器 向客戶端遞送W便模擬HTTP流傳輸或者自適應比特率流傳輸?shù)膭討B(tài)比特率切換方面。在 一個該樣的實施例中,在內容由視頻客戶端回放時,推送服務器基于當前網(wǎng)絡條件(例如, 可用或者可使用帶寬的改變)自動地確定用于下一段的適當比特率。例如,推送服務器可 W選擇最低比特率并且因此選擇可W被實時下載W用于回放的最小可能段,而未引起將中 斷回放或者W別的方式增加回放延時的拖延(stall)或者再緩沖事件。切換判決可W在客 戶端監(jiān)視它的網(wǎng)絡條件時由客戶端自動地做出。一旦客戶端確定切換成不同比特率和分辨 率,它就將發(fā)送對于視頻段的該比特率/分辨率的下一HTTP請求。服務器無狀態(tài)并且可W 對客戶端的對于在請求的比特率/分辨率的特定段的HTTP請求。
[002引用于化延時視頻流傳輸?shù)氖纠到y(tǒng)
[0024] 圖1圖示了根據(jù)一個實施例的、用于低延時視頻流傳輸?shù)氖纠蛻舳?服務器系 統(tǒng)100。系統(tǒng)100包括實況視頻封裝器110 (例如,基于皿S、化S或者DA甜的封裝器或者其 它適當封裝器)、支持SPDY(例如,Jetty)的web服務器120和客戶端計算設備130??蛻?端計算設備130包括視頻播放器132 (例如,DA甜播放器或者其它適當視頻播放器)和瀏 覽器134(例如,Google化romium基于SPDY的web瀏覽器或者其它適當HTTP兼容應用)。 Web服務器120經由通信網(wǎng)絡140 (比如因特網(wǎng)或者另一適當廣域網(wǎng)或者本地網(wǎng)絡)與客戶 端130通信。實況內容源112向封裝器110供應視頻內容114。實況內容源112在一些實 施例中可W包括或者操作地連接到如下設備,該設備捕獲事件(比如體育事件、新聞會議 或者舞臺作品)的視頻和音頻(例如,分別經由相機和麥克風)。在一些實施例中,封裝器 110可W被結合在web服務器120內。在其它實施例中,可w在直接地或者經由網(wǎng)絡140與web服務器120通信的服務器或者其它計算設備(未示出)上主控封裝器110。在一些實 施例中,高速緩存150可W與客戶端計算設備130關聯(lián)W用于存儲由web服務器120推送 的HTTP資源152,比如視頻內容。高速緩存150可W例如用來在接收視頻段時暫時存儲它 們。視頻播放器132然后可W訪問高速緩存150并且取回視頻段W用于回放。
[0025] 在使用時,系統(tǒng)100提供用于使用服務器推送策略的低延時視頻流傳輸?shù)目蛻?端-服務器環(huán)境。封裝器110操作用于W用于向客戶端130傳輸?shù)娜魏芜m當方式(例如, 使用基于文件段的方案,比如DA甜、皿S等)封裝視頻內容114。取代如用現(xiàn)有技術完成的 那樣觸發(fā)對于每個視頻段的一個請求,在一個示例實施例中,web服務器120可W被配置為 按照預定義的推送策略在接收對于視頻流的第一請求之后主動地推送每個視頻段。W該一 方式,客戶端有可能將向服務器的HTTP請求的數(shù)目減少至合理小的數(shù)目,例如,對于整個 視頻流的一個請求或者對于多個視頻段的一個請求。另外,通過允許服務器經由HTTP向客 戶端推送封裝的內容152,該一示例方法消除了對于某個長度的視頻在段持續(xù)時間與請求 數(shù)目之間的反比例關系,該如W上討論的那樣有效地限制了延時減少。因此,該一示例方法 可W通過減少段持續(xù)時間并且通過使用向服務器的少量請求(例如,一個請求)W提高延 時減少來減少實況視頻流傳輸?shù)难訒r。
[0026] 可W向web服務器120配置基于引用者的推送策略,其中服務器在接收引用者U化 的請求時推送在HTTP頭部中具有相同引用者的所有內容。該一推送策略對于普通web內 容(例如,除了實況視頻流傳輸之外的內容,比如網(wǎng)頁)充分好地起作用,因為在引用的主 要資源中嵌入了需要推送的大多數(shù)關聯(lián)的web內容。然而,基于引用者的推送策略出于至 少W下原因而不適用于視頻流傳輸。第一,現(xiàn)有視頻播放器請求連續(xù)、獨立視頻段而不是嵌 入的資源,并且因此推送的資源不能依賴于引用者進行視頻流傳輸。第二,利用實況視頻流 傳輸,內容(例如,視頻段)被實時生成并且因此除非它被生成否則不能推送它。第S,在 現(xiàn)有服務器推送方案中,對于主要資源的請求保持未決,直至向客戶端推送了所有請求的 內容。該不滿足實況視頻流傳輸?shù)囊?,尤其是低延時要求。
[0027] 因此,根據(jù)一個實施例,web服務器120可W被配置用于使用未依賴于引用者的推 送策略的低延時視頻流傳輸。例如,取代預計引用者U化的請求,web服務器120可W運用 來自客戶端的特殊推送標記符請求W確定推送的資源。在一些情況下,推送標記符可W是 輕量級httpGET請求,該請求指示客戶端130預計經由推送服務從web服務器120接收的 開始段編號和結束段編號。另外,在一些情況下,客戶端130可W使用推送標記符作為單向 消息而未預計或者同步地等待響應。W該一方式,推送的內容未被未決推送標記符請求阻 止,并且因而實況視頻流傳輸一旦第一視頻段變成可用就開始。另外,在一些情況下,可W 在流傳輸期間變化推送策略的執(zhí)行定時,從而使得服務器120可W-旦由內容封裝器110 生成了實況視頻段就可W逐個推送它們。
[002引在一個示例實施例中,視頻播放器132可W被配置為在由使用的低延時方案確定 的某些時間發(fā)送特殊推送標記符請求。一旦推送的內容152由瀏覽器134接收,就可W在 客戶端130的高速緩存150中存儲它。然后,在客戶端130請求已經推送的內容152時,它 可W從它的高速緩存獲得內容152而無需向web服務器120發(fā)送另一請求。
[002引示例椎潑策略
[0030] 圖2圖示了根據(jù)本發(fā)明的一個實施例的、用于示例請求-響應視頻流傳輸推送策 略的流程圖200。在該一示例中,描述了全推送策略。利用全推送策略,客戶端130僅發(fā)布 對于整個實況視頻流的一個請求。在接收請求時,服務器120 -旦視頻段就緒就主動推送 所有視頻段。服務器120可W在沒有對于視頻流的進一步請求時連續(xù)地向客戶端130推送 段。例如,客戶端130可W向服務器120發(fā)送對于視頻流的段1至n的請求(202),其中n 代表視頻的最后段。對于實況視頻,n可W不確定、直至實況事件已經結束。另外,n可W根 據(jù)每個段的長度而變化。響應于請求(202),服務器120可W在每個段被生成或者W別的方 式變成可用于向客戶端130推送時推送段1 (204)、段2 (206)等等直至段n(208)。
[0031] 圖3圖示了根據(jù)本發(fā)明的一個實施例的、用于示例請求-響應視頻流傳輸推送策 略的流程圖300。在該一示例中,描述了無推送策略。利用無推送策略,客戶端130發(fā)布對 于實況視頻流中的每個段的一個請求。在接收請求時,服務器120僅推送請求的視頻段。 服務器120將不會在沒有對于視頻流