在HLS協(xié)議中擴展實現(xiàn)快進快退及精確Seek的方法
【專利摘要】本發(fā)明公開了一種在HLS協(xié)議中擴展實現(xiàn)快進快退及精確Seek的方法,包括如下步驟:獲得I幀記錄信息步驟;I幀描述信息組織步驟,將媒體分片時存儲的每個I幀的記錄信息按照一定的格式組織,將一個分片中對應包含的所有I幀的記錄信息組織在一起,稱為該分片的I幀描述信息;M3U8擴展記錄I幀描述信息步驟,為了客戶端能獲得每個分片的I幀描述信息,將每個分片的I幀描述信息存儲在M3U8文件中,客戶端在獲得M3U8文件時,同時獲得每個分片的I幀描述信息;用戶端根據(jù)M3U8擴展信息精確播放控制步驟。本發(fā)明能夠解決OTT移動視頻服務系統(tǒng)中精確Seek、快進、快退播放等精細控制問題,達到平滑播放、隨意播放,提升數(shù)字媒體生活體驗。
【專利說明】在HLS協(xié)議中擴展實現(xiàn)快進快退及精確Seek的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及流媒體通信【技術(shù)領(lǐng)域】,特別是涉及到一種基于開放互聯(lián)網(wǎng)的移動視頻服務系統(tǒng),及其在直播、點播以及時移時快進、快推以及精細Seek操作的控制方法,是屬于數(shù)字媒體生活【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]基于開放互聯(lián)網(wǎng)的OTT移動視頻服務是將來滿足直播(Live)、點播(OnDemand)以及時移(TimeShift)等諸多應用需求的最佳解決方案之一。OTTTV是“OverTheTopTV”的縮寫,是指基于開放互聯(lián)網(wǎng)的視頻服務,終端可以是電視機、電腦、機頂盒、PAD、智能手機等等。意指在網(wǎng)絡(luò)之上提供服務,強調(diào)服務與物理網(wǎng)絡(luò)的無關(guān)性。目前通常的做法是根據(jù)HLS (HttpLiveStream)協(xié)議,按照一定的時間間隔、不同的媒體編碼格式和碼率大小將媒體數(shù)據(jù)分割打包成不同的單個文件,稱之為分片,然后把所有的分片存儲在服務端,每個分片及其時間長度等信息存儲在一個M3U8格式文件中;播放時,服務端將該格式文件傳輸給客戶端,由客戶端根據(jù)當前播放的時間位置或用戶操作要求(如Seek操作)從服務端請求指定的分片文件并播放。根據(jù)上述HLS協(xié)議規(guī)范,能實現(xiàn)基于OTT的移動視頻服務,包括直播、點播、時移播放以及基于分片的Seek操作。專利201310449988.5 (申請?zhí)?,下?、201310450166.9,201210012762.4以及201310395518.5等都是上述協(xié)議的一種實現(xiàn)。在此基礎(chǔ)上,針對分片文件個數(shù)規(guī)模大所帶來的存儲問題,專利201110148260.X提供了一種時移數(shù)據(jù)的存儲改進方法;針對多場景媒體流同步自適應播放需求,專利201310253436.7提供了一種屏幕媒體流和視頻媒體流的同步自適應直播方法。但是根據(jù)標準HLS協(xié)議及根據(jù)以上專利改進的OTT移動視頻服務系統(tǒng)依然存在以下幾個問題:1)雖然能進行Seek操作,但是Seek精度為分片的時長,不能按照單幀或多幀Seek,無法完成精確的播放控制;2)不能實現(xiàn)快進、快退播放,無法實現(xiàn)節(jié)目的快速瀏覽。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種方法,解決OTT移動視頻服務系統(tǒng)中精確Seek、快進、快退播放等精細控制問題,達到平滑播放、隨意播放,提升數(shù)字媒體生活體驗。
[0004]為了實現(xiàn)上述目的,本發(fā)明提供的技術(shù)方案為:本發(fā)明基于HLS協(xié)議規(guī)范,包括三個部分的擴展:
[0005]在媒體分片存儲時,同時記錄每個I幀的位置信息、長度信息,該信息稱之為I幀的記錄信息。
[0006]其中,所述的I幀一般指IDR的I幀,根據(jù)本發(fā)明方案,可以擴展到其它I幀信息。
[0007]根據(jù)HLS協(xié)議規(guī)范,需要將媒體按照指定的時間長度、碼率、編碼格式等分割后碼成一連串的小文件,每個小文件稱之為一個分片,該操作稱之為切片。切片時,切片參數(shù)信息,包括時間長度、碼率、編碼等由用戶設(shè)置。,在切片操作中,同時根據(jù)碼流信息,自動記錄所有I幀的記錄信息,減少2次索引查找I幀帶來的時間開銷。所述信息的記錄方法不能影響媒體的分片處理,I幀的記錄信息格式包括,但不限于格式文本、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫等,該記錄信息的格式由該系統(tǒng)的實現(xiàn)確定,不存在互通和兼容問題,一種簡單可行的辦法是和下面第2部分的I幀描述信息保持一致。
[0008]所述的記錄信息可以是絕對信息,也可以是相對信息;所述的記錄信息如果是絕對息,則必須都是絕對?目息;如果是相對?目息必須都是相對?目息。
[0009]特別的,針對已經(jīng)完成切片的媒體信息,可以增加一個2次I幀索引部件,并將獲得的每個分片I幀記錄信息直接根據(jù)下面第2部分方法形成I幀描述信息并擴展存儲在M3U8文件中。
[0010]所述的2次I幀索引部件完成多媒體信息的掃描,其基本方法和規(guī)范確定的切片過程基本相同。
[0011]在組織M3U8文件時,將媒體分片時存儲的每個I幀的記錄信息按照一定的格式組織,將一個分片中對應包含的所有I幀的記錄信息組織在一起,稱為該分片的I幀描述信息。
[0012]根據(jù)HLS協(xié)議規(guī)范,標準的M3U8文件記錄了每個分片的時間長度(一般精確到毫秒)、每個分片對應的文件名以及碼率、編碼格式等其它媒體信息。
[0013]在M3U8文件,每個分片對應用一個“#EXTINF”字段進行記錄,本發(fā)明所述技術(shù)方案是,在“#EXTINF”字段后,增加一個擴展字段記錄該分片的I幀描述信息。
[0014]其中,分片的I幀描述信息的組織可以在生成M3U8文件時同時生成。
[0015]其中,所述描述信息的組織格式可以但不限于格式化字符串,如XML或其它自定義文本格式。
[0016]客戶端播放時,根據(jù)所獲取的M3U8文件擴展字段,提取所需要的I幀描述信息,并根據(jù)I幀描述信息在用戶操作界面顯示Seek進度或在快近/快退操作時自動順序Seek對應的I幀進行播放。
[0017]其中,用戶快進或快退播放播放可以只播放I幀,也可以播放I幀或其相連的幾幀;也可以播放I幀或其相連的幾秒;具體播放方式根據(jù)參數(shù)確定,其中參數(shù)通過用戶界面輸入。
[0018]特別的,對不支持本發(fā)明擴展的客戶端播放依據(jù)本發(fā)明擴展的M3U8描述切片流,根據(jù)HLS協(xié)議規(guī)范,在解析包含I幀描述信息的擴展M3U8文件時,客戶端可以自動丟棄不識別的M3U8字段,因此客戶端可以正常播放帶擴展M3U8描述的切片流。
[0019]特別的,對支持本發(fā)明擴展的客戶端播放標準M3U8描述切片流,則不能實現(xiàn)本發(fā)明的精確控制,但依然可以按照標準程序完成流的播放。
[0020]與現(xiàn)有技術(shù)相比,本發(fā)明具有的效果:采用本發(fā)明所述方法的系統(tǒng),通過在媒體分片時就記錄每個I幀的信息,并將所記錄的信息存儲在M3U8文件的擴展字段中,客戶端不需要額外的I幀檢索就可以實現(xiàn)精確Seek、快進、快退播放等精細控制,且這種擴展不破壞HLS協(xié)議規(guī)范的完整性,不識別該擴展的終端和服務器可以正常忽略這種擴展而繼續(xù)使用,具有很好的協(xié)議兼容性。
[0021]通過以下的描述并結(jié)合附圖,本發(fā)明將變得更加清晰,這些附圖用于解釋本發(fā)明的實施例。【專利附圖】
【附圖說明】
[0022]圖1是本發(fā)明實施例擴展的基本流程圖。
【具體實施方式】
[0023]現(xiàn)在參考附圖描述本發(fā)明的實施例,附圖中類似的元件標號代表類似的元件。如上所述,如圖1所示,本發(fā)明實現(xiàn)了 OTT移動視頻服務系統(tǒng)中精確Seek、快進、快退播放等精細控制方法,達到平滑播放、隨意播放,且兼容不支持本發(fā)明的系統(tǒng),主要應用于個人計算機、機頂盒、智能電視、移動電話等智能設(shè)備上進行交互視頻服務。
[0024]本發(fā)明HLS協(xié)議擴展的具體流程如圖1所示,包括:
[0025]步驟101:獲得I幀記錄信息。媒體是經(jīng)過編碼的,為了實現(xiàn)對媒體播放過程的精確控制,根據(jù)多媒體編碼協(xié)議,需要從I幀開始才能正常解碼播放,因此在媒體分片時,需要記錄I幀息,以便精確控制時能定位到正確的位置開始播放。
[0026]根據(jù)精確控制時的定位需要,在媒體切片時,需要的媒體I幀記錄信息包括媒體中所有I幀的開始時間、偏移大小及 其長度,具體包括:
[0027](I)用戶輸入切片參數(shù),切片系統(tǒng)根據(jù)切片參數(shù)開始切片;
[0028](2)切片時,記錄每個分片的開始時間和開始位置;
[0029](3)切片時,記錄每個I幀的開始時間和開始位置;
[0030](4)切片時,記錄每個I幀的結(jié)束位置;
[0031](5)計算得到I幀的相對開始時間IStartTime=I幀的開始時間-分片的開始時間;
[0032](6)計算得到I幀的相對開始位置IStartPos=I幀的開始位置-分片的開始位置;
[0033](7)計算得到I幀的長度IFrameLength=I幀的結(jié)束位置-1幀的開始位置。
[0034]其中,IStartTime、IStartPos和IFrameLength為I幀記錄信息。特別的,若切片已經(jīng)完成,則可按如下步驟獲得I幀記錄信息,包括:
[0035](I)指定切片存儲的根目錄,根據(jù)目錄地址掃描每一個分片文件;
[0036](2)檢測分片中每個I幀的開始時間IStartTime和開始位置IStartPos ;
[0037](3)檢測分片中每個I幀的結(jié)束位置;
[0038](4)同樣可以計算到I幀的長度IFrameLength=I幀的結(jié)束位置-1StartPos。
[0039]其中,檢測的每個I幀的開始時間、開始位置、結(jié)束位置信息都是相對信息。
[0040]特別的,I幀記錄信息按照步驟102的I幀描述信息格式保存。
[0041]步驟102:組織分片的I幀描述信息。每個分片可能包含多個I幀,需要將該分片的所有I幀按照一定的格式組織在一起,具體包括:
[0042](I)根據(jù)I幀記錄信息,IStartTime表示I幀相對開始時間,IStartPos表示I中貞相對開始位置,IFrameLength表示I幀長度,將每個I幀記錄信息按照三元組“StartTime,StartPos, IFrameLength的形式組織;
[0043](2)將每個分片的所有I幀三元組信息以“ I I ”作為分割符按照先后順序連接在一起,并以“[]”包含,組織成一個字符串,即表示為“[三元組1| I三元組2| I三元組3| I……
I三元組η]”的形式,所形成的字符串即為該分片的I幀描述信息。
[0044]其中,I幀記錄信息的三元組排列可以更換成其它順序。[0045]其中,I幀描述信息的分割符和組織形式可以更換成其它形式,如XML等。
[0046]特別的,生成多種類型的分片時,其處理方法是一致的。特別的,作為一種改進,為了檢索的方便,可以對I幀描述信息進行擴展,如增加該分片的I幀個數(shù)信息等。
[0047]步驟103:M3U8擴展記錄I幀描述信息。為了客戶端能獲得每個分片的I幀描述信息,需要將每個分片的I幀描述信息存儲在M3U8文件中,客戶端在獲得M3U8文件時,同時就獲得了每個分片的I幀描述信息,具體方法是:
[0048](I)在標準M3U8文件的每個分片描述字段“#EXTINF”后面,增加一個擴展字段“#EXT_3RDVENT0R_IFRAMEINF0”,用以存儲該分片的I幀描述信息;
[0049](2)將分片的I幀描述信息作為擴展字段的參數(shù)存儲在M3U8文件中,形式是:“#EXT_3RDVENT0R_IFRAMEINF0:1 幀描述信息”。
[0050]步驟104:客戶端根據(jù)M3U8擴展信息精確播放控制。在客戶端播放時,根據(jù)M3U8文件記錄的擴展信息,自動計算并響應用戶精確Seek、快進、快退播放操作,實現(xiàn)用戶平滑播放、隨意播放控制。
[0051]客戶端播放時,根據(jù)當前播放的分片信息進行如下擴展處理:
[0052](I)根據(jù)當前播放的分片序號,從M3U8文件對應分片的擴展字段獲取該分片的I幀描述信息,得到該分片中所有I幀的三元組信息;
[0053](2)根據(jù)I幀描述信息,在客戶端播放界面顯示播放位置刻度;其中每個位置代表I個可開始播放的I幀,用戶在精確播放控制時,可根據(jù)該位置信息跳轉(zhuǎn)到分片的對應位置開始播放;
[0054](3)用戶Seek操作時,分三種情況:(a)在當前分片內(nèi)Seek時,根據(jù)位置刻度直接跳轉(zhuǎn)到該分片的對應位置播放;(b) Seek到上一個分片時,獲得上一個分片的I幀描述信息,并同時依據(jù)第(a)種情況處理;(c) Seek到下一個分片時,獲得下一個分片的I巾貞描述信息,并同時依據(jù)第(a)種情況處理;
[0055](4)獲取用戶設(shè)置的快進或快退播放參數(shù),包括播放I幀及相連幾秒的時間參數(shù);
[0056](5)用戶快進或快退播放操作時,根據(jù)I幀描述信息,自動按照順序逐一 Seek到下一個/上一個I幀進行播放,即上述擴展(3)的自動執(zhí)行過程。其中,Seek到另一個分片時,播放界面的刻度要根據(jù)新分片的I幀描述信
[0057]息重新刷新顯示。
[0058]特別的,當M3U8文件沒有包含擴展的I幀描述信息時,則不能進行精確的Seek跳轉(zhuǎn)播放,此時客戶端播放界面不能顯示播放位置刻度,但依然可以按照分片播放。
[0059]應用時,切片系統(tǒng)在切片是自動記錄分片的I幀記錄信息,或者針對已經(jīng)完成切片的媒體分片,通過順序掃描檢測獲得每個分片的I幀記錄信息,然后將獲得的每個分片I幀記錄信息按照格式組織成分片的I幀描述信息,并同時存儲在M3U8的擴展字段中;客戶端在播放時,通過M3U8的擴展字段獲得分片的I幀描述信息,并解析出每個I幀的位置然后以刻度的形式顯示在客戶端的播放界面上,以根據(jù)用戶的操作或自動跳轉(zhuǎn)到分片的對應位置開始播放,從而實現(xiàn)分片的Seek和快進/快退等精確播放控制。
[0060]以上所揭露的僅為本發(fā)明的優(yōu)選實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明申請專利范圍所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種在HLS協(xié)議中擴展實現(xiàn)快進快退及精確Seek的方法,其特征在于,包括如下步驟: 獲得I幀記錄信息步驟,在媒體分片存儲時,同時記錄每個I幀的位置信息、長度信息,該信息稱之為I幀的記錄信息; I幀描述信息組織步驟,將媒體分片時存儲的每個I幀的記錄信息按照一定的格式組織,將一個分片中對應包含的所有I幀的記錄信息組織在一起,稱為該分片的I幀描述信息; M3U8擴展記錄I幀描述信息步驟,為了客戶端能獲得每個分片的I幀描述信息,將每個分片的I幀描述信息存儲在M3U8文件中,客戶端在獲得M3U8文件時,同時獲得每個分片的I幀描述信息; 用戶端根據(jù)M3U8擴展信息精確播放控制步驟,根據(jù)所獲取的M3U8文件擴展字段,提取所需要的I幀描述信息,并根據(jù)I幀描述信息在用戶操作界面顯示Seek進度或在快進/快退操作時自動順序Seek對應的I幀進行播放。
2.如權(quán)利要 求1所述的方法,其特征在于,根據(jù)HLS協(xié)議規(guī)范,需要將媒體按照指定的時間長度、碼率、編碼格式分割后碼成一連串的小文件,每個小文件稱之為一個分片,該操作稱之為切片,切片時,切片參數(shù)信息,包括時間長度、碼率、編碼等由用戶設(shè)置。
3.如權(quán)利要求2所述的方法,其特征在于,在切片操作中,同時根據(jù)碼流信息,自動記錄所有I幀的記錄信息,減少2次索引查找I幀帶來的時間開銷。
4.如權(quán)利要求3所述的方法,其特征在于,I幀的記錄信息格式包括,格式文本、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫,該記錄信息的格式由該系統(tǒng)的實現(xiàn)確定,不存在互通和兼容問題。
5.如權(quán)利要求2所述的方法,其特征在于,針對已經(jīng)完成切片的媒體信息,可以增加一個2次I幀索引部件,并將獲得的每個分片I幀記錄信息直接根據(jù)下面第2部分方法形成I幀描述信息并擴展存儲在M3U8文件中,所述的2次I幀索引部件完成多媒體信息的掃描,其方法和規(guī)范確定的切片過程相同。
6.如權(quán)利要求2所述的方法,其特征在于,所述的記錄信息可以是絕對信息,也可以是相對信息;所述的記錄信息如果是絕對信息,則必須都是絕對信息;如果是相對信息必須都是相對息。
7.如權(quán)利要求2所述的方法,其特征在于,I幀描述信息組織步驟,根據(jù)HLS協(xié)議規(guī)范,標準的M3U8文件記錄了每個分片的時間長度、每個分片對應的文件名以及碼率、編碼格式等其它媒體信息。
8.如權(quán)利要求7所述的方法,其特征在于,在M3U8文件,每個分片對應用一個“#EXTINF”字段進行記錄,在“#EXTINF”字段后,增加一個擴展字段記錄該分片的I幀描述信息。
9.如權(quán)利要求7所述的方法,其特征在于,分片的I幀描述信息的組織在生成M3U8文件時同時生成;所述描述信息的組織格式為格式化字符串。
10.如權(quán)利要求1所述的方法,其特征在于,用戶端根據(jù)M3U8擴展信息精確播放控制步驟,用戶快進或快退播放可以只播放I幀,也可以播放I幀或其相連的幾幀;也可以播放I幀或其相連的幾秒;具體播放方式根據(jù)參數(shù)確定,其中參數(shù)通過用戶界面輸入。
11.如權(quán)利要求10所述的方法,其特征在于,根據(jù)HLS協(xié)議規(guī)范,在解析包含I幀描述信息的擴展M3U8文件時,客戶端可以自動丟棄不識別的M3U8字段。
【文檔編號】H04N21/858GK103986978SQ201410148230
【公開日】2014年8月13日 申請日期:2014年4月14日 優(yōu)先權(quán)日:2014年4月14日
【發(fā)明者】范正海, 周寶忠, 鄭仁圳 申請人:曦威勝科技開發(fā)(深圳)有限公司