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