專利名稱:一種無索引視頻文件快進快退方法、裝置以及播放系統(tǒng)的制作方法
技術領域:
本發(fā)明屬于視頻技術領域,尤其涉及一種無索引視頻文件快進快退方法、裝置以及播放系統(tǒng)。
背景技術:
隨著網(wǎng)絡技術及多媒體技術的快速發(fā)展,大容量的視頻文件也逐漸出現(xiàn)在人們的日常生活中,然而,由于嵌入式設備系統(tǒng)資源的局限性,大多數(shù)嵌入式設備上的播放器都不支持無索引的視頻文件的快進或快退的播放。目前,常用的做法是,播放器在播放無索引的視頻文件之前,首先搜索出存在于該視頻文件中的所有I幀,再記錄每個I幀在該視頻文件中偏移地址和播放時間戳的映射關系,即為無索引的視頻文件建立一個索引表,以便達到播放該視頻文件時可以快進或快退的目的。該方法雖然可以使無索引的視頻文件快進或快退播放,但是由于嵌入式設備上的內(nèi)存和CPU的處理速度都是有限的,因此在建立索引表時,會占用較長的時間,致使用戶體驗不佳。
發(fā)明內(nèi)容
本發(fā)明提供了一種無索引視頻文件快進快退方法,旨在解決在嵌入式設備上播放無索引的視頻文件之前,需要先建立整個視頻文件的索引表,導致的等待播放時間過長,致使用戶體驗不佳的問題。本發(fā)明是這樣實現(xiàn)的,一種無索引視頻文件快進快退方法,所述方法包括步驟在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;根據(jù)索引表響應播放請求。本發(fā)明的另一目的在于提供一種無索引視頻文件快進快退裝置,所述裝置包括建立索引表單元,用于在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;播放文件單元,用于開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;響應播放單元,用于根據(jù)索引表響應播放請求。本發(fā)明的另一目的在于提供包含無索引視頻文件快進快退裝置的播放系統(tǒng)。本發(fā)明實施例中,索引文件句柄在播放文件句柄播放視頻文件前,遍歷預設數(shù)量的關鍵幀,并建立已遍歷關鍵幀的索引表,在播放文件句柄播放視頻文件的過程中,索引文件句柄繼續(xù)遍歷視頻文件中未遍歷的關鍵幀,由于開啟了索引文件句柄和播放文件句柄, 使得建立、存儲視頻文件的索引表與播放視頻文件可以同時進行。因而在接收到播放請求時,可以快速響應用戶。又因為在播放視頻文件之前,并沒有建立視頻文件的所有關鍵幀的索引表,因而可以有效減少用戶等待播放視頻文件的時間,從而改善用戶體驗。
圖1是本發(fā)明實施例提供的無索引視頻文件快進快退方法流程;圖2是本發(fā)明實施例提供的無索引視頻文件快進快退裝置結(jié)構。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例在播放視頻文件之前,開啟索引文件句柄遍歷數(shù)量為預先設置數(shù)量的關鍵幀,并將遍歷后的關鍵幀的信息存儲至索引表之后,開啟播放文件句柄播放視頻文件,在該播放文件句柄播放視頻文件時,索引文件句柄繼續(xù)遍歷視頻文件中的其他關鍵幀, 并為遍歷過的關鍵幀建立索引表。本發(fā)明提供了一種無索引視頻文件快進快退方法、裝置以及播放系統(tǒng)所述方法包括在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;根據(jù)索引表響應播放請求。所述裝置包括建立索引表單元,用于在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;播放文件單元,用于開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;響應播放單元,用于根據(jù)索引表響應播放請求。所述播放系統(tǒng)包括一種包含無索引視頻文件快進快退裝置的播放系統(tǒng)。本發(fā)明實施例中,索引文件句柄在播放文件句柄播放視頻文件前,遍歷預設數(shù)量的關鍵幀,并建立已遍歷關鍵幀的索引表,在播放文件句柄播放視頻文件的過程中,索引文件句柄繼續(xù)遍歷視頻文件中未遍歷的關鍵幀,由于開啟了索引文件句柄和播放文件句柄, 使得建立、存儲視頻文件的索引表與播放視頻文件可以同時進行。因而在接收到播放請求時,可以快速響應用戶。又因為在播放視頻文件之前,并沒有建立視頻文件的所有關鍵幀的索引表,因而可以有效減少用戶等待播放視頻文件的時間,從而改善用戶體驗。實施例一圖1示出了本發(fā)明實施例提供的無索引視頻文件快進快退方法流程,詳述如下在步驟SlOl中,在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;句柄,指使用一個唯一的整數(shù)值,標識應用程序中的不同對象和同類對象中的不同實例,例如,一個窗口、按鈕、圖標都可以稱為句柄,通過該窗口、按鈕或者圖標,應用程序就可以訪問該窗口、按鈕或者圖標包含的對象信息。本發(fā)明實施例中,索引文件句柄包含索引表,該索引表用于存儲視頻文件中的關鍵幀的偏移地址和時間戳一一映射的關系。其中, 關鍵幀為視頻文件在表現(xiàn)運動或變化時,前后給出表現(xiàn)兩個不同關鍵狀態(tài)的幀,它能夠獨立解碼,且?guī)瑑?nèi)數(shù)據(jù)量很大,與之相反的,非關鍵幀則不能獨立解碼,且?guī)瑑?nèi)的數(shù)據(jù)量遠小于關鍵幀的數(shù)據(jù)量,常見的關鍵幀如I幀。接收文件播放請求之后,開啟一個索引文件句柄,該索引文件句柄將遍歷的數(shù)量為預設數(shù)量關鍵幀的偏移地址和時間戳一一映射的關系存入索引文件句柄建立的索引表中。具體設置預遍歷關鍵幀的數(shù)量,是根據(jù)實際需求進行設置的,比如,在快進、快退播放變化較多時,設置表示預遍歷關鍵幀數(shù)量的值大一點,以便在播放視頻文件前遍歷過的關鍵幀多一些,這樣,在播放視頻文件時,也能快速查找到與快進、快退時間匹配的時間戳,相反,則可以設置表示遍歷關鍵幀數(shù)量的值小一點。由于在播放視頻文件前,只存儲視頻文件中數(shù)量為預設數(shù)量關鍵幀的時間戳和偏移地址的映射關系,在播放視頻文件的過程中,再繼續(xù)遍歷視頻文件中未遍歷的關鍵幀,并存儲遍歷過的關鍵幀的時間戳和偏移地址的映射關系,因而預先設置遍歷關鍵幀的數(shù)量能夠減少用戶等待播放視頻文件的時間,從而改善用戶體驗。在索引文件句柄建立的索引表中,每個偏移地址與一個時間戳對應,根據(jù)時間戳就可以搜索到與之對應的偏移地址,而根據(jù)該偏移地址可以查找到視頻文件中的關鍵幀。 當然,也可以將關鍵幀的信息,如該關鍵幀的位置、名稱一起存入索引表中。其中,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表的步驟具體為判斷當前遍歷的幀是否為關鍵幀;在當前遍歷的幀為關鍵幀時,將該當前遍歷的幀在視頻文件中的偏移地址和時間戳之間的映射關系存入索引表中。若當前遍歷的幀不是關鍵幀,則繼續(xù)搜索當前遍歷幀的后一幀,并判斷當前遍歷的幀的后一幀是否為關鍵幀。幀頭信息用以標識一個幀的類型,判斷當前遍歷的幀是否為關鍵幀,可通過解析該幀的幀頭信息來判斷。當然,在判斷flv文件中的幀是否為關鍵幀時,可通過幀內(nèi)的標識判斷,這是因為flv文件的每一幀都附有相應的標識,標識該幀是否為關鍵幀。此外,由于關鍵幀的數(shù)據(jù)量遠大于非關鍵幀的數(shù)據(jù)量,因此,也可以通過比較各幀內(nèi)的數(shù)據(jù)量判斷該幀是否為關鍵幀,此處不作限定。作為本發(fā)明的另一個實施例,存儲有關鍵幀的時間戳和偏移地址映射關系的索引表可以存儲在內(nèi)存中,以便快速調(diào)用該索引表。當然,也可以將該索引表存儲在一個文件中,此處不作限定。在步驟S102中,開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;開啟一個播放文件句柄,該播放文件句柄在索引文件句柄的索引表中查找與當前播放時間匹配的時間戳,根據(jù)索引表中時間戳與偏移地址的映射關系,搜索到與當前播放時間匹配的時間戳對應的偏移地址。比如,索引表存儲的時間戳13秒對應的偏移地址為 100,時間戳為30秒對應的偏移地址為300,與當前時間匹配的時間戳為13秒,則根據(jù)該時間戳13秒搜索到的偏移地址為100。其中,并根據(jù)已遍歷的關鍵幀更新索引表的步驟具體為將已遍歷的關鍵幀在視頻文件中的偏移地址和時間戳之間的映射關系存入索引表。本發(fā)明實施例中,在播放文件句柄播放視頻文件的過程中,索引文件句柄繼續(xù)遍歷視頻文件中未遍歷的關鍵幀,并將遍歷過的關鍵幀在視頻文件中的偏移地址和時間戳之間的映射關系存入索引文件句柄建立的索引表中。在步驟S103中,根據(jù)索引表響應播放請求。根據(jù)接收的用戶發(fā)送快進、快退或者定位的播放請求以及搜索到的偏移地址,在播放文件句柄中播放視頻文件。作為本發(fā)明的一個實施例,用戶需要快進當前觀看的視頻文件,則接收用戶發(fā)送的快進播放請求,播放文件句柄在索引文件句柄的索引表中查找與當前時間匹配的時間戳,并根據(jù)該時間戳與偏移地址的映射關系,在索引表中搜索到與該時間戳對應的偏移地址之后,播放文件句柄播放該偏移地址對應的關鍵幀。繼續(xù)尋找下一個播放的關鍵幀,由于接收的是用戶發(fā)送的快進播放請求,即快進播放視頻文件中的關鍵幀,則下一個播放的關鍵幀的時間戳,為索引表中當前時間戳的后一個時間戳,繼續(xù)上述步驟,直到接收結(jié)束快進播放請求或者已播放到索引表存儲的最后一個時間戳,播放文件句柄結(jié)束播放視頻文件。 其中,該時間戳為視頻文件中最后一個關鍵幀對應的時間戳。作為本發(fā)明的另一個實施例,用戶需要快退當前觀看的視頻文件,則接收用戶發(fā)送的快退播放請求,播放文件句柄在索引文件句柄的索引表中查找與當前時間匹配的時間戳,并根據(jù)該時間戳與偏移地址的映射關系,在索引表中搜索到與該時間戳對應的偏移地址之后,播放文件句柄播放該偏移地址對應的關鍵幀。繼續(xù)尋找下一個播放的關鍵幀,由于接收的是用戶發(fā)送的快退播放請求,即快退播放視頻文件中的關鍵幀,則下一個播放的關鍵幀的時間戳,為索引表中當前時間戳的前一個時間戳,播放文件句柄在索引表中搜索該時間戳對應的偏移地址,查找到偏移地址之后,播放文件句柄播放該偏移地址對應的關鍵幀,繼續(xù)上述步驟,直到接收結(jié)束快退播放請求或者已播放到索引表存儲第一個時間戳對應的關鍵幀,播放文件句柄結(jié)束播放視頻文件。作為本發(fā)明的又一個實施例,用戶需要從新的播放點播放當前觀看的視頻文件, 則接收用戶發(fā)送的從新的播放點播放的請求,播放文件句柄在索引文件句柄的索引表中查找與新的播放點時間匹配的時間戳,并根據(jù)該時間戳與偏移地址的映射關系,在索引表中搜索與該時間戳對應的偏移地址,播放文件句柄播放該偏移地址對應的關鍵幀,并繼續(xù)播放與該幀相鄰的后一個幀。作為本發(fā)明的另一個實施例,若接收到快進或快退請求時,播放文件句柄在索引表中沒有查找到與新的播放點時間匹配的時間戳,則在索引文件句柄遍歷了下一個關鍵幀,并將該關鍵幀在視頻文件中的時間戳和偏移地址的映射關系存入索引表中之后,播放文件句柄再繼續(xù)查找與當前時間匹配的時間戳,若查找的時間戳存在,則搜索到時間戳對應的偏移地址,并播放該偏移地址對應的關鍵幀,重復執(zhí)行上述步驟,直到查找到匹配的時間戳。若接收到從新的播放點播放文件請求時,播放文件句柄在索引表中沒有查找到與新的播放點時間匹配的時間戳,則可判斷該新的播放點時間與索引表中的時間戳的差值是否在預設的差值范圍內(nèi),若在預設的差值范圍內(nèi),則播放與新的播放點時間的差值最小的時間戳所對應的關鍵幀,比如,預設的差值范圍為1秒,新的播放點時間為10秒,索引表中關鍵幀所對應的時間戳有2秒、5秒、7秒、9秒、12秒,由于新的播放點時間為10秒與9秒的差值最小,因此當用戶需要定點到視頻文件中10秒的幀時,播放文件句柄播放時間戳為9秒所對應的關鍵幀。若新的播放點時間與索引表中的時間戳的差值不在預設的差值范圍內(nèi), 則在索引文件句柄遍歷了下一個關鍵幀,并將該關鍵幀在視頻文件中的時間戳和偏移地址的映射關系存入索引表中之后,播放文件句柄再繼續(xù)查找與當前時間或者新的播放點時間匹配的時間戳,若查找的時間戳存在,則搜索到時間戳對應的偏移地址,并播放該偏移地址對應的關鍵幀,重復執(zhí)行上述步驟,直到查找到匹配的時間戳或者新的播放點時間與索引表中的時間戳的差值在預設的差值范圍內(nèi)。由于在播放文件句柄播放視頻文件時,索引文件句柄也在繼續(xù)遍歷視頻文件的關鍵幀,并建立索引表,因此,即使索引表中不存在與播放請求的時間匹配的時間戳,播放文件句柄重新搜索到與播放請求的時間匹配的時間戳也不需要耗費過多的時間。本發(fā)明實施例中,索引文件句柄在播放文件句柄播放視頻文件前,遍歷預設數(shù)量的關鍵幀,并建立已遍歷關鍵幀的索引表,在播放文件句柄播放視頻文件的過程中,索引文件句柄繼續(xù)遍歷視頻文件中未遍歷的關鍵幀,由于開啟了索引文件句柄和播放文件句柄, 使得建立、存儲視頻文件的索引表與播放視頻文件可以同時進行。因而在接收到播放請求時,可以快速響應用戶。又因為在播放視頻文件之前,并沒有建立視頻文件的所有關鍵幀的索引表,因而可以有效減少用戶等待播放視頻文件的時間,從而改善用戶體驗。實施例二 圖2示出了本發(fā)明實施例提供的無索引視頻文件快進快退裝置的結(jié)構,為了便于說明,僅示出了與本發(fā)明實施例相關的部分。建立索引表單元201,用于在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;播放文件單元202,用于開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;響應播放單元203,用于根據(jù)索引表響應播放請求。本發(fā)明實施例中,在播放視頻文件之前,建立索引表單元201在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表,在索引表存入了預設遍歷數(shù)量的關鍵幀信息之后,播放文件單元202開啟播放文件句柄,播放文件與此同時,索引文件句柄繼續(xù)遍歷視頻文件中未遍歷的關鍵幀,并更新索引表的關鍵幀,如果接收到新的播放請求,則響應播放單元203根據(jù)索引表存儲關鍵幀的信息響應播放請求。由于在播放視頻文件之前,建立索引表單元201沒有為視頻文件所有的關鍵幀建立索引表,因而可以有效減少用戶等待播放視頻文件的時間,從而改善用戶體驗。作為本發(fā)明的另一個實施例,建立索引表單元201還包括判斷單元2011,用于判斷當前遍歷的幀是否為關鍵幀;存儲單元2012,用于在當前遍歷的幀為關鍵幀時,將該當
8前遍歷的幀在視頻文件中的偏移地址和時間戳之間的映射關系存入索引表中。本發(fā)明實施例中,由于視頻文件中存在關鍵幀和非關鍵幀,因此需要先判斷出那些為關鍵幀,以便索引文件句柄為該關鍵幀建立索引表。作為本發(fā)明的另一個實施例,響應播放單元203還包括快進播放模塊2031和/或快退播放模塊2032和/或定位播放模塊2033。其中,快進播放模塊2031,用于若播放請求為快進請求,播放文件句柄在索引表中查找與當前時間匹配的時間戳,并搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀,繼續(xù)在索引表中查找所述時間戳的后一個時間戳;快退播放模塊2032,用于若播放請求為快退請求,播放文件句柄在索引表中查找與當前時間匹配的時間戳,并搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀,繼續(xù)在索引表中查找所述時間戳的前一個時間戳;定位播放模塊2033, 用于若播放請求為從新的播放點播放的請求,播放文件句柄在索引表中查找與新的播放點時間匹配的時間戳,再搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀,并繼續(xù)播放所述關鍵幀的下一幀。作為本發(fā)明的另一個實施例,響應播放單元203還可以包括等待播放模塊2034, 用于若在播放請求為快進或快退的請求時,播放文件句柄在索引表中沒有查找到與當前時間匹配的時間戳,則在索引文件句柄遍歷新的關鍵幀并建立已遍歷的關鍵幀的索引表之后,播放文件句柄繼續(xù)在索引表中查找與當前時間匹配的時間戳,若在播放請求為從新的播放點播放的請求時,播放文件句柄在索引表中沒有查找到與新的播放點時間匹配的時間戳或者所述新的播放點時間與索引表中時間戳的差值不在預設范圍內(nèi)時,則在索引文件句柄遍歷新的關鍵幀并建立已遍歷的關鍵幀的索引表之后,播放文件句柄繼續(xù)在索引表中查找與新的播放點時間匹配或者差值在預設范圍內(nèi)的時間戳。本發(fā)明實施例中,若播放文件句柄在索引表中查找到與播放請求時間匹配的時間戳,則根據(jù)該時間戳,搜索到與該時間戳對應的偏移地址,并播放該偏移地址對應的關鍵幀;若播放文件句柄在索引表中沒有查找到與播放請求時間匹配的時間戳,則在索引文件句柄遍歷了一個新的關鍵幀,并建立該關鍵幀的索引表之后,播放文件句柄繼續(xù)在索引表中查找與播放請求時間匹配的時間戳。由于索引文件句柄和播放文件句柄同時工作,因此可以有效縮短用戶等待視頻文件播放的時間,提高用戶體驗。實施例三作為本發(fā)明的一個實施例,實施例二的無索引視頻文件快進快退裝置可以是運行于播放系統(tǒng)內(nèi)的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨立的掛件集成到這些播放系統(tǒng)中或者運行于這些播放系統(tǒng)的應用系統(tǒng)中。本發(fā)明實施例中,索引文件句柄在播放文件句柄播放視頻文件前,遍歷預設數(shù)量的關鍵幀,并建立已遍歷關鍵幀的索引表,在播放文件句柄播放視頻文件的過程中,索引文件句柄繼續(xù)遍歷視頻文件中未遍歷的關鍵幀,由于開啟了索引文件句柄和播放文件句柄, 使得建立、存儲視頻文件的索引表與播放視頻文件可以同時進行。因而在接收到播放請求時,可以快速響應用戶。又因為在播放視頻文件之前,并沒有建立視頻文件的所有關鍵幀的索引表,因而可以有效減少用戶等待播放視頻文件的時間,從而改善用戶體驗。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
9
權利要求
1.一種無索引視頻文件快進快退方法,其特征在于,所述方法包括在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表; 根據(jù)索引表響應播放請求。
2.如權利要求1所述的方法,其特征在于,所述遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表的步驟具體為判斷當前遍歷的幀是否為關鍵幀;在當前遍歷的幀為關鍵幀時,將所述當前遍歷的幀在視頻文件中的偏移地址和時間戳之間的映射關系存入索引表中。
3.如權利要求1所述的方法,其特征在于,所述并根據(jù)已遍歷的關鍵幀更新索引表的步驟具體為將已遍歷的關鍵幀在視頻文件中的偏移地址和時間戳之間的映射關系存入索引表。
4.如權利要求1所述的方法,其特征在于,所述根據(jù)索引表響應播放請求的步驟具體為若播放請求為快進請求,播放文件句柄在索引表中查找與當前時間匹配的時間戳,并搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀,繼續(xù)在索引表中查找所述時間戳的后一個時間戳;或者,若播放請求為快退請求,播放文件句柄在索引表中查找與當前時間匹配的時間戳,并搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀,繼續(xù)在索引表中查找所述時間戳的前一個時間戳;或者,若播放請求為從新的播放點播放的請求,播放文件句柄在索引表中查找與新的播放點時間匹配的時間戳,再搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀,并繼續(xù)播放所述關鍵幀的后一幀。
5.如權利要求1所述的方法,其特征在于,所述根據(jù)索引表響應播放請求的步驟具體為若在播放請求為快進或快退的請求時,播放文件句柄在索引表中沒有查找到與當前時間匹配的時間戳,則在索引文件句柄遍歷新的關鍵幀并建立已遍歷的關鍵幀的索引表之后,播放文件句柄繼續(xù)在索引表中查找與當前時間匹配的時間戳;若在播放請求為從新的播放點播放的請求時,播放文件句柄在索引表中沒有查找到與新的播放點時間匹配的時間戳或者所述新的播放點時間與索引表中時間戳的差值不在預設范圍內(nèi)時,則在索引文件句柄遍歷新的關鍵幀并建立已遍歷的關鍵幀的索引表之后,播放文件句柄繼續(xù)在索引表中查找與新的播放點時間匹配或者差值在預設范圍內(nèi)的時間戳。
6.一種無索引視頻文件快進快退裝置,其特征在于,所述裝置包括建立索引表單元,用于在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;播放文件單元,用于開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;響應播放單元,用于根據(jù)索引表響應播放請求。
7.如權利要求6所述的裝置,其特征在于,所述建立索引表單元還包括判斷單元,用于判斷當前遍歷的幀是否為關鍵幀;存儲單元,用于在當前遍歷的幀為關鍵幀時,將所述當前遍歷的幀在視頻文件中的偏移地址和時間戳之間的映射關系存入索引表中。
8.如權利要求6所述的裝置,其特征在于,所述響應播放單元還包括快進播放模塊,用于若播放請求為快進請求,播放文件句柄在索引表中查找與當前時間匹配的時間戳,并搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀, 繼續(xù)在索引表中查找所述時間戳的后一個時間戳;或者,快退播放模塊,用于若播放請求為快退請求,播放文件句柄在索引表中查找與當前時間匹配的時間戳,并搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀, 繼續(xù)在索引表中查找所述時間戳的前一個時間戳;或者,定位播放模塊,用于若播放請求為從新的播放點播放的請求,播放文件句柄在索引表中查找與新的播放點時間匹配的時間戳,再搜索與所述時間戳對應的偏移地址,播放所述偏移地址對應的關鍵幀,并繼續(xù)播放所述關鍵幀的后一幀。
9.如權利要求6所述的裝置,其特征在于,所述響應播放單元還包括等待播放模塊,用于若在播放請求為快進或快退的請求時,播放文件句柄在索引表中沒有查找到與當前時間匹配的時間戳,則在索引文件句柄遍歷新的關鍵幀并建立已遍歷的關鍵幀的索引表之后,播放文件句柄繼續(xù)在索引表中查找與當前時間匹配的時間戳,若在播放請求為從新的播放點播放的請求時,播放文件句柄在索引表中沒有查找到與新的播放點時間匹配的時間戳或者所述新的播放點時間與索引表中時間戳的差值不在預設范圍內(nèi)時,則在索引文件句柄遍歷新的關鍵幀并建立已遍歷的關鍵幀的索引表之后,播放文件句柄繼續(xù)在索引表中查找與新的播放點時間匹配或者差值在預設范圍內(nèi)的時間戳。
10.一種包含無索引視頻文件快進快退裝置的播放系統(tǒng)。
全文摘要
本發(fā)明適用于視頻技術領域,提供了一種無索引視頻文件快進快退方法、裝置以及播放系統(tǒng),所述方法包括步驟在接收到文件播放請求時,開啟索引文件句柄,遍歷預設數(shù)量的關鍵幀,并建立已遍歷的關鍵幀的索引表;開始播放文件,開啟播放文件句柄,播放文件,并在播放文件句柄播放文件的同時,索引文件句柄繼續(xù)遍歷未遍歷的關鍵幀,并根據(jù)已遍歷的關鍵幀更新索引表;根據(jù)索引表響應播放請求。本發(fā)明通過開啟了索引文件句柄和播放文件句柄,使得建立、存儲視頻文件的索引表與播放視頻文件可以同時進行。因而在接收到播放請求時,可以快速響應用戶。
文檔編號G11B27/10GK102467940SQ20101053492
公開日2012年5月23日 申請日期2010年11月8日 優(yōu)先權日2010年11月8日
發(fā)明者胡勝發(fā), 胡靜, 蘇丹 申請人:安凱(廣州)微電子技術有限公司