本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,特別是涉及基于HLS客戶端的網(wǎng)絡(luò)流下載終端及優(yōu)化方法。
背景技術(shù):
HLS是Apple實(shí)現(xiàn)的基于HTTP的流媒體傳輸協(xié)議,可實(shí)現(xiàn)流媒體的直播和點(diǎn)播,為移動設(shè)備提供音視頻直播和點(diǎn)播方案。
HLS協(xié)議在服務(wù)器端將媒體數(shù)據(jù)流轉(zhuǎn)換為不同質(zhì)量的、連續(xù)的、很短時長的媒體文件(MPEG-TS格式,一般每個小文件可以播放8秒鐘,稱之為分片),而客戶端則不斷的下載并播放這些分片。
通常的,對于同一個節(jié)目,服務(wù)器提供質(zhì)量不同的多個音視頻流(每一種質(zhì)量的音視頻流包含一組分片,對應(yīng)于一種碼率),并通過m3u8格式的配置文件給出這多個音視頻流的信息(包含每個音視頻流的碼率,所包含的分片獲取方式)。例如,配置文件中包含了7個音視頻流信息,如下所示:
音視頻流00:40Kbps有音頻流,無視頻流,有1張JPEG圖片
音視頻流01:120Kbps有音頻流,有視頻流(視頻流分辨率176x144)
音視頻流02:300Kbps有音頻流,有視頻流(視頻流分辨率320x180)
音視頻流03:500Kbps有音頻流,有視頻流(視頻流分辨率400x224)
音視頻流04:800Kbps有音頻流,有視頻流(視頻流分辨率480x270)
音視頻流05:1300Kbps有音頻流,有視頻流(視頻流分辨率640x360)
音視頻流06:2200Kbps有音頻流,有視頻流(視頻流分辨率1024x576)
由于數(shù)據(jù)通過HTTP協(xié)議傳輸,所以完全不用考慮防火墻或者代理的問題,而且分片文件的可以播放的時長很短,客戶端可以隨時選擇和切換到對應(yīng)的碼率上,以適應(yīng)不同帶寬條件下的播放。
下載音視頻流時,我們以分片作為最基本的播放單位,對于一個分片,只有兩種選擇:要么完全下載并播放,要么不下載或者下載一部分之后丟棄。
對于分片,我們一般把一個分片分為若干(≧5)個數(shù)據(jù)包來下載。每下載完成一次數(shù)據(jù)包,我們就可以獲得下載的信息(下載的字節(jié)數(shù)和下載時間),通過這些下載信息,我們可以計(jì)算出網(wǎng)速。
在手機(jī)終端可以使用HLS客戶端來收看服務(wù)器上的節(jié)目。HLS客戶端首先接收m3u8格式的配置文件,然后計(jì)算當(dāng)前的網(wǎng)絡(luò)速度,并實(shí)時依據(jù)網(wǎng)絡(luò)速度來下載對應(yīng)帶寬的音視頻流,以達(dá)到最佳的用戶體驗(yàn)。
其中,計(jì)算當(dāng)前網(wǎng)速的方法是:將最近已經(jīng)下載的50個數(shù)據(jù)包字節(jié)大小/50個數(shù)據(jù)包的下載時間,得到當(dāng)前網(wǎng)絡(luò)平均速度。通常的,一個分片少于50個包,因此需要下載至少一個分片后才能測算出當(dāng)前的網(wǎng)絡(luò)平均速度。
當(dāng)網(wǎng)速發(fā)生極大波動時,因?yàn)樵械挠?jì)算方法是取得50個包網(wǎng)絡(luò)平均速度,故不能及時根據(jù)變化后的網(wǎng)速選擇切換到對應(yīng)的碼流,會導(dǎo)致卡頓時間比較長(網(wǎng)速快速下降時)或進(jìn)入最佳播放狀態(tài)的時間比較長(網(wǎng)速快速提高時)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對前述背景技術(shù)中的缺陷和不足,提供基于HLS客戶端的網(wǎng)絡(luò)流下載終端及優(yōu)化方法,當(dāng)網(wǎng)速發(fā)生極大波動時,播放HLS媒體流出現(xiàn)卡頓時間比較短并且可以快速進(jìn)入最佳播放狀態(tài)。本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載終端,包括即時速度檢測模塊、頻流帶寬檢測模塊以及網(wǎng)絡(luò)流切換模塊,所述即時速度檢測模塊用于獲得即時速度或者即時速度的平均速度,所述頻流帶寬檢測模塊用于獲得當(dāng)前音視頻流帶寬;
所述網(wǎng)絡(luò)流切換模塊通過比較即時速度信息與當(dāng)前音視頻流帶寬,或者通過比較即時速度信息與平均速度信息,區(qū)分網(wǎng)速變動的類型,再根據(jù)所述網(wǎng)速變動的類型來選擇對應(yīng)的網(wǎng)絡(luò)流。
所述即時速度檢測模塊獲得即時速度具體為通過當(dāng)前數(shù)據(jù)包下載的字節(jié)數(shù)和下載所需的時間計(jì)算所述即時速度。
基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法,通過比較即時速度信息與當(dāng)前音視頻流帶寬,或者通過比較即時速度信息與平均速度信息,區(qū)分網(wǎng)速變動的類型,再根據(jù)所述網(wǎng)速變動的類型來選擇對應(yīng)的網(wǎng)絡(luò)流。
所述即時速度信息的獲取方式具體為:通過當(dāng)前數(shù)據(jù)包的下載信息計(jì)算即時速度,所述下載信息為下載的字節(jié)數(shù)和下載所需的時間。
所述通過比較即時速度信息與當(dāng)前音視頻流帶寬,區(qū)分網(wǎng)速變動的類型具體為:
比較所述即時速度和當(dāng)前音視頻流帶寬的關(guān)系,如果所述即時速度<第一閾值與所述當(dāng)前音視頻流帶寬的乘積,則是網(wǎng)速陡降;如果所述即時速度>第二閾值與所述當(dāng)前音視頻流帶寬的乘積,則是網(wǎng)速陡升;否則為網(wǎng)速緩升或網(wǎng)速緩降。
所述通過即時速度信息與所述平均速度信息間的比較區(qū)分網(wǎng)速變動的類型具體為:如果所述即時速度<第一閾值與所述平均速度的乘積,則是網(wǎng)速陡降;如果所述即時速度>第二閾值與平均速度的乘積,則是網(wǎng)速陡升;否則為網(wǎng)速緩升或網(wǎng)速緩降。
如果當(dāng)前屬于網(wǎng)速陡升或者網(wǎng)速陡降,通過所述即時速度與m3u8配置來選擇對應(yīng)的網(wǎng)絡(luò)流;否則,根據(jù)所述平均速度和m3u8配置來選擇對應(yīng)的網(wǎng)絡(luò)流。
如果當(dāng)前屬于網(wǎng)速陡升或者網(wǎng)速陡降,對幾個即時速度求平均值以后,根據(jù)平均即時速度和m3u8配置來選擇對應(yīng)的網(wǎng)絡(luò)流。
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
該系統(tǒng)及方法能夠?qū)⒕W(wǎng)速的波動劃分為以下幾種類型:網(wǎng)速緩升,網(wǎng)速緩降,網(wǎng)速陡升,網(wǎng)速陡降;通過即時速度信息區(qū)分網(wǎng)速變動的類型,并依據(jù)網(wǎng)速變動類型作出選擇;
具體來說,過比較即時速度信息與當(dāng)前音視頻流帶寬,或者通過所述即時速度信息與m3u8配置信息的相互比較;或者該該方法還能夠通過即時速度信息與平均速度信息間的比較,來確定網(wǎng)速變動的類型,最終通過對網(wǎng)速大幅突然變化的類型優(yōu)化處理,提升用戶體驗(yàn)。
及時根據(jù)變化后的網(wǎng)速選擇切換到對應(yīng)的碼流,使卡頓時間縮短或者快速進(jìn)入最佳播放狀態(tài)。
附圖說明
圖1是本發(fā)明基于HLS客戶端的網(wǎng)絡(luò)流下載終端的第一實(shí)施方式的結(jié)構(gòu)示意圖;
圖2是本發(fā)明基于HLS客戶端的網(wǎng)絡(luò)流下載終端的第二實(shí)施方式的結(jié)構(gòu)示意圖;
圖3是本發(fā)明基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法的第一實(shí)施方式的流程示意圖;
圖4是本發(fā)明基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法的第二實(shí)施方式的流程示意圖。
具體實(shí)施方式
本發(fā)明提供基于HLS客戶端的網(wǎng)絡(luò)流下載終端及優(yōu)化方法,為使本發(fā)明的目的,技術(shù)方案及效果更加清楚,明確,以及參照附圖并舉實(shí)例對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明所涉及的基于HLS客戶端的網(wǎng)絡(luò)流下載終端,參閱圖1,為本發(fā)明提供的第一種實(shí)施方式的結(jié)構(gòu)示意圖。
包括即時速度檢測模塊110、頻流帶寬檢測模塊120以及網(wǎng)絡(luò)流切換模塊130,所述即時速度檢測模塊110用于獲得即時速度或者即時速度的平均速度,所述頻流帶寬檢測模塊120用于獲得當(dāng)前音視頻流帶寬;
所述網(wǎng)絡(luò)流切換模塊130通過比較即時速度信息與當(dāng)前音視頻流帶寬,或者通過比較即時速度信息與平均速度信息,區(qū)分網(wǎng)速變動的類型,再根據(jù)所述網(wǎng)速變動的類型來選擇對應(yīng)的網(wǎng)絡(luò)流。
區(qū)別于現(xiàn)有技術(shù),本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載終端,采用網(wǎng)絡(luò)流切換模塊,該模塊比較即時速度信息與當(dāng)前音視頻流帶寬,或者與m3u8配置信息的相互比較,使在下載網(wǎng)絡(luò)流時用戶端可以快速根據(jù)網(wǎng)絡(luò)蘇變動進(jìn)行網(wǎng)絡(luò)流選擇,大大縮短了網(wǎng)絡(luò)流間相互切換的時間,提升用戶體驗(yàn)。
參閱圖2,圖2是本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載終端的第二實(shí)施方式的結(jié)構(gòu)示意圖。
除了第一種實(shí)施方式中所包含的模塊以外,該系統(tǒng)還包括平均速度獲取模塊140,所述網(wǎng)絡(luò)流切換模塊130,通過即時速度信息與平均速度信息間的比較,區(qū)分網(wǎng)速變動的類型,并依據(jù)所述網(wǎng)速變動的類型作出網(wǎng)絡(luò)流選擇。
具體的,所述即時速度檢測模塊110獲得即時速度具體為通過當(dāng)前數(shù)據(jù)包下載的字節(jié)數(shù)和下載所需的時間計(jì)算所述即時速度。
區(qū)別于現(xiàn)有技術(shù),本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載終端中,絡(luò)流切換模塊還可以通過平均速度模塊,將即時速度與平均速度進(jìn)行比較,為網(wǎng)絡(luò)流選擇提供另一個途徑,大大縮短了網(wǎng)絡(luò)流間相互切換的時間,提升用戶體驗(yàn)。
參閱圖3,圖3是本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法第一實(shí)施方式的流程示意圖。
基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法具體為:s110:通過比較即時速度信息與當(dāng)前音視頻流帶寬,或者通過比較即時速度信息與平均速度信息,區(qū)分網(wǎng)速變動的類型,s120:再根據(jù)所述網(wǎng)速變動的類型來選擇作出網(wǎng)絡(luò)流的選擇。
所述即時速度信息的獲取方式具體為:通過當(dāng)前數(shù)據(jù)包的下載信息計(jì)算即時速度,所述下載信息為下載的字節(jié)數(shù)和下載所需的時間。
所述通過即時速度信息的相互比較區(qū)分網(wǎng)速變動的類型具體為:
比較所述即時速度和當(dāng)前音視頻流帶寬的關(guān)系,如果所述即時速度<第一閾值與所述當(dāng)前音視頻流帶寬的乘積,則是網(wǎng)速陡降;如果所述即時速度>第二閾值與所述當(dāng)前音視頻流帶寬的乘積,則是網(wǎng)速陡升;否則為網(wǎng)速緩升或網(wǎng)速緩降。
所述通過即時速度信息與所述平均速度信息間的比較區(qū)分網(wǎng)速變動的類型具體為:如果所述即時速度<第一閾值與所述平均速度的乘積,則是網(wǎng)速陡降;如果所述即時速度>第二閾值與平均速度的乘積,則是網(wǎng)速陡升;否則為網(wǎng)速緩升或網(wǎng)速緩降。
如果當(dāng)前屬于網(wǎng)速陡升或者網(wǎng)速陡降,通過所述即時速度與m3u8配置來選擇對應(yīng)的網(wǎng)絡(luò)流;否則,根據(jù)所述平均速度和m3u8配置來選擇對應(yīng)的網(wǎng)絡(luò)流。
區(qū)別于現(xiàn)有技術(shù),本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法,該方法采用了兩種方式,對網(wǎng)速變動類型進(jìn)行識別,1)通過比較即時速度信息與當(dāng)前音視頻流帶寬,2)或者該該方法還能夠通過即時速度信息與平均速度信息間的比較,依據(jù)所述網(wǎng)速變動的類型作出網(wǎng)絡(luò)流選擇;這樣大大縮短了網(wǎng)絡(luò)流間相互切換的時間,提升用戶體驗(yàn)。及時根據(jù)變化后的網(wǎng)速選擇切換到對應(yīng)的碼流,使卡頓時間縮短或者快速進(jìn)入最佳播放狀態(tài)。
參閱圖4,圖4是本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法第二實(shí)施方式的流程示意圖,該圖給出了一個實(shí)現(xiàn)方式的詳細(xì)流程。
第一步、計(jì)算網(wǎng)絡(luò)的即時速度;
具體的,通過當(dāng)前數(shù)據(jù)包的下載信息(下載信息包括:下載的字節(jié)數(shù)和下載所需的時間),計(jì)算即時速度。例如,通過當(dāng)前3個數(shù)據(jù)包的下載信息計(jì)算即時速度。
可選的,該步驟中還通過最近一段時期數(shù)據(jù)包的下載信息,計(jì)算平均速度。例如,通過最近50個數(shù)據(jù)包的下載信息計(jì)算平均速度。其中,即時速度可以反映當(dāng)前的下載速度,平均速度反映一段時間內(nèi)的下載速度。為了實(shí)現(xiàn)計(jì)算網(wǎng)絡(luò)的即時速度和平均速度,系統(tǒng)需要始終保持若干個數(shù)據(jù)包的下載信息。
第二步、通過即時速度,判斷是否屬于網(wǎng)速陡升或陡降。
具體判斷方式為:方式1,比較即時速度和當(dāng)前音視頻流帶寬的關(guān)系;如果即時速度<第一閾值*當(dāng)前音視頻流帶寬,則認(rèn)為是網(wǎng)速陡降;如果即時速度>第二閾值*當(dāng)前音視頻流帶寬,則認(rèn)為是網(wǎng)速陡升。
方式2,比較即時速度和平均速度的關(guān)系;如果即時速度<第一閾值*平均速度,則認(rèn)為是網(wǎng)速陡降;如果即時速度>第二閾值*平均速度,則認(rèn)為是網(wǎng)速陡升。
例如,配置文件中包含了7個音視頻流信息,如下所示:
音視頻流00:40Kbps有音頻流,無視頻流,有1張JPEG圖片
音視頻流01:120Kbps有音頻流,有視頻流(視頻流分辨率176x144)
音視頻流02:300Kbps有音頻流,有視頻流(視頻流分辨率320x180)
音視頻流03:500Kbps有音頻流,有視頻流(視頻流分辨率400x224)
音視頻流04:800Kbps有音頻流,有視頻流(視頻流分辨率480x270)
音視頻流05:1300Kbps有音頻流,有視頻流(視頻流分辨率640x360)
音視頻流06:2200Kbps有音頻流,有視頻流(視頻流分辨率1024x576)
可以選取3個數(shù)據(jù)包的即時速度來進(jìn)行判斷;選取50個數(shù)據(jù)包的信息計(jì)算平均速度。
即時速度Vm1=最近下載的第1個數(shù)據(jù)包字節(jié)數(shù)/對應(yīng)數(shù)據(jù)包下載時間
即時速度Vm2=最近下載的第2個數(shù)據(jù)包字節(jié)數(shù)/對應(yīng)數(shù)據(jù)包下載時間
即時速度Vm3=最近下載的第3個數(shù)據(jù)包字節(jié)數(shù)/對應(yīng)數(shù)據(jù)包下載時間
平均速度Vn=最近下載的50個數(shù)據(jù)包總字節(jié)數(shù)/對應(yīng)數(shù)據(jù)包下載總時間
當(dāng)前音視頻流帶寬Va=當(dāng)前下載的音視頻流對應(yīng)的碼率
網(wǎng)速陡降閾值a(取值為0.6)
網(wǎng)速陡升閾值b(取值為2.0)
如果對于Vm1,Vm2,Vm3都<a*Vn,或者都<a*Va,就認(rèn)為這是網(wǎng)速陡降。
如果對于Vm1,Vm2,Vm3都>b*Vn,或者都>b*Va,就認(rèn)為這是網(wǎng)速陡升。
第三步、如果當(dāng)前屬于網(wǎng)速陡升或者網(wǎng)速陡降,通過即時速度和m3u8配置來選擇對應(yīng)的流。否則,還是根據(jù)平均速度和m3u8配置來選擇對應(yīng)的流。
具體的,可以是對幾個即時速度求平均值以后,再選擇對應(yīng)的流。
例:m3u8配置如前面配置文件中的7個音視頻流信息
當(dāng)前播放的為02音視頻流,速度300KBps
Vn=350KBps
Vm1=150KBps;Vm2=160KBps;Vm3=140KBps;
發(fā)現(xiàn)Vm1,Vm2,Vm3都<a*Vn,認(rèn)為這是網(wǎng)速陡降,然后計(jì)算得到即時速度的平均速度150KBps,依據(jù)m3u8配置中的不同流需要的網(wǎng)速,切換到流01。
網(wǎng)速陡升情況改進(jìn)后的效果:通過3組的測試對比,自適應(yīng)所需的時間減少了50%~80%不等,平均減少的自適應(yīng)時間為原來總時間的70%。
網(wǎng)速陡降改情況進(jìn)后的效果:
對于原來的算法,原來的用戶體驗(yàn)根本不能接受,在某些極端(網(wǎng)速下降的比例很大)的測試中,音視頻會卡1分鐘以上。
通過3組的測試對比,原來的算法,音視頻會卡平均20秒以上;而采用了改進(jìn)后的方法之后,基本上沒有卡的情況出現(xiàn),少數(shù)情況會卡1~3秒,在可以接受的范圍內(nèi)。
區(qū)別于現(xiàn)有技術(shù),本發(fā)明提供的基于HLS客戶端的網(wǎng)絡(luò)流下載優(yōu)化方法,該方法采用了兩種方式,對網(wǎng)速變動類型進(jìn)行識別,1)通過比較即時速度信息與當(dāng)前音視頻流帶寬,2)或者該該方法還能夠通過即時速度信息與平均速度信息間的比較,在選擇網(wǎng)絡(luò)流時,還可以對幾個即時速度求平均值以后,根據(jù)平均即時速度和m3u8配置來選擇對應(yīng)的網(wǎng)絡(luò)流,依據(jù)所述網(wǎng)速變動的類型作出網(wǎng)絡(luò)流選擇。
具體的HLS網(wǎng)絡(luò)流音視頻節(jié)目點(diǎn)播在不同網(wǎng)速變化情況下的測試數(shù)據(jù)如下:
本實(shí)施例還給出了測試對比的真實(shí)案例,做了3組測試實(shí)驗(yàn),說明這樣大大縮短了網(wǎng)絡(luò)流間相互切換的時間,提升用戶體驗(yàn)。通過3組的測試對比,自適應(yīng)所需的時間減少了50%~80%不等,網(wǎng)速選擇切換到對應(yīng)的碼流的時間大大減小,平均減少的自適應(yīng)時間為原來總時間的70%,明顯使卡頓時間縮短或者快速進(jìn)入最佳播放狀態(tài)。
以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。