一種基于hls協(xié)議的視頻精確定位裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及流媒體播放領(lǐng)域,具體來講是指一種基于HLS協(xié)議的視頻精確定位裝置及方法。
【背景技術(shù)】
[0002]隨著數(shù)字技術(shù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,互聯(lián)網(wǎng)多媒體的應(yīng)用日益興旺,HLS(HTTPLive Streaming,Apple的動態(tài)碼率自適應(yīng)技術(shù))的規(guī)范在互聯(lián)網(wǎng)多媒體中應(yīng)用越來越廣泛。HLS協(xié)議特點是將容量巨大的連續(xù)媒體數(shù)據(jù)進行分段,分割為數(shù)量眾多的TSCTransportStream)分片進行傳遞,機頂盒不斷的請求下載TS分片實現(xiàn)流暢的播放。在HLS協(xié)議規(guī)范中,每個TS分片都有#EXTINF字段標識分片的時長,并且每個分片都有一個序列號與之相對應(yīng),因此,HLS支持直播和點播的同時,也支持點播的定位操作。由于每個TS分片具有序列號和時長的信息,所以機頂盒可以根據(jù)定位的時間去計算需要播放的TS分片,根據(jù)計算結(jié)果選擇需要播放的TS分片進行播放,這樣就達到了定位的效果。
[0003]目前大多數(shù)HLS應(yīng)用中的定位時間單位是秒,小于一個TS分片的時長,當定位的時間在一個TS分片中間的時候,機頂盒就需要下載該分片播放,并沒有精確到定位時間附近的I幀進行播放;但是如果不從I幀開始播放,播放會有花屏,播放效果不好,給用戶的感覺是定位不夠精確,用戶體驗效果差。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于HLS協(xié)議的視頻精確定位裝置及方法,在播放中實現(xiàn)精準定位,避免花屏,播放效果好,提高用戶體驗。
[0005]為達到以上目的,本發(fā)明采取一種基于HLS協(xié)議的視頻精確定位裝置,設(shè)置于機頂盒,包括控制模塊,以及分別與控制模塊相連的播放模塊、循環(huán)緩存模塊、I幀檢索模塊和HLS模塊,循環(huán)緩存模塊還分別連接I幀檢索模塊和HLS模塊;其中,HLS模塊用于與HLS服務(wù)器交互,循環(huán)緩存模塊用于對TS分片循環(huán)下載并管理,I幀檢索模塊用于對循環(huán)緩存模塊中下載的TS分片進行查找并建立I幀索引列表,播放模塊用于從循環(huán)緩存模塊中取TS分片進行播放,控制模塊用于控制上述所有模塊。
[0006]在上述技術(shù)方案的基礎(chǔ)上,HLS模塊中設(shè)有播放列表,播放列表的表項包括TS分片長度以及對應(yīng)的分片序列號。
[0007]本發(fā)明還提供一種基于HLS協(xié)議的視頻精確定位方法,機頂盒收到HLS點播播放命令,HLS模塊下載對應(yīng)的M3U8文件并解析,生成TS分片索引,循環(huán)緩存模塊下載TS分片,播放模塊播放循環(huán)緩存模塊已下載的TS分片,I幀檢索模塊對循環(huán)緩存中每一個下載的TS分片進行檢索,并建立I幀索引列表;當機頂盒收到定位播放命令后,控制模塊根據(jù)定位時間計算需要播放的TS分片信息,從循環(huán)緩存模塊中尋找需要播放的TS分片信息,再根據(jù)定位時間和I幀索引列表計算出循環(huán)緩存模塊中存儲該定位時間視頻內(nèi)容的I幀地址信息,播放模塊根據(jù)循環(huán)緩存模塊中I幀地址信息,提取對應(yīng)的音視頻數(shù)據(jù)進行播放。
[0008]在上述技術(shù)方案的基礎(chǔ)上,HLS模塊下載對應(yīng)的M3U8文件并解析的具體步驟為:S201.HLS模塊根據(jù)接收到的播放URL,向服務(wù)器請求一級M3U8文件;S202.對獲取到的一級M3U8文件進行解析并生成二級M3U8文件請求URL ;S203.HLS模塊向服務(wù)器請求二級M3U8文件;S204.HLS模塊對獲取到的二級M3U8文件進行解析并生成TS分片索引。
[0009]在上述技術(shù)方案的基礎(chǔ)上,循環(huán)緩存模塊根據(jù)TS分片索引依次下載需要播放的TS分片。
[0010]在上述技術(shù)方案的基礎(chǔ)上,循環(huán)緩存模塊下載TS分片過程中,實時判斷循環(huán)緩存模塊內(nèi)部空余大小,若內(nèi)部空余不足時,停止下載TS分片,只有在內(nèi)部空余足夠時,繼續(xù)下載新的TS分片。
[0011]在上述技術(shù)方案的基礎(chǔ)上,I幀檢索模塊建立I幀索引列表的流程為:S301.對下載到循環(huán)緩存模塊中的TS分片進行節(jié)目關(guān)聯(lián)表解析;S302.根據(jù)解析到的節(jié)目關(guān)聯(lián)表,對節(jié)目映射表進行解析;S303.根據(jù)解析到的節(jié)目映射表,對視頻標志碼傳輸包進行解析;
5304.根據(jù)解析到的視頻標志碼傳輸包,在TS分片中找到視頻標志碼傳輸包的PES包頭;
5305.根據(jù)找到的PES包頭,判斷是否為I幀的PES包頭數(shù)據(jù),若是,進入S306;若否,進入S304 ;S306.根據(jù)找到的I幀PES包頭數(shù)據(jù)建立I幀索引列表,進入S301。
[0012]在上述技術(shù)方案的基礎(chǔ)上,機頂盒從循環(huán)緩存模塊中尋找需要播放的TS分片信息,如果此時循環(huán)緩存模塊中沒有需要播放的TS分片信息,則循環(huán)換緩存模塊由網(wǎng)絡(luò)中下載該TS分片,下載完成后,再進行I幀檢索,建立I幀索引列表。
[0013]本發(fā)明的有益效果在于:針對TS分片的I幀信息進行檢索并建立I幀索引列表,在定位操作時,根據(jù)定位的時間信息計算出需要播放的I幀,機頂盒從計算出來的I幀開始播放,解決了不能定位到TS分片中間的問題,能夠在不修改HLS協(xié)議的基礎(chǔ)上,在機頂盒側(cè)就能實現(xiàn)HLS協(xié)議的視頻精確定位,播放效果好,提高用戶體驗。
【附圖說明】
[0014]圖1為本發(fā)明實施例基于HLS協(xié)議的視頻精確定位裝置不意圖;
[0015]圖2為本發(fā)明實施例基于HLS協(xié)議的視頻精確定位方法的流程圖;
[0016]圖3為本發(fā)明實施例HLS模塊下載對應(yīng)的M3U8文件并解析的流程圖;
[0017]圖4為本發(fā)明實施例建立I幀索引列表的流程圖。
[0018]附圖標記:
[0019]1-控制模塊,2-播放模塊,3-循環(huán)緩存模塊、4-1幀檢索模塊,5-HLS模塊。
【具體實施方式】
[0020]以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明。
[0021]如圖1所示,本發(fā)明基于HLS協(xié)議的視頻精確定位裝置,設(shè)置于機頂盒,包括控制模塊1,以及分別與控制模塊I相連的播放模塊2、循環(huán)緩存模塊3、I幀檢索模塊4和HLS模塊5,循環(huán)緩存模塊3還分別連接播放模塊2、I幀檢索模塊4和HLS模塊5,HLS模塊中設(shè)有播放列表,播放列表的表項包括TS分片長度以及對應(yīng)的分片序列號。其中,HLS模塊5用于與HLS服務(wù)器交互,完成HLS協(xié)議的實現(xiàn);循環(huán)緩存模塊3用于對TS分片循環(huán)下載并管理幀檢索模塊4用于對循環(huán)緩存模塊3中下載的TS分片進行查找并建立I幀索引列表;播放模塊2用于從循環(huán)緩存模塊3中取TS分片進行播放;控制模塊I用于控制播放模塊2、循環(huán)緩存模塊3、I幀檢索模塊4和HLS模塊5協(xié)同工作,完成HLS播放以及基于HLS的精確定位。
[0022]如圖2所示,本發(fā)明實施例基于HLS協(xié)議的視頻精確定位方法的詳細步驟如下:
[0023]S1.機頂盒接收到HLS點播播放命令。
[0024]S2.控制模塊I根據(jù)收到的HLS點播播放命令以及播放URL (Uniform ResourceLocator,統(tǒng)一資源定位符),控制HLS模塊5下載對應(yīng)的M3U8文件并解析,生成TS分片索引。
[0025]S3.循環(huán)緩存模塊3根據(jù)網(wǎng)絡(luò)情況選擇合適碼率,根據(jù)TS分片索引依次下載需要播放的TS分片。同時,播放模塊2播放循環(huán)緩存模塊3中已下載的TS分片,I幀檢索模塊4對循環(huán)緩存模塊3中每一個下載的TS分片進行檢索,并建立I幀索引列表。在循環(huán)緩存模塊3下載TS分片過程中,循環(huán)緩存模塊3實時判斷循環(huán)緩存模塊內(nèi)部空余大小,若內(nèi)部空余不足時,停止下載TS分片,只有在內(nèi)部空余足夠時,繼續(xù)下載新的TS分片。
[0026]S4.控制模塊