本發明屬于多媒體云計算領域,涉及到HTTP自適應流媒體直播技術,特別是涉及到一種QoE驅動的HTTP自適應流媒體直播服務器集群部署方法。
背景技術:
隨著互聯網技術的飛速發展,各種智能終端的普及,互聯網內容的傳輸協議HTTP(Hyper Text Transport Protocol,超文本傳輸協議)因其良好的兼容性、適配性和友好性逐漸開始替代傳統的流媒體傳輸協議(如RTSP,real time streaming protocol、實時流傳輸協議)成為流媒體服務提供商首選的傳輸協議。為了實現流媒體數據的自適應傳輸,HTTP自適應流媒體服務器需要將同一內容的節目源編碼成多個不同質量級別的流媒體數據,并將同一個質量級別的流媒體數據切個成若干時間上連續、不重疊的片段,通過HTTP協議分發,以適應不同設備和不同網絡環境,提高用戶使用流媒體服務的體驗質量(QoE,Quality of Experience)。
提高自適應流媒體服務QoE的方法大致分為三類:
1)客戶端:在流媒體播放器內實現獲取流媒體數據的自適應邏輯,讓播放器在網絡環境允許的情況下,盡可能的獲取高質量級別的流媒體片段,同時減少播放卡頓。
2)網絡端:優化通信網絡的傳輸質量,比如提供服務質量QoS(QualityofService)保證,提高網絡傳輸帶寬、穩定性,減少網絡丟包,降低網絡傳輸延遲等。
3)服務端:通過選擇合適的流媒體片段時長,配置合適的流媒體輸出編碼集等措施提高QoE。
據申請人檢索和查新,檢索到的以下幾篇與本發明相關的屬于HTTP自適應流媒體直播領域的專利,它們分別是:
1.發明專利201510309733.8,基于動態自適應碼率傳輸協議HLS流媒體的直播方法和服務器;
2.發明專利201510372018.9,流媒體直播調度方法、系統和調度服務器。
上述專利1中,發明人公開了一種基于動態自適應碼率傳輸協議HLS流媒體的直播方法和服務器,在所述專利中的服務器根據網絡屬性信息確定初始片段時長和初始編碼速率,如果網絡環境較好,則提供較短的直播延時和盡量高的流媒體的視頻清晰度,如果網絡環境較差,盡量保證直播連貫,提供盡可能好的用戶體驗,但是并未從整個服務平臺總體考慮直播服務的QoE,以及沒有相應的QoE量化模型。
上述專利2中。發明人公開了一種流媒體直播調度方法、系統和調度服務器,在所述專利中調度服務器對核心機組中核心節點服務器的運行狀況進行監測;當調度服務器接收到發布點服務器推送的直播流請求時,根據核心機組中核心節點服務器的運行狀況,從核心機組中選取可用的核心節點服務器,將選取的核心節點服務器的信息發送至發布點服務器,發布點服務器在接收到所述核心節點服務器的信息時,將直播流發布至所述選取的核心節點服務器上;持久化存儲選取的核心節點服務器和直播流之間的映射關系,從而實現核心節點的高效配置,節約了部署成本,但是未考慮影響用戶體驗質量的直播流的輸出視頻集合。
技術實現要素:
為了克服上述現有技術的不足,本發明公開了一種QoE驅動的HTTP自適應流媒體直播服務器集群部署方法,以直播頻道QoE模型為基礎,利用不同質量級別直播視頻間實時轉碼的資源消耗矩陣,在有限物理機資源約束下,為運行直播頻道的虛擬機選擇合適的物理機位置,分配相應的物理機資源,并配置能使直播頻道QoE最大化的輸出視頻集合,解決在有限物理機資源成本環境下最大化直播平臺QoE的流媒體直播服務器集群部署問題。
為了實現上述目的,本發明采用的技術方案是:
構建直播頻道QoE量化模型和不同質量級別的直播視頻間實時轉碼的資源消耗代價矩陣,在已知用戶帶寬累積分布、直播頻道輸入的直播視頻源的質量級別和物理資源分布的情況下,根據直播頻道不同質量級別的輸出視頻集合配置策略、資源消耗代價矩陣和直播頻道QoE量化模型分配并部署直播服務虛擬機,實現直播服務QoE的最大化。
所述直播頻道QoE量化模型構建步驟如下:
Step1:設置直播服務平臺直播視頻質量級別自適應集合M={r1,r2,...,ri,...,rn},不同質量級別的直播視頻以碼率ri作為區分標志,視頻質量級別i越高表示體驗質量越好,直播視頻碼率ri越大,其中1≤i≤n,;
Step2:設置直播頻道t的不同質量級別的輸出視頻集合Ot={s1,s2,...,si,...,sm}且m≥1,s1=r1,
Step3:獲取用戶帶寬累積分布函數F(x),其表示用戶帶寬值小于x時的概率;
Step4:以直播視頻的碼率衡量用戶觀看直播視頻的QoE,按公式(1)量化計算直播頻道t的QoE值Qt,相應公式如下:
其中α,β為權重參數。
所述不同質量級別直播視頻間實時轉碼的資源消耗代價矩陣構建步驟如下:
Step1:按照直播服務平臺直播視頻質量級別自適應集合M構建n個不同質量級別的視頻片段,視頻質量級別為i的視頻片段時長為li;
Step2:將任意視頻質量級別為i的視頻片段離線轉碼為視頻質量級別為j的視頻片段,且滿足i>j,同時記錄離線轉碼消耗的時間主機在離線轉碼期間的平均CPU占用率ci,j,主機CPU核心數c0;
Step3:生成直播視頻質量級別自適應集合M對應的實時轉碼資源消耗矩陣Cn×n,其元素C(i,j)表示視頻質量級別為i的直播視頻實時轉碼為視頻質量級別為j的直播視頻時對主機CPU一個核心的占用率,計算方法如下公式所示:
其中-1表示無意義的轉碼。
所述直播頻道不同質量級別的輸出視頻集合配置方法具體步驟如下:
Step1:獲取直播頻道t的輸入視頻質量級別i(i>2),獲取用戶帶寬累積分布函數F(x),視頻質量級別自適應集合M對應的實時轉碼資源消耗矩陣Cn×n以及物理機CPU可用核心數ca;
Step2:添加視頻質量級別為1的視頻到輸出視頻集合Ot,即Ot={s1},更新物理機CPU可用核心數ca=ca-C(i,1);
Step3:選擇視頻質量級別為j(1<j<i)的視頻,將其加入到輸出視頻集合Ot中,即Ot=Ot∪{sj},使得直播頻道t的QoE值的增量ΔQt最大化,滿足公式:
Step4:更新物理機CPU可用核心數ca=ca-C(i,j);
Step5:重復Step3和Step4,直到物理機CPU可用核心數ca小于或等于0,或者所有質量級別比i小的視頻都已經加入到了輸出視頻集合中。
所述直播服務虛擬機的部署放置方法具體步驟如下:
Step1:獲取得H個不同固定直播頻道的輸入視頻質量級別信息,即直播頻道Hi對應質量級別為Li,獲取N個物理機可用CPU核心數信息,即物理機Pj對應可用CPU核心數為
Step2:假設每個直播頻道Hi配置的不同視頻質量級別的輸出視頻集合包含1到Li-1,按所述直播頻道QoE量化模型和不同質量級別直播視頻間實時轉碼的資源消耗代價矩陣為直播頻道Hi計算其QoE值Qi和其所消耗的CPU資源Ci;
Step3:將所有直播頻道按照Step2中所計算的QoE值Qi遞減排序;
Step4:按Step3中對直播頻道排序的順序為每個直播頻道Hi創建直播服務虛擬機Vi,選擇剩余可用CPU資源最多的物理機Pj作為其部署環境,更新物理機Pj的可用CPU核心數并設置部署矩陣Dm×n中元素D(i,j)=1;
Step5:對部署在物理機Pj上所有的直播服務虛擬機按其對應直播頻道消耗CPU資源的比例分配CPU資源,記直播服務虛擬機Vi可得到的CPU資源為
Step6:按所述直播頻道不同質量級別的輸出視頻集合配置方法對這H個直播頻道分別配置輸出視頻集合。
與現有技術、方法相比,本發明的特點在于從服務端考慮HTTP自適應流媒體直播服務的QoE,構建了直播頻道QoE量化模型和不同質量級別直播視頻間實時轉碼的資源消耗代價矩陣,為服務器端的資源分配和調度提供了依據,在部署直播服務虛擬機時優先考慮放置能給直播平臺提供更大QoE的直播頻道對應的虛擬機,從而在物理機資源有限的情況下,最大程度上提高直播服務給用戶帶來的QoE。
附圖說明
圖1為本發明中不同質量級別直播視頻間實時轉碼的資源消耗代價矩陣構建工作流程圖。
圖2為本發明中直播頻道不同質量級別的輸出視頻集合配置方法流程圖。
圖3為本發明中直播服務虛擬機的部署放置方法流程圖。
具體實施方式
下面結合附圖和實施例詳細說明本發明的實施方式。
參考圖1,本發明一種QoE驅動的HTTP自適應流媒體直播服務器集群部署方法,具體實施按照以下步驟完成:
1.首先設置直播服務平臺直播視頻質量級別自適應集合M={r1,r2,...,ri,...,rn},1≤i≤n,不同質量級別的直播視頻以碼率ri作為區分標志,視頻質量級別i越高表示體驗質量越好,直播視頻碼率ri越大;
2.其次設置直播頻道t的不同質量級別的輸出視頻集合Ot={s1,s2,...,si,...,sm}且m≥1,s1=r1,
3.然后需要獲取用戶帶寬累積分布函數F(x),其表示用戶帶寬值小于x時的概率;
4.緊接著,以直播視頻的碼率衡量用戶觀看直播視頻的QoE,按以下公式量化計算直播頻道t的QoE值Qt,公式如下:
其中α,β為權重參數。
其中:不同質量級別直播視頻間實時轉碼的資源消耗代價矩陣構建步驟如下:
1)按照直播服務平臺直播視頻質量級別自適應集合M構建n個不同質量級別的視頻片段,視頻質量級別為i的視頻片段時長為li;
2)將任意視頻質量級別為i的視頻片段離線轉碼為視頻質量級別為j的視頻片段,且滿足i>j,同時記錄離線轉碼消耗的時間主機在離線轉碼期間的平均CPU占用率ci,j,主機CPU核心數c0;
3)生成直播視頻質量級別自適應集合M對應的實時轉碼資源消耗矩陣Cn×n,其元素C(i,j)表示視頻質量級別為i的直播視頻實時轉碼為視頻質量級別為j的直播視頻時對主機CPU一個核心的占用率,計算方法如以下公式所示:
其中-1表示無意義的轉碼。
參考圖2,直播頻道不同質量級別的輸出視頻集合配置方法具體步驟如下:
1)獲取直播頻道t的輸入視頻質量級別i(i>2,輸出視頻質量級別小于輸入視頻,i為1時不能得到有效輸出視頻),獲取用戶帶寬累積分布函數F(x),視頻質量級別自適應集合M對應的實時轉碼資源消耗矩陣Cn×n以及物理機CPU可用核心數ca;
2)添加視頻質量級別為1的視頻到輸出視頻集合Ot,即Ot={s1},更新物理機CPU可用核心數ca=ca-C(i,1);
3)選擇視頻質量級別為j(1<j<i)的視頻,將其加入到輸出視頻集合Ot中,即Ot=Ot∪{sj},使得直播頻道t的QoE值的增量ΔQt最大化,滿足公式如下:
4)更新物理機CPU可用核心數ca=ca-C(i,j);
5)重復Step3和Step4,直到物理機CPU可用核心數ca小于或等于0,或者所有質量級別比i小的視頻都已經加入到了輸出視頻集合中。
參考圖3,直播服務虛擬機的部署放置方法具體實施步驟如下:
1)獲取H個不同固定直播頻道的輸入視頻質量級別信息,即直播頻道Hi對應質量級別為Li,獲取N個物理機可用CPU核心數信息,即物理機Pj對應可用CPU核心數為
2)假設每個直播頻道Hi配置的不同視頻質量級別的輸出視頻集合包含1到Li-1,按所述直播頻道QoE量化模型和不同質量級別直播視頻間實時轉碼的資源消耗代價矩陣為直播頻道Hi計算其QoE值Qi和其所消耗的CPU資源Ci;
3)將所有直播頻道按照(2)中所計算的QoE值Qi遞減排序;
4)按(3)中對直播頻道排序的順序為每個直播頻道Hi創建直播服務虛擬機Vi,選擇剩余可用CPU資源最多的物理機Pj作為其部署環境,更新物理機Pj的可用CPU核心數并設置部署矩陣Dm×n中元素D(i,j)=1;
5)對部署在物理機Pj上所有的直播服務虛擬機按其對應直播頻道消耗CPU資源的比例分配CPU資源,記直播服務虛擬機Vi可得到的CPU資源為
6)按所述直播頻道不同質量級別的輸出視頻集合配置方法對這H個直播頻道分別配置輸出視頻集合。