本發明的領域涉及從服務器向客戶端自適應流傳輸(streaming)媒體內容。本發明尤其涉及向客戶端自適應流傳輸媒體內容的服務器,從服務器向客戶端自適應流傳輸媒體內容的方法,以及被配置為執行所述方法中步驟的計算機程序產品。
背景技術:
近些年,對媒體內容,例如視頻和/或音頻內容進行流傳輸的需求快速增長。尤其是,過頂(over the top,OTT)視頻傳輸應用(例如,YouTube和NetFlix)的數量快速增長。OTT內容傳輸指的是通過公共網絡傳輸內容。
尤其是HTTP自適應流(HAS)正快速成為最流行的媒體內容流傳輸方法。HAS的一個主要優點是其能夠使視頻質量適應網絡帶寬(BW)條件,從而避免視頻再緩沖,導致播放卡頓。
HTTP自適應流傳輸技術包括平滑流傳輸(微軟),HTTP實時流媒體(蘋果)和HTTP動態自適應流媒體(MPEG-DASH)。在本發明的背景下,使用術語HAS指代所有這些HTTP自適應流媒體技術。此外,術語HAS還指代SPDY協議流媒體,該協議與HTTP協議相關。
盡管HAS與漸進下載遺留方法相比而言前進了一大步,但是終端用戶的體驗質量(QoE)仍可改善。特別地,傳統的HAS方式仍然會偶然出現卡頓。
技術實現要素:
本發明實施方式的目的是減少播放卡頓的出現,從而改善從服務器向客戶端自適應流傳輸媒體內容。
根據本發明的一種實施方式,提供了一種向客戶端流傳輸媒體內容的服務器。舉例來說,所述媒體內容可以是視頻,音頻和/或文本。
所述媒體內容編碼為具有不同質量等級的至少兩個流。每個流包括連續的分段。所述服務器包括接收機和發射機。所述接收機被配置為從所述客戶端接收對所述至少兩個流中的第一流的選定分段的請求。所述發射機被配置為響應于對所述第一流的選定分段的所述請求,向所述客戶端發送所述第一流的選定分段。所述發射機還被配置為向所述客戶端推送所述至少兩個流中的第二流的相應分段,其中所述第二流的質量等級低于所述第一流。
換句話說,除了向客戶端發送所請求質量版本的選定分段,服務器還向客戶端推送較低質量版本的選定分段。
在拉取的高質量分段無法及時到達的情況下,通過在具有請求質量的版本之外還推送較低質量版本的質量建立了安全保障,從而降低緩沖器欠載運行和播放相應卡頓的風險。
例如,在傳統HAS方式中,當帶寬突然下降時可能出現緩沖器欠載運行。在最壞情況下,在一開始下載新的高質量分段(即,相對較大尺寸分段)時帶寬就突然下降。客戶端必須在能夠請求新的較低質量分段之前完成整個分段的下載。同時,客戶端將消耗客戶端緩沖器中存儲的分段。當最終接收到高質量分段時,緩沖器填充(filling)可能已經低于切換到較低質量的閾值(也稱為“恐慌(panic)”閾值)。客戶端將在下一個分段跳至最低質量。如果分段無法及時傳輸并且緩沖器耗盡,播放將出現卡頓。但是,在本發明的實施方式中,通過服務器推送使得較低質量版本的分段可用。
舉例來說,第二流可以是至少兩個流中的最低質量流。例如,媒體內容可以分別提供為300Kbps,1500Kbps和3Mbps的三個流。不論何時,只要請求1500Kbps或3Mbps的分段,發射機就可以推送300Kbps的分段(最低可用質量)。
在一種實施方式中,所述服務器被配置為根據支持服務器推送的網絡協議與所述客戶端通信。
使用網絡協議的一個好處是能夠利用網絡的現有基礎設施。此外,流的分段可以穿過防火墻傳輸而不存在問題。
在另一種實施方式中,所述網絡協議是HTTP協議或SPDY協議,優選為HTTP2.0或更高版本。
使用HTTP或SPDY協議的一個好處是能夠利用網絡的現有基礎HTTP設施。例如,可以重用HTTP服務器,HTTP代理和內容分發網絡(CDN)來傳輸HAS內容。此外,流的分段可以穿過防火墻傳輸而不存在問題。
在本發明的背景下,術語HTTP還包括HTTPS,因為從技術上講HTTPS是在SSL/TLS協議上構件的HTTP。
優選地,服務器被配置為使用支持服務器推送的基于HTTP的協議,例如HTTP2.0或更高版本,或SPDY協議進行HTTP自適應流傳輸。
在一種實施方式中,服務器可以被配置為在服務器和客戶端之間建立持久連接。例如,連接可以是TCP連接。
在一種實施方式中,所述發射機被配置為利用多路復用同時推送所述第二流的所述分段和所述第一流的所述分段。
特別地,HTTP2.0或更高版本,或SPDY協議具有HTTP能力。通過多路復用第一流和第二流的分段傳輸,較低質量版本分段和請求的質量版本同時可用。因此,在請求的質量版本出乎意料低(例如,由于帶寬突然下降)的情況下,客戶端有較低質量版本隨時可用。因此,可以防止播放卡頓。
在替代實施方式中,發射機被配置為在發送請求的分段,即第一流的分段之前推送較低質量分段,即第二流的分段。
在一種實施方式中,所述發射機被配置為向推送所述第二流的所述分段分配比推送所述第一流的所述分段更高的優先級。
特別地,HTTP2.0或更高版本,或SPDY協議提供優先級支持。
在一種實施方式中,所述發射機被配置為只有在所述第一流的質量等級超過質量閾值時才推送所述第二流的所述分段。
在一種實施方式中,所述發射機被配置為只有在所述服務器和所述客戶端之間的可用帶寬低于帶寬閾值時才推送所述第二流的所述分段。
在一種實施方式中,所述發射機被配置為只有在所述客戶端和所述服務器之間的往返時間(RTT)高于RTT閾值時才推送所述第二流的所述分段。
在一種實施方式中,所述服務器被配置為估計所述客戶端的緩沖器填充,所述發射機被配置為只有在估計的緩沖填充低于緩沖器閾值時才推送所述第二流的所述分段。
在一種實施方式中,所述服務器還包括追蹤器,該追蹤器被配置為追蹤向所述客戶端傳輸每個所請求分段的時間。所述發射機被配置為響應于對所述第一流的選定分段的所述請求,只有在追蹤的傳輸所述選定分段之前的分段的時間超過所述之前的分段的持續時間時才推送所述第二流的相應分段。
也就是說,只有在對于之前請求的推送時間超過之前請求分段的持續時間時,才響應于對較高質量分段的請求推送較低質量分段。因此,只有客戶端的緩沖器減少時服務器才推送分段。優選地,所述發射機被配置為在發送請求質量分段之前發送較低質量分段。
例如,客戶端請求VQ為3的分段n。服務器追蹤傳輸所述分段的時間。接下來,客戶端請求VQ>0(例如,VQ2或VQ3)的分段n+1。如果服務器確定傳輸分段n的時間超過了分段n的持續時間,則其將推送分段n+1VQ0。如果未滿足該條件,則不推送分段。
服務器還可以基于多個之前的分段的追蹤時間及它們的持續時間決定是否推送較低質量分段。
所述發射機可以被配置為只有在傳輸時間超過持續時間預定量,例如1至10秒時才推送較低質量分段。
需要注意的是,上述條件可以結合,例如,發射機可以被配置為只有在RTT高于RTT閾值且第一流的質量等級超過質量閾值時才推送第二流的分段。
本發明的其他實施方式涉及一種從服務器向客戶端自適應流傳輸媒體內容的方法。舉例來說,所述媒體內容可以是視頻,音頻和/或文本。
在一種實施方式中,所述媒體內容編碼為具有不同質量等級的至少兩個流。每個流包括連續的分段。所述方法包括服務器從所述客戶端接收對所述至少兩個流中的第一流的選定分段的請求的步驟。所述方法還包括響應于對所述第一流的選定分段的所述請求,從所述服務器向所述客戶端發送所述第一流的選定分段。所述方法還包括響應于對所述第一流的選定分段的所述請求,從所述服務器向所述客戶端推送所述至少兩個流中的第二流的相應分段,其中所述第二流的質量等級低于所述第一流。
在一種實施方式中,只有在所述第一流的質量等級超過質量閾值時才推送所述第二流的所述分段。
在一種實施方式中,只有在所述服務器和所述客戶端之間的可用帶寬低于帶寬閾值時才推送所述第二流的所述分段。
在一種實施方式中,只有在所述客戶端和所述服務器之間的往返時間RTT高于RTT閾值時才推送所述第二流的所述分段。
在一種實施方式中,所述方法還包括估計所述客戶端的緩沖器填充,其中只有在估計的緩沖器填充低于緩沖器閾值時才推送所述第二流的所述分段。
在一種實施方式中,所述方法包括追蹤向所述客戶端傳輸每個所請求分段的時間。在一種實施方式中,所述方法還包括響應于對所述第一流的選定分段的所述請求,只有在追蹤的傳輸所述選定分段之前的分段的時間超過所述之前的分段的持續時間時才推送所述第二流的相應分段。
還可以基于多個之前的分段的追蹤時間及它們的持續時間決定是否推送較低質量分段。追蹤向所述客戶端傳輸每個所請求分段的時間。
可以只有在傳輸時間超過持續時間預定量,例如1至10秒時才推送較低質量分段。
需要注意的是,上述條件可以結合,例如,只有在追蹤的之前分段的傳輸時間超過所述之前分段的持續時間且第一流的質量等級超過質量閾值時才推送第二流的分段。
本發明的其他實施方式涉及一種從服務器接收媒體內容的自適應流傳輸客戶端。
在一種實施方式中,所述媒體內容編碼為具有不同質量等級的至少兩個流。每個流包括連續的分段。所述客戶端包括速度確定組件,發射機,接收機和播放組件。所述速度確定組件被配置為確定所述服務器和所述客戶端之間的帶寬。所述速度確定組件還被配置為基于所確定的帶寬從所述至少兩個流的不同質量等級中選擇質量等級。所述發射機被配置為向所述服務器發送對第一流的選定分段的請求,所述第一流對應于選擇的所述質量等級。所述接收機被配置為接收所述服務器響應于所述請求而發送的具有所選擇質量等級的所述流的選定分段。所述接收機還被配置為接收所述至少兩個流中的第二流的推送分段,其中所述第二流的質量等級低于所述第一流。所述播放組件被配置為回放所述接收機接收的分段。所述客戶端被配置為如果所述帶寬低于之前確定的帶寬,則回放所述推送分段,而非所述第一流的相應分段。
根據本發明實施方式的客戶端的優點是可以在降低自適應流的VQ之前等待更長時間,承擔更多的風險,因為在帶寬降低的情況下有最低質量分段在本地可用。因此,客戶端可以提高平均質量等級。此外,傳統客戶端必須從客戶端請求較低質量版本分段,而根據本發明實施方式的客戶端可以立即使用推送的分段,因為該分段已經預先加載了。這可以進一步降低卡頓風險。
本發明的其他實施方式涉及一種自適應流傳輸客戶端從服務器接收媒體內容的方法。所述媒體內容編碼為具有不同質量等級的至少兩個流。每個流包括連續的分段。所述方法包括確定所述服務器和所述客戶端之間帶寬的步驟。所述方法還包括基于所確定的帶寬從所述至少兩個流的不同質量等級中選擇質量等級的步驟。所述方法還包括向所述服務器發送對第一流的選定分段的請求的步驟,所述第一流對應于選擇的所述質量等級。所述方法還包括接收所述服務器響應于所述請求而發送的具有所選擇質量等級的所述流的選定分段的步驟。所述方法還包括接收所述至少兩個流中的第二流的推送分段的步驟,其中所述第二流的質量等級低于所述第一流。所述方法還包括如果所述帶寬低于之前確定的帶寬,則播放所述推送分段的步驟,而非所述第一流的相應分段。
本發明的其他實施方式還涉及一種計算機程序產品,包括非瞬時性計算機可執行指令,所述計算機可執行指令被配置為當被執行時實施上述方法中的步驟。
上面相對于服務器描述的相同效果和優點也適用于方法和計算機程序產品。
附圖說明
附圖描述本發明的目前優選的非限制性示例實施方式。通過下面結合附圖所做的具體描述,可以更好地理解本發明的上述以及其它優點,特征和目的,在這些附圖中:
圖1顯示了典型HAS會話,其中圖1A顯示了加載狀態下的客戶端,圖1B顯示了穩定狀態下的線性流傳輸客戶端,圖1C顯示了穩定狀態下的視頻點播(VoD)客戶端。
圖2顯示了根據本發明實施方式的不同質量等級分段的傳輸。
圖3顯示了根據本發明實施方式,作為瀏覽器插件的HTTP自適應流傳輸客戶端。
圖4顯示了根據本發明實施方式,作為獨立應用程序的HTTP自適應流傳輸客戶端。
圖5顯示了根據本發明實施方式的內容分發網絡傳輸應用。
圖6顯示了本發明方法的第一實施方式的流程圖。
圖7顯示了本發明的方法第二實施方式的流程圖。
圖8顯示了本發明方法的第三實施方式的流程圖。
HAS實施方式(圖1A-C)包括服務器2和客戶端4。圖1A顯示了初始化狀態下的客戶端。客戶端4向服務器2發送“獲得清單”(GET manifest)請求。服務器做出響應,向客戶端返回清單文件。客戶端讀取清單文件。清單文件包括媒體內容流分段的元數據,并且可以包括其他信息,例如播放媒體內容所需的DRM數據。特別地,清單文件可以描述可用的質量等級。
在所示示例中,清單文件指示DRM數據可用。因此,通過向服務器2發送“獲得DRM信息”(GET DRM info)請求,客戶端請求DRM數據。需要注意的是,請求DRM數據及發送DRM數據是可選的,例如,媒體內容可能未受DRM保護。
接下來,客戶端4切換至夾在狀態,其中通過向服務器2發送請求,客戶端4請求具有所需質量等級的流的第一分段。質量等級可以是固定的初始等級,這對于客戶端是典型的,或者可以是基于可用帶寬和/或可用CPU能力確定的質量等級。
區分兩類流傳輸之間的區別:線性流傳輸(也稱為實時流傳輸)和視頻點播(VoD)流傳輸。在大多數線性流傳輸部署中,清單文件定期更新,以包括服務器提供的新分段。數線性流傳輸客戶端通常通過請求分段而開始新的播放,所述分段在線性流傳輸的生命周期中已經過去了D秒,從而填充客戶端的緩沖器。VoD客戶端通常選擇所請求VoD標題的第一分段。需要注意,對于VoD客戶端,清單文件是靜態的。
在加載狀態下,客戶端4將以按順序,但是比播放速度快的方式檢索所請求的分段。在以比播放速度快的方式接收到的每個分段下載好之后,客戶端的播放緩沖器將增加。在該狀態下,線性流傳輸客戶端將穩步趕上線性流傳輸。
一旦緩沖器包括足以確保連續播放的分段,客戶端4將達到穩定狀態。對于線性流傳輸客戶端4(圖1B),當客戶端4在實時流傳輸的最新分段在服務器2上變得可用時就幾乎直接檢索所述最新分段時,緩沖器將達到大約為D秒的值。通常,客戶端4將定期取得新的清單文件。一旦新的清單文件指示新的分段可以下載,線性流傳輸客戶端4就將檢索所述芯的分段。
對于VoD客戶端4(圖1C),穩定狀態下的行為是不同的。當達到某個緩沖器水平(例如,30秒)時,客戶端4將在兩個分段檢索之間增加額外的等待時間,從而不超過所述緩沖器水平。
在示例性實施方式中(圖2),服務器2有可用的3Mbps高質量流A和300Kbps最低質量流B。當客戶端4請求高質量流A的分段時,服務器2做出響應,發送流A的請求分段。此外,服務器2將向客戶端4推送流B的相應分段。如圖所示,當流A的分段1被請求時,流B的分段1也被推送。當流A的分段2被請求時,流B的分段2也被推送。在所示實施例中,服務器2以比流A的分段更高的優先級推送流B的分段,確保在(例如)帶寬突然下降的情況下,低質量分段作為“安全保障”對于客戶端4可用。在所示實施例中,服務器2采用HTTP2.0優先化。此外,圖2顯示了可以利用(例如)HTTP多路復用對流多路復用。
圖3顯示了服務器2和客戶端4,其中客戶端4包括瀏覽器6和瀏覽器插件8以獲得HAS能力。插件8只能通過到瀏覽器的明確定義的軟件接口請求對象。在一些實施方式中,可能不存在接口通知插件8服務器2向瀏覽器6推送了對象。瀏覽器6將只是將對象增加到瀏覽器緩存中。當插件8稍后請求推送的對象時,瀏覽器直接從本地緩存中提供所請求的對象。
插件8包括與客戶端緩沖器12通信的速度確定算法(RDA)組件10。客戶端緩沖器與播放組件14可操作地連接。瀏覽器6包括瀏覽器緩存。在所示實施例中,客戶端4從服務器2流傳輸視頻內容。視頻內容以不同比特率編碼,所述不同比特率對應于不同視覺質量(VQ)。在下面的實施例中,最低VQ為VQ0,最高VQ為VQ3。
通過RDA組件10和瀏覽器6向服務器2發送“獲得VQ為3的分段n”(GET seg n VQ3)請求,客戶端從服務器2請求具有視覺質量VQ3的分段n。服務器2做出響應,向瀏覽器6發送所請求的分段“Seg n VQ3”。瀏覽器6將分段傳輸給RDA組件10。服務器2還響應于請求向瀏覽器緩存16推送具有質量VQ0的分段。推送的分段18保持在瀏覽器緩存中,因此在RDA組件10向瀏覽器發送對所述分段的相應請求時,所述分段可以傳輸給插件8。(例如)在以高質量VQ3下載分段n時出現帶寬突然下降的情況下,客戶端4可以發送該請求。由于推送的分段18已經位于瀏覽器緩存16中,瀏覽器可以直接將分段18返回給RDA組件10。
在所示實施方式中,瀏覽器6不允許對象直接從服務器2推送至插件8。但是,本發明不限于所述實施方式。本領域技術人員理解,所有現有和將來瀏覽器中可能不存在瀏覽器插件接口(例如,NPAPI接口)的限制。例如,瀏覽器可包括對HAS的原生支持,不需要HAS插件8。
圖4顯示了服務器2和客戶端4,其中客戶端4實現為集成的獨立應用程序。因此,和圖3所示實施方式對比,當服務區2推送對象時,RDA組件10直接得到通知。在該實施例中,客戶端4請求具有視覺質量VQ2的分段n,服務器2應該請求返回請求的分段,并向客戶端推送具有VQ0的較低質量分段n。
圖5顯示了內容分發網絡(CDN)傳輸應用2的實施方式。CDN傳輸應用2包括與緩存22通信的HTTP服務器20。HTTP服務器20還與CDN內部通信客戶端(CICC)24通信。CICC24與緩存22通信。HTTP服務器20還與HAS安全推送算法組件(HSPA)通信,HSPA可選地包括存儲器組件28,該存儲器組件28用于存儲客戶端狀態和/或會話狀態,用于其算法的輸入。CDN傳輸應用還可包括可由HSPA訪問的配置文件30。HSPA組件26還與緩存22通信。客戶端節點4包括HTTP客戶端32。HTTP服務器組件20處理與客戶端的HTTP通信。HTTP服務器20從客戶端接收GET請求。HTTP服務器20執行檢查,以證實所請求的對象,例如分段,是否已經存在于緩存22中。如果存在,它將把對象提供給客戶端4。如果不存在,它將通知CDN內部通信客戶端24從上游CDN節點取得對象。如果在緩沖22中未找到對象,則CICC從上游CDN節點取得對象。當CICC全部或部分獲得所請求的對象時,它將通知HTTP服務器20。HTTP服務器20將處理通過HTTP客戶端32向客戶端4的傳輸。
每當HTTP服務器接收到HTTP請求或響應時,稱為HAS安全推送算法(HSPA)的功能塊將得到通知。HSPA組件26將忽視所有與HAS無關的請求/響應。如果請求/響應與HAS有關,其將使用一個或多個算法來決定是否有,以及哪個額外對象必須被推送給正在請求的客戶端。在該特定實施例中,HSPA組件26確定最低VQ分段是否必須被推送給正在請求的客戶端。它命令HTTP服務器20通過服務器推送來傳輸額外的分段。
HSPA 26可以采用不同策略來決定何時推送較低質量分段。其可以連續推送較低質量分段,例如,如果請求了較高質量分段,則總是推送最低質量分段。替代地,當請求的質量高于某個閾值時,其可以只推送較低質量分段,例如,最低質量分段。
此外,當滿足某些條件時,例如,當客戶端有卡頓風險時,HSPA 26可以至推送較低質量分段。例如:
-節點和客戶端之間的可用帶寬落到低于某個帶寬閾值。
-客戶端和服務器之間的RTT超過某個RTT閾值。
-估計的客戶端的緩沖器填充落到低于某個緩沖器閾值。服務器使用“HAS會話重建”技術獲得客戶端緩沖器閾值的估值。
-先前分段或一組先前分段的傳輸時間大于至少一個先前分段的相應播放持續時間。這意味著客戶端緩沖器縮小。
-服務器可以使用上述條件的組合來做出決定。
在本發明方法的一種實施方式中,服務器在步驟S100中接收對質量等級為VQ3的分段n的請求。服務器做出響應,在步驟S102中發送質量等級為VQ3的分段,并在步驟S104中發送質量等級為VQ0的分段n。或者,步驟S102和S104可以按相反順序執行,或利用多路復用同時執行。
在一種實施方式中,在步驟S112中,服務器確定請求的分段的質量,例如視頻質量是否超過質量閾值(圖7)。如果未超過,則服務器不推送額外分段。如果請求的質量超過閾值,則服務器在步驟S114中還推送具有最低質量,例如VQ0的相應分段。
在一種實施方式中,服務器在步驟S112a中確定服務器和客戶端之間的帶寬是否低于帶寬閾值(圖8)。在步驟S112b中,服務器確定RTT是否超過RTT閾值。在步驟S112c中,服務器估計客戶端的緩沖器填充,并確定估計的緩沖器填充是否低于緩沖器閾值。在步驟S112d中,服務器基于步驟S112a,S112b和/或S112c的結果確定分段是否必須被推送。需要注意的是,服務器可以采用步驟S112a,S112b和S112c的任意組合。例如,服務器可以只執行步驟S112a和S112b,并基于這兩個步驟的結果確定是否推送分段VQ0。如果服務器確定要推送分段,則在最后的步驟S114中,服務器將推送具有視頻質量VQ0的分段。
本領域技術人員很容易認識到,上述不同方法的步驟可以由程控計算機和/或具有計算能力的電子設備執行。在此,一些實施方式還涵蓋如數字數據存儲介質這樣的程序存儲裝置,程序存儲裝置為可由機器或計算機讀取,并且編碼可由機器或計算機執行的指令程序,其中所述指令執行上述方法的一些或所有步驟。例如,程序存儲裝置可以是數字存儲器,諸如磁盤和磁帶這樣的磁性存儲介質,硬盤,或光學可讀的數字數據存儲介質。實施方式還涵蓋編程為執行上述方法中步驟的計算機和/或具有計算能力(硬編碼或軟編碼)的電子設備。所有附圖,包括功能框中所示的各種元素的功能可以通過使用專用硬件和與合適軟件相關的能夠執行軟件的硬件來實現。硬件可包括,但是不限于數字信號處理器(DSP)硬件,專用集成電路(ASIC),現場可編程門陣列(FPGA),用于存儲軟件的只讀存儲器(ROM),隨機存取存儲器(RAM)和非易失存儲器。還可以包括其他傳統和/或定制硬件。類似地,圖中示出的所有開關僅僅是概念上的。它們的功能可以通過程序邏輯的運算,通過專用邏輯,通過程序控制和專用邏輯的交互執行。
本領域技術人員可以理解,本文中的任何框圖代表體現本發明原理的說明性電路的概念視圖。同樣,可以理解的是,任何流程圖均代表各種程序,這些程序可以隨后被呈現在計算機可讀的介質中,并由計算機或處理器執行,而不管該計算機或處理器是否被明確地示出。
盡管上面以特定實施方式描述了本發明的原理,但是,應該清楚的理解,該說明僅僅作為例子,不對由所附權利要求限定的本發明的保護范圍構成限制。