一種視頻幀定位方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字電視領(lǐng)域,尤其涉及一種視頻幀定位方法及裝置。
【背景技術(shù)】
[0002] MPEG-2 是運動圖像專家組(Moving Picture Experts Group,簡稱 MPEG)組織制 定的視頻和音頻有損壓縮標(biāo)準(zhǔn)之一,通常除了作為DVD的指定標(biāo)準(zhǔn),還可以作為廣播、有線 電視網(wǎng)、電纜網(wǎng)絡(luò)以及衛(wèi)星直播(Direct Broadcast Satellite)提供廣播級的數(shù)字視頻。 同時,MPEG-2采用了幀間預(yù)測編碼方式來對視頻進(jìn)行編碼,這種編碼方式的壓縮效率很高, 同時圖像質(zhì)量比較高,因而獲得了廣泛的應(yīng)用。
[0003] 在現(xiàn)有技術(shù)中,當(dāng)用戶觀看MPEG-2標(biāo)準(zhǔn)的視頻的過程中需要快速定位到某一特 定時間點的播放位置時,常用的一種做法是:通過對媒體文件的全面掃描,建立各個視頻幀 的索引文件,每個視頻幀對應(yīng)一個索引文件,每個索引文件包含了對應(yīng)視頻幀的時間信息 和對應(yīng)的文件位置,然后,根據(jù)具體的定位時間,獲取與該定位時間匹配的索引文件,從而 找到該定位時間對應(yīng)的視頻幀。
[0004] 但是,發(fā)明人發(fā)現(xiàn),在實現(xiàn)上述的視頻幀定位方法時,需要在播放前對文件進(jìn)行全 面的掃描來建立索引,這種做法針對較小體積的碼流文件缺點尚不明顯,但針對大數(shù)據(jù)量 的媒體文件(比如,幾個GByte甚至十幾個GByte的高清或者超高清的媒體文件),全面掃 描媒體文件和建立索引需要較長時間。因而,在這種情況下,上述的視頻幀定位技術(shù)就難以 滿足用戶的立即播放和快速定位的需求。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的實施例提供的一種視頻幀定位方法及裝置,解決了現(xiàn)有視頻幀定位方法 需要在播放前對文件進(jìn)行全面掃描來建立索引,而導(dǎo)致的定位的時間過長的問題。
[0006] 為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0007] 第一方面,提供一種視頻幀定位方法,包括:
[0008] 獲取當(dāng)前需要跳轉(zhuǎn)的定位時間;所述定位時間為毫秒級定位時間;
[0009] 根據(jù)所述定位時間,按照搜索步長和搜索方向檢索所述媒體文件,從中定位出所 述定位時間對應(yīng)的目標(biāo)圖像組;
[0010] 根據(jù)所述媒體文件的第一視頻幀的顯示時間戳以及所述目標(biāo)圖像組中的每個視 頻幀的顯示時間戳,確定出所述目標(biāo)圖像組中的每個視頻幀相對于所述媒體文件的第一視 頻幀的相對時間;所述相對時間為毫秒級相對時間;
[0011] 將所述定位時間與所述目標(biāo)圖像組中的每個視頻幀相對于所述媒體文件的第一 視頻幀的相對時間進(jìn)行匹配,從而定位出所述定位時間對應(yīng)的目標(biāo)視頻幀。
[0012] 可選的,所述根據(jù)所述定位時間,按照搜索步長和搜索方向檢索所述媒體文件,從 中定位出所述定位時間對應(yīng)的目標(biāo)圖像組具體包括:
[0013] 按照預(yù)定搜索步長和搜索方向搜索所述媒體文件中的視頻序列頭或圖組頭;
[0014] 若所述定位時間屬于當(dāng)前搜索到的視頻序列頭中包含的視頻序列幀的時間范圍, 則從所述視頻序列頭中獲取所述視頻序列頭對應(yīng)的目標(biāo)視頻序列中圖像組的視頻幀幀數(shù) 和幀速率參數(shù),并根據(jù)所述幀速率參數(shù)確定對應(yīng)的幀速率;
[0015] 根據(jù)所述幀速率以及所述目標(biāo)視頻序列中圖像組的視頻幀幀數(shù),計算出所述目標(biāo) 視頻序列中圖像組的大?。?br>[0016] 將所述預(yù)定搜索步長重置為所述目標(biāo)視頻序列中圖像組的大??;
[0017] 按照重置的搜索步長搜索所述目標(biāo)視頻序列中的圖組頭,直到搜尋到的圖組頭對 應(yīng)的圖像組的第一視頻幀相對于所述媒體文件的第一視頻幀的相對時間與所述定位時間 間的差值小于或等于預(yù)定門限值時,則將所述圖像組定位為所述定位時間對應(yīng)的目標(biāo)圖像 組。
[0018] 可選的,所述按照搜索步長和搜索方向搜索所述媒體文件中的視頻序列頭或圖組 頭之后,所述方法還包括:
[0019] 若當(dāng)前搜尋到的圖組頭對應(yīng)的圖像組的第一視頻幀相對于所述媒體文件的第一 視頻幀的相對時間與所述定位時間間的差值小于或等于所述預(yù)定門限值時,則直接將所述 當(dāng)前搜尋到的圖組頭對應(yīng)的圖像組定位為所述定位時間對應(yīng)的目標(biāo)圖像組。
[0020] 可選的,所述將所述定位時間與所述目標(biāo)圖像組中的每個視頻幀相對于所述媒體 文件的第一視頻幀的相對時間進(jìn)行匹配,從而定位出所述定位時間對應(yīng)的目標(biāo)視頻幀具體 包括:
[0021] 獲取所述毫秒級定位時間的小數(shù)部分;
[0022] 獲取所述目標(biāo)圖像組中的每個視頻幀相對于所述媒體文件的第一視頻幀的毫秒 級相對時間的小數(shù)部分;
[0023] 將所述毫秒級定位時間的小數(shù)部分與所述目標(biāo)圖像組中的每個視頻幀相對于所 述媒體文件的第一視頻幀的毫秒級相對時間的小數(shù)部分行匹配,從而定位出所述定位時間 對應(yīng)的目標(biāo)視頻幀。
[0024] 可選的,所述獲取當(dāng)前需要跳轉(zhuǎn)的定位時間之后,所述方法還包括:
[0025] 獲取所述媒體文件的第一個視頻幀的顯示時間戳和所述媒體文件的最后一個視 頻幀的顯示時間戳;
[0026] 獲取所述根據(jù)所述媒體文件的第一個視頻幀的顯示時間戳、所述媒體文件的最后 一個視頻幀的顯示時間戳,計算所述媒體文件的總時間長度;
[0027] 獲取所述媒體文件的文件長度;
[0028] 根據(jù)所述定位時間、所述媒體文件的文件長度以及總時間長度,確定所述定位時 間對應(yīng)在所述媒體文件中的指針;
[0029] 進(jìn)一步的,所述根據(jù)所述定位時間,按照預(yù)定搜索步長和預(yù)定搜索方向檢索所述 媒體文件,從中定位出所述定位時間對應(yīng)的目標(biāo)圖像組具體包括:
[0030] 根據(jù)所述定位時間對應(yīng)在所述媒體文件中的指針,按照搜索步長和搜索方向檢索 所述媒體文件,從中定位出所述定位時間對應(yīng)的目標(biāo)圖像組。
[0031] 第二方面,提供一種視頻幀定位裝置,包括:
[0032] 獲取模塊,用于獲取當(dāng)前需要跳轉(zhuǎn)的定位時間;所述定位時間為毫秒級定位時 間;
[0033] 定位模塊,用于根據(jù)所述獲取模塊獲取的所述定位時間,按照搜索步長和搜索方 向檢索所述媒體文件,從中定位出所述定位時間對應(yīng)的目標(biāo)圖像組;
[0034] 確定模塊,用于根據(jù)所述媒體文件的第一視頻幀的顯示時間戳以及所述目標(biāo)圖像 組中的每個視頻幀的顯示時間戳,確定出所述定位模塊定位出的所述目標(biāo)圖像組中的每個 視頻幀相對于所述媒體文件的第一視頻幀的相對時間;所述相對時間為毫秒級相對時間;
[0035] 匹配模塊,用于將所述獲取模塊獲取的所述定位時間與所述確定模塊確定出的所 述目標(biāo)圖像組中的每個視頻幀相對于所述媒體文件的第一視頻幀的相對時間進(jìn)行匹配,從 而定位出所述定位時間對應(yīng)的目標(biāo)視頻幀。
[0036] 可選的,所述定位模塊包括:
[0037] 搜索單元,用于按照預(yù)定搜索步長和預(yù)定搜索方向搜索所述媒體文件中的視頻序