本發(fā)明涉及電子技術(shù),尤其涉及一種流媒體碼率自適應(yīng)方法及裝置、服務(wù)器、終端。
背景技術(shù):
先來介紹一下自適性串流技術(shù),自適性串流技術(shù)(ABS,adaptive bitrate streaming)是一種用于計算機網(wǎng)絡(luò)的流媒體傳輸技術(shù)。過去的流媒體傳輸技術(shù)大多基于實時傳輸協(xié)議(RTP,Real-time Transport Protocol)或?qū)崟r流傳輸協(xié)議(RTSP,Real Time Streaming Protocol)協(xié)議,而現(xiàn)在的傳輸技術(shù)則大多基于超文本傳輸協(xié)議(HTTP,Hyper Text Transfer Protocol),而且從協(xié)議設(shè)計上,更好地支持了大型分布式HTTP網(wǎng)絡(luò)(例如互聯(lián)網(wǎng))。
該技術(shù)通過實時地檢測用戶的接入帶寬和設(shè)備的中央處理器(CPU)使用率,從而調(diào)整視頻流的編碼質(zhì)量。為實現(xiàn)這種效果,需要使用將單一視頻源輸出為多碼率的編碼器。播放器的客戶端能夠根據(jù)可用資源的變化在不同碼率的視頻流之間進行切換。該技術(shù)可以減少流媒體播放過程中的緩沖時間和啟動時間,為不同接入條件的用戶提供更佳的用戶體驗。
從現(xiàn)今被廣泛采用的技術(shù)方案上來看,自適應(yīng)串流技術(shù)普遍采用基于HTTP協(xié)議的傳輸方案,視頻內(nèi)容進行多碼率處理,且這些多碼率的視頻被切片成幾秒鐘的小文件。客戶端先獲取所有碼率的切片索引信息,并從最低碼率的視頻流開始請求。隨著播放的進行,若客戶端的下載速度慢于當(dāng)前請求的切片碼率,則轉(zhuǎn)而請求下一個較低的碼率(如果還有的話)。相反地,如果下載速度高于當(dāng)前請求的切片碼率,那么它將嘗試請求更高碼率的切片文件。
切片大小和具體的實現(xiàn)方案密切相關(guān),長度一般在2~10秒之間。每個切 片由一個完整的畫面組(GOP,Group of Pictures)序列組成,一個GOP序列里面有1個或者多個I幀,GOP序列的第一個幀必須是I幀,以便與每個切片都能單獨的解碼播放顯示。
下面介紹一下QoE,用戶體驗質(zhì)量(Quality of Experience,簡稱QoE)是用戶關(guān)于服務(wù)(如網(wǎng)頁瀏覽、語音電話、電視廣播)主觀體驗的量化,其中影響QoE的因素如表1所示。
表1影響QoE的主要因素表
目前,在研究中使用最廣泛地用戶體驗量化指標(biāo)為平均用戶滿意度打分即(MOS,Mean Opinion Score),是定性的量化指標(biāo)。MOS采用五個等級的用戶主觀評價分?jǐn)?shù),用1到5分來代表業(yè)務(wù)的很差、較差、一般、較好和很好地不同級別用戶體驗質(zhì)量。用戶主觀滿意度和MOS對應(yīng)如表2所示。
表2用戶主觀滿意度和MOS對應(yīng)表
目前較為廣泛采用的ABS技術(shù)有:1)Apple HLS,2)MPEG-DASH,3)Adobe HDS和4)Microsoft MSS;下面Apple HLS傳輸協(xié)議為例進行說明,該Apple HLS協(xié)議由蘋果公司提出,是一種基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議。Apple HLS協(xié)議的工作原理是把整個媒體流切片成基于HTTP文件的大小來下載??蛻舳丝梢栽诓シ琶襟w流的過程中,客戶端可以更具可用資源的變化,從眾多碼率不同的備用源進行下載。在開始一個流媒體會話時,客戶端會下載一個包含元數(shù)據(jù)的extended M3U(m3u8)playlist文件,用于尋找可用的媒體流。與實時傳輸協(xié)議(RTP)不同,HLS可以穿過任何允許HTTP數(shù)據(jù)通過的防火墻或者代理服務(wù)器。因此,它很容易使用內(nèi)容分發(fā)網(wǎng)絡(luò)來傳輸媒體流。
以Apple HLS為代表的自適應(yīng)串流技術(shù)雖然可以根據(jù)用戶信道狀況對應(yīng)地提供差異化的視頻服務(wù),其重要性在用戶信道狀況發(fā)生顯著變化時顯得尤為突出,可以顯著地改善用戶對視頻業(yè)務(wù)的體驗質(zhì)量(QoE)。然而,該技術(shù)方案的缺點在于用戶與編碼器之間缺少前向反饋機制。對于多播類的視頻業(yè)務(wù),這個缺點十分明顯,因為對于多播類視頻業(yè)務(wù)用戶而言,用戶的接入數(shù)量以及接入帶寬的分布情況往往是時變的。在缺少前向反饋機制的情況下,而這些信息不能及時地反饋給編碼器,導(dǎo)致整體用戶體驗不佳,且?guī)碛嬎阗Y源的浪費?,F(xiàn)在考慮一個比較極端的情況。比如當(dāng)所有用戶的接入帶寬長時間處于1Mbps以內(nèi),而編碼器還在進行最低1.5Mbps的編碼,這種情況下,用戶體驗必然十分糟糕!
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例為解決現(xiàn)有技術(shù)中存在的至少一個問題而提供一種流媒體碼率自適應(yīng)方法及裝置、服務(wù)器、終端,能夠提高用戶對視頻業(yè)務(wù)的體驗質(zhì)量。
本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:
第一方面,本發(fā)明實施例提供一種流媒體碼率自適應(yīng)方法,所述方法包括:
獲取終端的接入帶寬;
根據(jù)所述接入帶寬確定編碼碼率;
至少按照所述編碼碼率對流媒體進行多碼率編碼;
將多碼率編碼后的流媒體進行切片,將切片后的流媒體通過HTTP發(fā)送給終端。
第二方面,本發(fā)明實施例提供一種流媒體碼率自適應(yīng)方法,所述方法包括:
獲取自身的接入帶寬,并向服務(wù)器發(fā)送所述接入帶寬;
根據(jù)所述接入帶寬選擇具有第一碼率的切片文件;
通過m3u8中的統(tǒng)一資源定位符URL鏈接下載具有第一碼率的切片文件;
緩存所述切片文件。
第三方面,本發(fā)明實施例提供一種流媒體碼率自適應(yīng)方法,所述方法包括:
獲取終端的接入帶寬;
根據(jù)所述接入帶寬確定編碼碼率;
將所述編碼碼率發(fā)送給服務(wù)器中的編碼器。
第四方面,本發(fā)明實施例提供一種服務(wù)器,所述服務(wù)器包括判決器、編碼器和切片器,其中所述判決器包括第一獲取單元、確定單元和第二發(fā)送單元,其中:
所述第一獲取單元,用于獲取終端的接入帶寬;
所述確定單元,用于根據(jù)所述接入帶寬確定編碼碼率;
所述第二發(fā)送單元,用于將所述編碼碼率發(fā)送給編碼器;
所述編碼器,用于接收所述發(fā)送單元發(fā)送的編碼碼率,并至少按照所述編碼碼率對流媒體進行多碼率編碼;
所述切片器,用于將多碼率編碼后的流媒體進行切片,將切片后的流媒體通過HTTP發(fā)送給終端。
第五方面,本發(fā)明實施例提供一種終端,所述終端包括第二獲取單元、選擇單元、下載單元和緩存單元,其中:
所述第二獲取單元,用于獲取自身的接入帶寬,并向服務(wù)器發(fā)送所述接入帶寬;
所述選擇單元,用于根據(jù)所述接入帶寬確定具有第一碼率的切片文件;
所述下載單元,用于通過m3u8中的統(tǒng)一資源定位符URL鏈接下載具有第一碼率的切片文件;
所述緩存單元,用于緩存所述切片文件。
第六方面,本發(fā)明實施例提供一種流媒體碼率自適應(yīng)裝置,所述裝置包括第一獲取單元、確定單元和第二發(fā)送單元,其中:
所述第一獲取單元,用于獲取終端的接入帶寬;
所述確定單元,用于根據(jù)所述接入帶寬確定編碼碼率;
所述第二發(fā)送單元,用于將所述編碼碼率發(fā)送給服務(wù)器中的編碼器。
本發(fā)明實施例提供的一種流媒體碼率自適應(yīng)方法及裝置、服務(wù)器、終端,其中,獲取終端的接入帶寬;根據(jù)所述接入帶寬確定編碼碼率;至少按照所述編碼碼率對流媒體進行多碼率編碼;將多碼率編碼后的流媒體進行切片,將切片后的流媒體通過HTTP發(fā)送給終端;如此,能夠提高用戶對視頻業(yè)務(wù)的體驗質(zhì)量。
附圖說明
圖1為相關(guān)技術(shù)中HLS協(xié)議的架構(gòu)示意圖;
圖2-1為本發(fā)明實施例提供的HLS協(xié)議的架構(gòu)示意圖;
圖2-2為本發(fā)明實施例一流媒體碼率自適應(yīng)方法的實現(xiàn)流程示意圖;
圖2-3為本發(fā)明實施例一流媒體碼率自適應(yīng)方法的實現(xiàn)流程示意圖;
圖3為相關(guān)技術(shù)中HLS碼率適配流程示意圖;
圖4為本發(fā)明實施例三中基于QoE的HLS碼率自適應(yīng)流程示意圖;
圖5為本發(fā)明實施例中m3u8文件內(nèi)容示意圖;
圖6為本發(fā)明實施例四服務(wù)器的組成結(jié)構(gòu)示意圖;
圖7為本發(fā)明實施例五終端的組成結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進一步詳細闡述。
圖1為相關(guān)技術(shù)中HLS協(xié)議的架構(gòu)示意圖,如圖1所示,該HLS協(xié)議的架構(gòu)包括服務(wù)器110和客戶端120,在服務(wù)器110包括媒體編碼器111(Media Encoder)、流切片器112(Stream Segmenter)和源Web服務(wù)器113(Origin Web Server),輸入的音頻和視頻進入媒體編碼111,媒體編碼器111對輸入的音頻和視頻(媒體流)進行編碼,然后媒體編碼器111將編碼后的視頻和音頻(媒體流)發(fā)送給流切片器112,流切片器112基于HTTP文件的大小對視頻和音頻(媒體流)進行切片,然后流切片器112將切片后的視頻和音頻輸入到源Web服務(wù)器113,最后源Web服務(wù)器113通過HTTP發(fā)送給客戶端120。
圖2-1為本發(fā)明實施例提供的HLS協(xié)議的架構(gòu)示意圖,如圖2-1所示,該HLS協(xié)議的架構(gòu)包括服務(wù)器110和客戶端120,在服務(wù)器110包括媒體編碼器111(Media Encoder)、流切片器112(Stream Segmenter)、源Web服務(wù)器113(Origin Web Server)和確定器114,判決器114接收不同客戶端120上報的接入帶寬,根據(jù)一定算法進行計算得到最優(yōu)的編碼參數(shù),并將所述編碼參數(shù)發(fā)送給編碼器111;輸入的音頻和視頻進入媒體編碼器111,媒體編碼器111根據(jù)所述編碼參數(shù)對輸入的音頻和視頻(媒體流)進行多碼率編碼,然后媒體編碼器111將編碼后的視頻和音頻(媒體流)發(fā)送給流切片器112,流切片器112基于HTTP文件的大小對視頻和音頻(媒體流)進行切片,然后流切片器112將切片后的視頻和音頻輸入到源Web服務(wù)器,最后源Web服務(wù)器通過HTTP發(fā)送給客戶端120。
對比圖1和圖2-1,從系統(tǒng)整體結(jié)構(gòu)上看,本發(fā)明實施例提供的技術(shù)方案與相關(guān)技術(shù)中HLS方案相比,增加了一個判決器(Decision Device)114。該判決器114用于接收不同用戶上報的接入帶寬,根據(jù)一定算法進行計算得到最優(yōu)的編碼參數(shù),并將所述的編碼參數(shù)發(fā)送給編碼器111,然后編碼器對輸入的視頻和音頻進行多碼率編碼。
實施例一
基于前述的圖1和圖2-1,本發(fā)明實施例提供一種流媒體碼率自適應(yīng)方法,圖2-2為本發(fā)明實施例一流媒體碼率自適應(yīng)方法的實現(xiàn)流程示意圖,如圖2-2所示,該方法包括:
步驟S201,獲取終端的接入帶寬;
這里,所述終端包括多個,所述獲取終端的接入帶寬,包括:
步驟S2011,判決器接收兩個以上的終端發(fā)送的接入帶寬參數(shù)值;
步驟S2012,判決器對所述接入帶寬參數(shù)值進行統(tǒng)計,得到統(tǒng)計結(jié)果;
步驟S2013,判決器將所述統(tǒng)計結(jié)果作為所述終端的接入帶寬。
步驟S202,根據(jù)所述接入帶寬確定編碼碼率;
這里,判決器根據(jù)所述接入帶寬確定編碼碼率,包括:判決器根據(jù)接入帶寬查找預(yù)設(shè)的對應(yīng)關(guān)系,得到編碼碼率,其中,所述編碼碼率滿足下式:
其中,P()表示密度函數(shù)函數(shù),表示用戶的平均MOS分,max表示求最大值,g(si)表示從si到MOS分估計值之間的映射關(guān)系,si表示第i路的編碼碼率。
步驟S203,至少按照所述編碼碼率對流媒體進行多碼率編碼;
這里,至少按照所述編碼碼率對流媒體進行多碼率編碼,包括:
編碼器按照編碼參數(shù)對流媒體進行多碼率編碼,所述編碼參數(shù)至少包括編碼碼率、幀率。
步驟S204,將多碼率編碼后的流媒體進行切片,將切片后的流媒體通過HTTP發(fā)送給終端。
這里,切片器對多碼率編碼后的流媒體進行切片,其中編碼器和切片器都是服務(wù)器的一部分。
本發(fā)明實施例中,本發(fā)明實施例提供的方法可以用于服務(wù)器端,上述的判 決器可以作為服務(wù)器的一部分,也可以作為獨立的裝置。服務(wù)器中的判決器獲取終端的接入帶寬;對應(yīng)地,所述判決器根據(jù)所述接入帶寬確定編碼碼率,然后所述判決器將所述編碼碼率發(fā)送給服務(wù)器中的編碼器;對應(yīng)地,所述編碼器接收所述編碼碼率,并至少按照所述編碼碼率對流媒體進行多碼率編碼。
本發(fā)明實施例中,其中,獲取終端的接入帶寬;根據(jù)所述接入帶寬確定編碼碼率;至少按照所述編碼碼率對流媒體進行多碼率編碼;將多碼率編碼后的流媒體進行切片,將切片后的流媒體通過HTTP發(fā)送給終端;如此,能夠提高用戶對視頻業(yè)務(wù)的體驗質(zhì)量。
實施例二
基于前述的圖1和圖2-1,本發(fā)明實施例提供一種流媒體碼率自適應(yīng)方法,應(yīng)用于終端,該方法所實現(xiàn)的功能可以通過終端中的處理器調(diào)用程序代碼來實現(xiàn),當(dāng)然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該終端至少包括處理器和存儲介質(zhì)。
圖2-3為本發(fā)明實施例二流媒體碼率自適應(yīng)方法的實現(xiàn)流程示意圖,如圖2-3所示,該方法包括:
步驟S231,獲取自身的接入帶寬,并向服務(wù)器發(fā)送所述接入帶寬;
這里,終端測量自身的接入帶寬,然后將接入帶寬發(fā)送給服務(wù)器。
步驟S232,根據(jù)所述接入帶寬選擇具有第一碼率的切片文件;
這里,所述根據(jù)所述接入帶寬選擇切片文件的碼率,包括:根據(jù)所述接入帶寬查找預(yù)設(shè)的對應(yīng)關(guān)系,得到第一碼率,其中所述對應(yīng)關(guān)系用于表征接入帶寬與m3u8中的碼率值之間成正比例的關(guān)系。
步驟S233,通過m3u8中的統(tǒng)一資源定位符(URL)鏈接下載具有第一碼率的切片文件;
步驟S234,緩存所述切片文件。
實施例三
基于前述的圖1和圖2-1,下面從信令交互的角度來看具體變化,圖3為相關(guān)技術(shù)中HLS碼率適配流程示意圖,圖4為本發(fā)明實施例三中基于QoE的HLS碼率自適應(yīng)流程示意圖,下面先看相關(guān)技術(shù)中HLS碼率適配流程,如圖3所示,該流程包括:
步驟S301,服務(wù)器進行HLS發(fā)布,以待用戶訪問該直播視頻;
這里,服務(wù)器中的編碼器會將輸入的視頻和音頻生成m3u8文件,然后對m3u8文件進行多碼率編碼,然后切片器對多碼率編碼后的文件進行切片。
步驟S302,客戶端訪問該直播視頻;
這里,客戶端對服務(wù)器發(fā)起視頻請求,然后用戶通過客戶端訪問該直播視頻。
步驟S303,客戶端從服務(wù)器下載m3u8文件;
這里,服務(wù)器響應(yīng)步驟S302中的視頻請求,然后服務(wù)器向客戶端發(fā)送m3u8文件。
步驟S304,客戶端根據(jù)接入帶寬選擇碼率合適的切片文件;
這里,客戶端測量接入帶寬,與m3u8中的碼率值進行比對,選擇碼率合適的切片文件;
步驟S305,客戶端通過m3u8中的統(tǒng)一資源定位符(URL)鏈接,下載切片文件;
這里,重復(fù)步驟S304至步驟S305。
在實際的直播或點播服務(wù)中,多個用戶并發(fā)觀看視頻,服務(wù)器提供的視頻碼率,即需要滿足用戶體驗,提供的視頻質(zhì)量具有較好的MoS值,又要考慮使多并發(fā)用戶都能有較好視頻質(zhì)量體驗。為此本發(fā)明實施例考慮為多并發(fā)用戶提供較好的視頻質(zhì)量,即視頻質(zhì)量平均MoS分值最大。
本發(fā)明實施例在相關(guān)架構(gòu)圖中新增判決器,由不同客戶端將帶寬上報給判決器,判決器建立反映Mos值的QoE模型并計算最優(yōu)的編碼器編碼參數(shù),發(fā)送給編碼器更新,以更好地提供自適應(yīng)碼率,表3是圖4的流程中需要用到的符號及其定義的對照表。
表3符號及定義對照表
其中,Mi=g(bi,Pi),而g(X)表示從編碼參數(shù)到MOS分估計值之間的映射關(guān)系。需要說明的是,一般是指能夠統(tǒng)計的所有用戶的平均MOS分,所述的平均MOS分可以為針對所有用戶的MOS分估計值的算術(shù)平均值。
圖4為本發(fā)明實施例三中基于QoE的HLS碼率自適應(yīng)流程示意圖,設(shè)定定時上報帶寬時長t(可選t=10s),該流程的具體步驟如下:
步驟S401,服務(wù)器生成m3u8文件,進行多碼率編碼并切片,以待用戶訪問該直播視頻;
這里,服務(wù)器中的編碼器會將輸入的視頻和音頻生成m3u8文件,然后對m3u8文件進行多碼率編碼,然后服務(wù)器中的切片器對多碼率編碼后的文件進行切片。
這里,服務(wù)器中的編碼器在進行多碼率編碼的時候,是按照預(yù)先設(shè)置的碼率進行編碼的,例如,預(yù)先設(shè)置的碼率為1Mbps、2Mbps和3Mbps,那么服務(wù)器對m3u8文件按照1Mbps、2Mbps和3Mbps進行編碼。
步驟S402,客戶端訪問該直播視頻;
這里,客戶端對服務(wù)器發(fā)起視頻請求,然后用戶通過客戶端訪問該直播視 頻。
步驟S403,客戶端從服務(wù)器端下載m3u8文件;
這里,服務(wù)器響應(yīng)步驟S402中的視頻請求,然后服務(wù)器向客戶端發(fā)送m3u8文件。
步驟S404,客戶端測量接入帶寬,與m3u8中的碼率值進行比對,選擇碼率合適的切片文件;
這里,步驟S404是以m3u8文件為例:當(dāng)用戶帶寬大于等于500kbps時,將選擇mid_video_index.m3u8所對應(yīng)的切片文件;當(dāng)用戶帶寬大于等于150kbps,小于500kbps時,將選擇3g_video_index.m3u8所對應(yīng)的切片文件,依此類推。圖5為本發(fā)明實施例中m3u8文件內(nèi)容示意圖,如圖5所示,將上述過程公式化表示,在預(yù)先設(shè)定k路多碼率編碼的情況下,sj為第j路編碼的碼率,且sj≤sj+1。
下面考察第i個用戶的碼率選擇方法,對于第i個用戶有以下幾種情況:1)如果ri≥sk,那么bi=sk;2)如果sj≤ri<sj+1,1≤j≤k-1,那么bi=sj;3)如果ri<s1,那么bi=0。根據(jù)這三個規(guī)則以及根據(jù)ri與sj,1<j<k建立從ri到bi的映射關(guān)系,記為bi=f(ri,S),S=[s1,s2...sk].從以上的映射關(guān)系來看,帶寬越大,那么該路用戶對應(yīng)的編碼碼率也就越大。
步驟S405,客戶端通過m3u8中的URL鏈接,下載切片文件;
步驟S406,客戶端在t時刻將帶寬測量的結(jié)果上報給判決器,以供判決器進行帶寬統(tǒng)計;
步驟S407,判決器將用戶帶寬進行統(tǒng)計,得到統(tǒng)計結(jié)果;
這里,少量用戶可統(tǒng)計離散值,大量用戶可統(tǒng)計接入帶寬的概率密度函數(shù)p(x)。
步驟S408,判決器判斷視頻類型,設(shè)置a1至a5;
這里,根據(jù)視頻類型設(shè)置MOS評估模型的參數(shù)值,確定MOS評估模型。 將bi與第i個用戶的MOS值,即Mi建立一一對應(yīng)的映射關(guān)系,記為Mi=g(f(ri,S),Pi),則Mi如下所示:
這里,F(xiàn)R表示視頻的幀率,PER表示視頻的誤包率。若設(shè)定FR為25fps,PER設(shè)定為0,那么上式可以寫為:
Mi=g(f(ri,S))=a1+25a2+a3ln(f(ri,S)) (2);
其中,a1~a5由不同的視頻類型決定,視頻類型包括慢速類視頻、平動類視頻和快速類視頻,三類視頻對應(yīng)的參數(shù)不同,即Au=[a1,a2,a3,a4,a5]u,u=1、2、3;
這里,在具體實現(xiàn)的過程中,慢速類視頻、平動類視頻、快速類視頻可以類似的認為是三個速度不同類型的視頻,例如可以設(shè)置兩個閾值,即第一速度閾值和第二速度閾值,其中第一速度閾值小于第二速度閾值,當(dāng)視頻的速度小于第一速度閾值,將所述視頻的視頻類型歸類為慢速視頻類型;當(dāng)視頻的速度大于第一速度閾值且小于第二速度閾值時,將所述視頻的視頻類型歸類為平動視頻類型;當(dāng)視頻的速度大于第二速度閾值,將所述視頻的視頻類型歸類為快速視頻類型;需要說明的是,這里所述的速度并不是指視頻傳輸?shù)乃伲且曨l中對象的移動速度。
步驟S409,判決器對不同類型的視頻,求解最優(yōu)的編碼碼率。
這里,以最大化用戶的平均MOS分為優(yōu)化目標(biāo)如公式(3):
根據(jù)三類視頻類型對應(yīng)的Au,搜索每類視頻對應(yīng)的最優(yōu)解Su=[s1,s2,s3...,sk]u,其中Su即為判決器的判決結(jié)果,作為待更新碼率列表。其中,S1=[s1,s2,s3...,sk]1作 為慢速類視頻對應(yīng)的碼率列表,S2=[s1,s2,s3...,sk]2作為平動類視頻對應(yīng)的碼率列表,S3=[s1,s2,s3...,sk]3作為快速類視頻對應(yīng)的碼率列表。在該式中,大寫字母S的角標(biāo)1、2和3分別代表3種運動類型的視頻,小寫[s1,s2,…sk]1代表慢速類視頻的轉(zhuǎn)碼碼率,比如[0.5M,1M,…3M]。對每類運動視頻,求解使得M均值最大的si,作為最優(yōu)編碼碼率。
為計算方便,假定用戶帶寬位于(0,s1),(si,si+1),(sk,+∞)范圍內(nèi)分別有n0,ni,nk個用戶(0<i<k,i=1,2,...k-1)。那么上式可以改寫成:
公式(4)中,記s0為0,sk+1為+∞。當(dāng)用戶數(shù)目較大時,可以對帶寬分布的概率密度函數(shù)進行統(tǒng)計,代入(4)式進行求解。這里假定用戶接入帶寬的概率密度函數(shù)是p(x),其累積分布函數(shù)為P(x)。那么(4)式中的ni可以對應(yīng)地改為N×[P(si+1)-P(si)],代入(4)式可得公式(5):
再根據(jù)上述方法求解即可。
步驟S410,判決器將判決結(jié)果上報編碼器,以更新編碼器的編碼碼率;
這里,判決器上報的編碼碼率可能與預(yù)先設(shè)置的編碼碼率相同,也可能不同,例如預(yù)先設(shè)置的編碼碼率為1Mbps、2Mbps和3Mbps,那么判決器上報的編碼碼率可能為1.5Mbps、2.5Mbps和3Mbps,在相關(guān)技術(shù)中,編碼器一直都是按照預(yù)先設(shè)置的編碼碼率對流媒體進行編碼的,但是在本發(fā)明實施例中,編碼器的編碼碼率會隨著客戶端的接入帶寬而進行變化,因此,判決器上報的編碼碼率可能不是預(yù)先設(shè)置的編碼碼率值。
步驟S411,服務(wù)器中的編碼器對m3u8文件進行更新,并進行多碼率的編碼;
這里,編碼器對不同類型的視頻文件,根據(jù)判決器的判決結(jié)果,對m3u8文件相應(yīng)進行更新,同時根據(jù)該結(jié)果進行多碼率編碼并切片。
步驟S412,在t+1時,重復(fù)步驟S403至步驟S411。
實施例四
基于前述的方法,本發(fā)明實施例提供一種服務(wù)器,該服務(wù)器所包括的判決器、編碼器和切片器,以及所述判決器所包括的第一獲取單元、確定單元和第二發(fā)送單元,都可以通過服務(wù)器中的處理器來實現(xiàn);當(dāng)然也可通過具體的邏輯電路實現(xiàn);在具體實施例的過程中,處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)等。
圖6為本發(fā)明實施例四服務(wù)器的組成結(jié)構(gòu)示意圖,如圖6所示,該服務(wù)器600包括判決器601、編碼器602和切片器603,其中所述判決器601包括第一獲取單元611、確定單元612和第二發(fā)送單元613,其中:
所述第一獲取單元611,用于獲取終端的接入帶寬;
所述確定單元612,用于根據(jù)所述接入帶寬確定編碼碼率;
所述第二發(fā)送單元613,用于將所述編碼碼率發(fā)送給編碼器;
所述編碼器602,用于接收所述發(fā)送單元發(fā)送的編碼碼率,并至少按照所述編碼碼率對流媒體進行多碼率編碼;
所述切片器603,用于將多碼率編碼后的流媒體進行切片,將切片后的流媒體通過HTTP發(fā)送給終端。
本發(fā)明實施例中,所述第一獲取單元包括接收模塊、統(tǒng)計模塊和處理模塊,其中:
所述接收模塊,用于接收兩個及兩個以上終端發(fā)送的接入帶寬參數(shù)值;
所述統(tǒng)計模塊,用于對所述接入帶寬參數(shù)值進行統(tǒng)計,得到統(tǒng)計結(jié)果;
所述處理模塊,用于將所述統(tǒng)計結(jié)果作為所述終端的接入帶寬。
本發(fā)明實施例中,所述編碼器,用于接收所述發(fā)送單元發(fā)送的編碼碼率,并按照編碼參數(shù)對流媒體進行多碼率編碼,所述編碼參數(shù)至少包括編碼碼率、幀率。
本發(fā)明實施例中,所述確定模塊,用于根據(jù)接入帶寬查找預(yù)設(shè)的對應(yīng)關(guān)系,得到編碼碼率,其中,所述編碼碼率滿足下式:
其中,P()表示密度函數(shù)函數(shù),表示用戶的平均MOS分,max表示求最大值,g(si)表示從si到MOS分估計值之間的映射關(guān)系,si表示第i路的編碼碼率。
本發(fā)明實施例中的判決器還可以作為獨立于所述服務(wù)器之外的裝置,例如可以一種流媒體碼率自適應(yīng)裝置,該裝置包括第一獲取單元、確定單元和第二發(fā)送單元,其中:
所述第一獲取單元,用于獲取終端的接入帶寬;
所述確定單元,用于根據(jù)所述接入帶寬確定編碼碼率;
所述第二發(fā)送單元,用于將所述編碼碼率發(fā)送給服務(wù)器中的編碼器。
實施例五
基于前述的方法,本發(fā)明實施例提供一種終端,該終端所包括的第二獲取單元、選擇單元、下載單元和緩存單元,都可以通過終端中的處理器來實現(xiàn);當(dāng)然也可通過具體的邏輯電路實現(xiàn);在具體實施例的過程中,處理器可以為中央處理器(CPU)、微處理器(MPU)、數(shù)字信號處理器(DSP)或現(xiàn)場可編程門陣列(FPGA)等。
圖7為本發(fā)明實施例五終端的組成結(jié)構(gòu)示意圖,如圖7所示,該終端700包括第二獲取單元701、選擇單元702、下載單元703和緩存單元704,其中:
所述第二獲取單元701,用于獲取自身的接入帶寬,并向服務(wù)器發(fā)送所述 接入帶寬;
所述選擇單元702,用于根據(jù)所述接入帶寬確定具有第一碼率的切片文件;
所述下載單元703,用于通過m3u8中的統(tǒng)一資源定位符URL鏈接下載具有第一碼率的切片文件;
所述緩存單元704,用于緩存所述切片文件。
本發(fā)明實施例中,所述選擇單元,用于根據(jù)所述接入帶寬查找預(yù)設(shè)的對應(yīng)關(guān)系,得到第一碼率;所述對應(yīng)關(guān)系用于表征接入帶寬與m3u8中的碼率值之間成正比例的關(guān)系。
本發(fā)明以上實施例提供的技術(shù)方案較現(xiàn)有技術(shù)方案相比,考慮為多并發(fā)用戶提供較好的視頻質(zhì)量,即視頻質(zhì)量平均MoS分值最大,可以顯著地提高用戶對視頻業(yè)務(wù)的體驗質(zhì)量。1)在多播業(yè)務(wù)中應(yīng)用自適應(yīng)碼率技術(shù)方案時,通過增加判決器這一模塊,為了使多并發(fā)用戶平均MoS分值最大,提出反映QoE的MoS模型,其中碼率選擇考慮了和接入帶寬的關(guān)系,模型考慮了多個用戶客戶端的并發(fā)帶寬情況,在使得平均MoS值最大的條件下求解最優(yōu)編碼,并反饋給編碼器進行多碼率編碼。其中計算時統(tǒng)計不同帶寬區(qū)間的用戶數(shù),簡化計算模型。2)判決器中基于QoE的MoS模型考慮了慢速、平動、快速三種類型視頻內(nèi)容下的碼率,參數(shù)值a1~a5在不同類型下取值不同更能反應(yīng)客觀實際。
應(yīng)理解,說明書通篇中提到的“一個實施例”或“一實施例”意味著與實施例有關(guān)的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,在整個說明書各處出現(xiàn)的“在一個實施例中”或“在一實施例中”未必一定指相同的實施例。此外,這些特定的特征、結(jié)構(gòu)或特性可以任意適合的方式結(jié)合在一個或多個實施例中。應(yīng)理解,在本發(fā)明的各種實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意 在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實現(xiàn)。以上所描述的設(shè)備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,如:多個單元或組件可以結(jié)合,或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元;既可以位于一個地方,也可以分布到多個網(wǎng)絡(luò)單元上;可以根據(jù)實際的需要選擇其中的部分或全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各實施例中的各功能單元可以全部集成在一個處理單元中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設(shè)備、只讀存儲器(Read Only Memory,ROM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣 的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:移動存儲設(shè)備、ROM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準(zhǔn)。