基于hls流媒體的視頻數(shù)據(jù)加速下載方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及流媒體技術領域,尤其涉及一種基于HLS流媒體的視頻數(shù)據(jù)加速下載方法及裝置。
【背景技術】
[0002]HLS(HTTP Live Streaming,超文本直播流)是基于HTTP的流媒體傳輸協(xié)議,可實現(xiàn)流媒體的直播和點播。協(xié)議支持媒體數(shù)據(jù)加密與流切換(例如不同碼率),媒體數(shù)據(jù)創(chuàng)建后立即傳輸,播放接近實時。
[0003]HLS播放列表由一個有序的媒體URI列表和信息標簽組成,每個媒體URI指向一個媒體文件(分片文件),這個媒體文件是單個連續(xù)媒體流上的一個片斷。為了播放媒體流,客戶端首先獲取播放列表,然后獲取并播放播放列表中的每個流媒體文件。
[0004]在現(xiàn)有技術中,基于HLS流媒體的視頻數(shù)據(jù)下載加速可以通過多任務的形式實現(xiàn),即啟動多個任務同時下載多個分片文件并依序發(fā)送給客戶端播放;在使用多個任務下載數(shù)據(jù)時,最多可以使速率提高達到兩倍的程度,但是需要注意的是,每個單任務下載數(shù)據(jù)的速度反而降低了,而且是任務數(shù)越多單個任務的速率越慢,這就意味著播放視頻時,不能隨時隨意的啟動多任務進行碼流的下載,如當多個任務同時下載多個分片文件時,當前需要播放的分片文件沒有下載過來,而暫時不需要播放的分片文件卻下載過來了,這將影響客戶端正常播放。
[0005]上述內(nèi)容僅用于輔助理解本發(fā)明的技術方案,并不代表承認上述內(nèi)容是現(xiàn)有技術。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的主要目的在于提供一種基于HLS流媒體的視頻數(shù)據(jù)加速下載方法及裝置,旨在解決的現(xiàn)有技術中,在啟動視頻數(shù)據(jù)加速下載時,容易導致客戶端播放異常的技術問題。
[0007]為實現(xiàn)上述目的,本發(fā)明提供一種基于HLS流媒體的視頻數(shù)據(jù)加速下載方法,該方法包括:
[0008]在接收到網(wǎng)絡媒體客戶端發(fā)送的HLS流媒體的播放請求時,循環(huán)啟動定時器;
[0009]在定時器時間達到時,判斷所述HLS流媒體的播放請求對應的HLS流媒體是否下載完成;
[0010]若所述HLS流媒體的播放請求對應的HLS流媒體未下載完成,則獲取緩存區(qū)中的數(shù)據(jù)量;
[0011]判斷所述數(shù)據(jù)量是否大于或等于第一預設閥值;以及
[0012]若所述數(shù)據(jù)量大于或等于第一預設閥值,則啟動多線程加速下載模式,以從網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0013]優(yōu)選地,所述啟動多線程加速下載模式,以從網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件的步驟包括:
[0014]判斷當前是否通過非加速下載模式下載HLS流媒體的分片文件;
[0015]若當前未通過非加速下載模式下載HLS流媒體的分片文件,則啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0016]優(yōu)選地,所述啟動多線程加速下載模式,以從網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件的步驟還包括:
[0017]若當前通過非加速下載模式下載HLS流媒體的分片文件,則在非加速下載模式下載完成后且接收到所述網(wǎng)絡媒體客戶端發(fā)送的分片獲取請求時,啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0018]優(yōu)選地,判斷所述數(shù)據(jù)量是否大于或等于第一預設閥值的步驟之后,該方法還包括:
[0019]若所述數(shù)據(jù)量小于第一預設閥值,則判斷所述數(shù)據(jù)量是否為零;
[0020]若所述數(shù)據(jù)量為零,則獲取當前時刻之前的預設時間內(nèi)發(fā)送給所述網(wǎng)絡媒體客戶端的分片文件的第一總時長;
[0021]判斷所述第一總時長是否為零;
[0022]若所述第一總時長不為零,則獲取在當前時刻之前的預設時間內(nèi)發(fā)送第一個分片文件的時刻到當前時刻之間的第二總時長;
[0023]若所述第二總時長大于第一總時長,則啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件,并控制計數(shù)器將計數(shù)值加I。
[0024]優(yōu)選地,所述判斷所述第一總時長是否為零的步驟之后,該方法還包括:
[0025]若所述第一總時長為零,則獲取計數(shù)器的計數(shù)值;
[0026]若所述計數(shù)器的計數(shù)值為非零,則控制計數(shù)器將計數(shù)值加I;
[0027]重新獲取計數(shù)器的計數(shù)值,并在重新獲取的計數(shù)器的計數(shù)值大于預設的次數(shù)閥值時,啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0028]此外,為實現(xiàn)上述目的,本發(fā)明還提供一種基于HLS流媒體的視頻數(shù)據(jù)加速下載裝置,該裝置包括:
[0029]啟動模塊,用于在接收到網(wǎng)絡媒體客戶端發(fā)送的HLS流媒體的播放請求時,循環(huán)啟動定時器;
[0030]第一判斷模塊,用于在定時器時間達到時,判斷所述HLS流媒體的播放請求對應的HLS流媒體是否下載完成;
[0031]第一獲取模塊,用于在所述HLS流媒體的播放請求對應的HLS流媒體未下載完成時,獲取視頻數(shù)據(jù)加速下載裝置中的緩存區(qū)中的數(shù)據(jù)量;
[0032]第二判斷模塊,用于判斷所述數(shù)據(jù)量是否大于或等于第一預設閥值;
[0033]第一控制模塊,用于在所述數(shù)據(jù)量大于或等于第一預設閥值時,啟動多線程加速下載模式,以從網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0034]優(yōu)選地,所述第一控制模塊包括:
[0035]第一判斷單元,用于在所述數(shù)據(jù)量大于或等于第一預設閥值時,判斷所述視頻數(shù)據(jù)加速下載裝置當前是否通過非加速下載模式下載HLS流媒體的分片文件;
[0036]第一控制單元,用于在所述視頻數(shù)據(jù)加速下載裝置當前未通過非加速下載模式下載HLS流媒體的分片文件時,啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0037]優(yōu)選地,所述第一控制模塊還包括:
[0038]第二控制單元,用于在所述視頻數(shù)據(jù)加速下載裝置當前通過非加速下載模式下載HLS流媒體的分片文件時,在非加速下載模式下載完成后且接收到所述網(wǎng)絡媒體客戶端發(fā)送的分片獲取請求時,啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0039]優(yōu)選地,所述裝置還包括:
[0040]第三判斷模塊,用于在所述第二判斷模塊的判斷結(jié)果為所述數(shù)據(jù)量小于第一預設閥值時,判斷所述數(shù)據(jù)量是否為零;
[0041 ]第二獲取模塊,用于在所述數(shù)據(jù)量為零時,獲取所述視頻數(shù)據(jù)加速下載裝置在當前時刻之前的預設時間內(nèi)發(fā)送給所述網(wǎng)絡媒體客戶端的分片文件的第一總時長;
[0042]第三獲取模塊,用于在所述第一總時長不為零時,獲取所述視頻數(shù)據(jù)加速下載裝置在當前時刻之前的預設時間內(nèi)發(fā)送第一個分片文件的時刻到當前時刻之間的第二總時長;
[0043]第三控制模塊,用于在所述第二總時長大于第一總時長時,啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件,并控制計數(shù)器將計數(shù)值加I。
[0044]優(yōu)選地,所述裝置還包括:
[0045]第四獲取模塊,用于在所述第一總時長為零時,獲取計數(shù)器的計數(shù)值;
[0046]第四控制模塊,用于在所述計數(shù)器的計數(shù)值為非零時,控制計數(shù)器將計數(shù)值加I;
[0047]第五控制模塊,用于重新獲取計數(shù)器的計數(shù)值,并在重新獲取的計數(shù)器的計數(shù)值大于預設的次數(shù)閥值時,啟動多線程加速下載模式,以從所述網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件。
[0048]本發(fā)明的基于HLS流媒體的視頻數(shù)據(jù)加速下載方法及裝置,通過在接收到網(wǎng)絡媒體客戶端發(fā)送的HLS流媒體的播放請求時,循環(huán)啟動定時器;在定時器時間達到時,判斷所述HLS流媒體的播放請求對應的HLS流媒體是否下載完成;若所述HLS流媒體的播放請求對應的HLS流媒體未下載完成,則獲取緩存區(qū)中的數(shù)據(jù)量;判斷所述數(shù)據(jù)量是否大于或等于第一預設閥值;若所述數(shù)據(jù)量大于或等于第一預設閥值,則啟動多線程加速下載模式,以從網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件;即可在網(wǎng)絡狀態(tài)良好時(緩存區(qū)中的數(shù)據(jù)量大于或等于第一預設閥值時),啟動多線程加速下載模式,以從網(wǎng)絡媒體服務器中獲取HLS流媒體的分片文件,在視頻數(shù)據(jù)加速下載裝置中緩存盡量多的分片文件,減少網(wǎng)絡媒體客戶端出現(xiàn)播放異常的情況。
【附圖說明】
[0049]圖1為本發(fā)明基于HLS流媒體的視頻數(shù)據(jù)加速下載方法的第一實施例的流程示意圖;
[0050]圖2為圖1中步驟S14的一實施例的細化流程示意圖;
[0051]圖3為本發(fā)明基于HLS流媒體的視頻數(shù)據(jù)加速下載方法的第二實施例的流程示意圖;
[0052]圖4為本發(fā)明基于HLS流媒體的視頻數(shù)據(jù)加速下載裝置的第一實施例的結(jié)構示意圖;
[0053]圖5為本發(fā)明基于HLS流媒體的視頻數(shù)據(jù)加速下載裝置中的第一控制模塊的細化結(jié)構示意圖;
[0054]圖6為本發(fā)明基于HLS流媒體的視頻數(shù)據(jù)加速下載裝置的第二實施例的結(jié)構示意圖。
[0055]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
【具體實施方式】
[0056]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0057]參照圖1,圖1為本發(fā)明基于HLS流媒體的視頻數(shù)據(jù)加速下載方法的第一實施例的流程示意圖,該方法包括:
[0058]SlO、在接收到網(wǎng)絡媒體客戶端發(fā)送的HLS流媒體的播放請求時,循環(huán)啟動定時器。
[0059]該播放請求中可包括HLS流媒體的播放列表,播放列表中的每一項對應一個分片文件,每個分片有一個唯一的編號,如,其中一個分片的編號為100,各個分片文件按照播放順序進行排序,先播放的分片文件的編號較小。該播放列表中的每