本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,特別涉及一種視頻數(shù)據(jù)的存儲(chǔ)方法及裝置。
背景技術(shù):
:目前,視頻數(shù)據(jù)的存儲(chǔ)方法主要包括如下幾個(gè)步驟:獲得1個(gè)或多個(gè)攝像頭采集的視頻數(shù)據(jù);將所有攝像頭采集的視頻數(shù)據(jù)以合并寫的方式寫入存儲(chǔ)器中的一個(gè)視頻文件中,其中,每一個(gè)攝像頭采集的視頻數(shù)據(jù)以數(shù)據(jù)塊為單位寫入視頻文件中;針對該視頻文件建立數(shù)據(jù)塊索引文件,其中,數(shù)據(jù)塊索引文件包括該視頻文件的每個(gè)數(shù)據(jù)塊對應(yīng)的磁盤id、視頻文件名稱、在視頻文件中的起始位置、數(shù)據(jù)塊長度、開始時(shí)間和結(jié)束時(shí)間;針對該視頻文件中的每個(gè)攝像頭建立攝像頭錄像索引文件,其中,攝像頭錄像索引文件包括上述視頻文件中每個(gè)數(shù)據(jù)塊與攝像頭之間的對應(yīng)關(guān)系。采用該方法存儲(chǔ)視頻數(shù)據(jù)后,可以根據(jù)攝像頭錄像索引文件和數(shù)據(jù)塊索引文件從視頻文件中查找需要的視頻數(shù)據(jù)?,F(xiàn)有技術(shù)中,視頻文件中僅存儲(chǔ)了視頻數(shù)據(jù),視頻數(shù)據(jù)對應(yīng)的攝像頭錄像索引文件和數(shù)據(jù)塊索引文件存儲(chǔ)在存儲(chǔ)器的另一固定區(qū)域中,當(dāng)視頻數(shù)據(jù)發(fā)生變化時(shí)(如:刪除了部分視頻數(shù)據(jù)或者發(fā)生了視頻數(shù)據(jù)的循環(huán)覆蓋),需要去存儲(chǔ)器的另一固定區(qū)域中查找發(fā)生變化的視頻數(shù)據(jù)對應(yīng)的索引文件(包括:攝像頭錄像索引文件和數(shù)據(jù)塊索引文件),并對索引文件進(jìn)行修改,以保證視頻數(shù)據(jù)與索引文件中的索引數(shù)據(jù)能夠同步,這種視頻數(shù)據(jù)存儲(chǔ)方法使得同步視頻數(shù)據(jù)和索引文件中的索引數(shù)據(jù)的操作非常繁瑣,尤其在另一固定區(qū)域中存在多個(gè)索引文件時(shí),需要一一查看各個(gè)索引文件,以保證視頻數(shù)據(jù)與索引文件中的索引數(shù)據(jù)能夠同步,這使得同步視頻數(shù)據(jù)和索引文件中的索引數(shù)據(jù)的操作更加繁瑣。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例的目的在于提供一種視頻數(shù)據(jù)的存儲(chǔ)方法及裝置,以簡化同步視頻數(shù)據(jù)和索引數(shù)據(jù)的操作。為達(dá)到上述目的,本發(fā)明實(shí)施例公開了一種視頻數(shù)據(jù)的存儲(chǔ)方法,所述方法包括步驟:獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊;獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)所述索引值更新預(yù)先緩存的數(shù)據(jù)索引,其中,所述數(shù)據(jù)索引用于記錄已緩存的各個(gè)數(shù)據(jù)塊的索引值以及數(shù)據(jù)塊與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系;判斷所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和是否大于第一預(yù)設(shè)閾值;若為是,則將已緩存的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域;判斷所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊的數(shù)據(jù)量是否大于第二預(yù)設(shè)閾值;若為是,則將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中,并根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)所述索引值更新預(yù)先緩存的數(shù)據(jù)索引,包括:獲得已緩存的各個(gè)數(shù)據(jù)塊中i幀的時(shí)間戳和已緩存的各個(gè)數(shù)據(jù)塊的數(shù)據(jù)量;根據(jù)所獲得的數(shù)據(jù)量,計(jì)算已緩存的各個(gè)數(shù)據(jù)塊在所述第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置;根據(jù)所述存儲(chǔ)位置與所述存儲(chǔ)位置對應(yīng)的數(shù)據(jù)塊中i幀的時(shí)間戳,確定已緩存的各個(gè)數(shù)據(jù)塊的索引值;根據(jù)所述索引值,更新預(yù)先緩存的數(shù)據(jù)索引。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述方法還包括:根據(jù)預(yù)先緩存的時(shí)間索引,獲得每一路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,其中,所述時(shí)間索引,用于記錄每一路視頻數(shù)據(jù)的時(shí)間段的信息以及時(shí)間段與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系,所述時(shí)間段的信息包括:開始時(shí)間和結(jié)束 時(shí)間;根據(jù)所獲得的結(jié)束時(shí)間,判斷所獲得的每一個(gè)i幀的時(shí)間戳是否滿足以下表達(dá)式:t1-t2>δ,其中,t1為所獲得的一個(gè)i幀的時(shí)間戳,t2為該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,δ為預(yù)設(shè)時(shí)長;若為是,則在所述時(shí)間索引中生成針對該i幀所屬視頻數(shù)據(jù)的新的時(shí)間段,其中,所述新的時(shí)間段的開始時(shí)間為該i幀的時(shí)間戳;若為否,則將該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間更新為該i幀的時(shí)間戳。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件之后,還包括:將所述時(shí)間索引中已緩存的數(shù)據(jù)及所述時(shí)間索引與所述視頻文件的對應(yīng)關(guān)系存儲(chǔ)至第一數(shù)據(jù)庫中。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述將所述時(shí)間索引中已緩存的數(shù)據(jù)及所述時(shí)間索引與所述視頻文件的對應(yīng)關(guān)系存儲(chǔ)至第一數(shù)據(jù)庫中之后,還包括:清空所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)和所述時(shí)間索引中已緩存的數(shù)據(jù)。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中,并根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件,包括:將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將所述視頻文件尾數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中;根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和所述視頻文件尾數(shù)據(jù),生成視頻文件,其中,所述視頻文件的文件頭中包括:所述視頻文件尾數(shù)據(jù)在所述第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述將所述視頻文件尾數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中,包括:將所述視頻文件尾數(shù)據(jù)以二進(jìn)制的方式存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中。為達(dá)到上述目的,本發(fā)明實(shí)施例還公開了一種視頻數(shù)據(jù)的存儲(chǔ)裝置,所述裝置包括:視頻數(shù)據(jù)獲得模塊、數(shù)據(jù)索引更新模塊、第一數(shù)據(jù)量判斷模塊、視頻數(shù)據(jù)存儲(chǔ)模塊、第二數(shù)據(jù)量判斷模塊和視頻文件生成模塊;其中,所述視頻數(shù)據(jù)獲得模塊,用于獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊;所述數(shù)據(jù)索引更新模塊,用于獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)所述索引值更新預(yù)先緩存的數(shù)據(jù)索引,其中,所述數(shù)據(jù)索引用于記錄已緩存的各個(gè)數(shù)據(jù)塊的索引值以及數(shù)據(jù)塊與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系;所述第一數(shù)據(jù)量判斷模塊,用于判斷所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和是否大于第一預(yù)設(shè)閾值,若為是,則觸發(fā)所述視頻數(shù)據(jù)存儲(chǔ)模塊;所述視頻數(shù)據(jù)存儲(chǔ)模塊,用于將已緩存的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域;所述第二數(shù)據(jù)量判斷模塊,用于判斷所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊的數(shù)據(jù)量是否大于第二預(yù)設(shè)閾值,若為是,則觸發(fā)所述視頻文件生成模塊;所述視頻文件生成模塊,用于將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中,并根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述數(shù)據(jù)索引更新模塊,包括:數(shù)據(jù)信息獲得子模塊、存儲(chǔ)位置計(jì)算子模塊、索引值確定子模塊和數(shù)據(jù)索引更新子模塊;其中,所述數(shù)據(jù)信息獲得子模塊,用于獲得已緩存的各個(gè)數(shù)據(jù)塊中i幀的時(shí)間戳和已緩存的各個(gè)數(shù)據(jù)塊的數(shù)據(jù)量;所述存儲(chǔ)位置計(jì)算子模塊,用于根據(jù)所獲得的數(shù)據(jù)量,計(jì)算已緩存的各個(gè)數(shù)據(jù)塊在所述第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置;所述索引值確定子模塊,用于根據(jù)所述存儲(chǔ)位置與所述存儲(chǔ)位置對應(yīng)的數(shù)據(jù)塊中i幀的時(shí)間戳,確定已緩存的各個(gè)數(shù)據(jù)塊的索引值;所述數(shù)據(jù)索引更新子模塊,用于根據(jù)所述索引值,更新預(yù)先緩存的數(shù)據(jù)索 引。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述裝置還包括:時(shí)間獲得模塊、時(shí)間判斷模塊、時(shí)間段生成模塊和時(shí)間更新模塊;其中,所述時(shí)間獲得模塊,用于根據(jù)預(yù)先緩存的時(shí)間索引,獲得每一路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,其中,所述時(shí)間索引,用于記錄每一路視頻數(shù)據(jù)的時(shí)間段的信息以及時(shí)間段與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系,所述時(shí)間段的信息包括:開始時(shí)間和結(jié)束時(shí)間;所述時(shí)間判斷模塊,用于根據(jù)所獲得的結(jié)束時(shí)間,判斷所獲得的每一個(gè)i幀的時(shí)間戳是否滿足以下表達(dá)式:t1-t2>δ,其中,t1為所獲得的一個(gè)i幀的時(shí)間戳,t2為該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,δ為預(yù)設(shè)時(shí)長;若為是,則觸發(fā)所述時(shí)間段生成模塊,若為否,則觸發(fā)所述時(shí)間更新模塊;所述時(shí)間段生成模塊,用于在所述時(shí)間索引中生成針對該i幀所屬視頻數(shù)據(jù)的新的時(shí)間段,其中,所述新的時(shí)間段的開始時(shí)間為該i幀的時(shí)間戳;所述時(shí)間更新模塊,用于將該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間更新為該i幀的時(shí)間戳。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述裝置還包括:時(shí)間數(shù)據(jù)存儲(chǔ)模塊,用于將所述時(shí)間索引中已緩存的數(shù)據(jù)及所述時(shí)間索引與所述視頻文件的對應(yīng)關(guān)系存儲(chǔ)至第一數(shù)據(jù)庫中。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述裝置還包括:數(shù)據(jù)清空模塊,用于清空所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)和所述時(shí)間索引中已緩存的數(shù)據(jù)。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述視頻文件生成模塊,包括:索引數(shù)據(jù)存儲(chǔ)子模塊和視頻文件生成子模塊;其中,所述索引數(shù)據(jù)存儲(chǔ)子模塊,用于將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將所述視頻文件尾數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中;所述視頻文件生成子模塊,用于根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和所述視頻文件尾數(shù)據(jù),生成視頻文件,其中,所述視頻文件的文件頭中包括:所述視頻文件尾數(shù)據(jù)在所述第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,所述索引數(shù)據(jù)存儲(chǔ)子模塊,具體用于:將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將所述視頻文件尾數(shù)據(jù)以二進(jìn)制的方式存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中。由上可見,本發(fā)明實(shí)施例中,在獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊后,緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)獲得的索引值更新預(yù)先緩存的數(shù)據(jù)索引,在所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和大于第一預(yù)設(shè)閾值的情況下,將已緩存的視頻數(shù)據(jù)的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域中,在第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊的數(shù)據(jù)量大于第二預(yù)設(shè)閾值的情況下,將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,并根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件??梢姡傻囊曨l文件中存儲(chǔ)了視頻數(shù)據(jù)和數(shù)據(jù)索引中已緩存的索引數(shù)據(jù),在視頻數(shù)據(jù)發(fā)生變化時(shí),僅需要在同一視頻文件中進(jìn)行操作即可,這樣簡化了同步視頻數(shù)據(jù)和索引數(shù)據(jù)的操作。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的一種視頻數(shù)據(jù)的存儲(chǔ)方法的流程示意圖;圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)buf中數(shù)據(jù)塊排布的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)方法的流程示意圖;圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)索引的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例提供的時(shí)間索引的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)方法的流程示意圖;圖7為本發(fā)明實(shí)施例提供的視頻文件的結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例提供的一種視頻數(shù)據(jù)的存儲(chǔ)裝置的結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)裝置的結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。下面通過具體實(shí)施例,對本發(fā)明進(jìn)行詳細(xì)說明。參考圖1,圖1為本發(fā)明實(shí)施例提供的一種視頻數(shù)據(jù)的存儲(chǔ)方法的流程示意圖,該方法可以包括如下步驟:s101:獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊;本發(fā)明實(shí)施例中,上述視頻數(shù)據(jù)的存儲(chǔ)方法可以應(yīng)用于處理視頻數(shù)據(jù)的服務(wù)器上,也可以應(yīng)用于其他終端設(shè)備上,而視頻數(shù)據(jù)往往由多個(gè)視頻采集裝置(如攝像頭)采集,再通過網(wǎng)絡(luò)將視頻數(shù)據(jù)發(fā)送至終端設(shè)備。假設(shè),本發(fā)明實(shí)施例應(yīng)用于服務(wù)器上,服務(wù)器在獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊后,可以將視頻數(shù)據(jù)的數(shù)據(jù)塊緩存在內(nèi)存中,以加快視頻數(shù)據(jù)的處理速度。當(dāng)然,也可以將視頻數(shù)據(jù)的數(shù)據(jù)塊存儲(chǔ)在硬盤中,以避免視頻數(shù)據(jù)因斷電或服務(wù)器崩潰等原因丟失。另外,在本發(fā)明實(shí)施例提供的一種具體實(shí)現(xiàn)方式中,可以在內(nèi)存中預(yù)先創(chuàng)建一個(gè)數(shù)據(jù)緩沖區(qū),該緩沖區(qū)可以稱為數(shù)據(jù)buf,用來緩存所有路的視頻數(shù)據(jù)的數(shù)據(jù)塊。需要說明的是,通常情況下,視頻數(shù)據(jù)是以數(shù)據(jù)塊為單位的,數(shù)據(jù)buf緩存的是所有路視頻數(shù)據(jù)的數(shù)據(jù)塊,數(shù)據(jù)buf中數(shù)據(jù)塊的排布結(jié)構(gòu)如圖2所示,圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)buf中數(shù)據(jù)塊排布的結(jié)構(gòu)示意圖,其中,數(shù)據(jù)塊1、數(shù)據(jù)塊2…數(shù)據(jù)塊n均表示一路視頻數(shù)據(jù)的一個(gè)數(shù)據(jù)塊,這些數(shù)據(jù)塊可以來自不同路的視頻數(shù)據(jù)。s102:獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)所述索引值更新預(yù)先緩存的數(shù)據(jù)索引;其中,數(shù)據(jù)索引用于記錄已緩存的各個(gè)數(shù)據(jù)塊的索引值以及數(shù)據(jù)塊與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系。具體地,終端設(shè)備在接收并緩存各路視頻數(shù)據(jù)的數(shù)據(jù)塊后,獲得已緩存的各路視頻數(shù)據(jù)中各個(gè)數(shù)據(jù)塊的索引值,并將獲得的索引值寫入預(yù)先緩存的數(shù)據(jù)索引。如,終端設(shè)備接收到了數(shù)據(jù)塊a,則緩存數(shù)據(jù)塊a并獲得數(shù)據(jù)塊a的索引值,將該索引值,寫入預(yù)先緩存的數(shù)據(jù)索引。另外,數(shù)據(jù)索引中還可以記錄數(shù)據(jù)塊與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系。這樣,當(dāng)用戶想要獲得指定的a路的視頻數(shù)據(jù)的一個(gè)數(shù)據(jù)塊a時(shí),可以根據(jù)數(shù)據(jù)索引中記錄的數(shù)據(jù)塊與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系,獲得a路的視頻數(shù)據(jù)的所有數(shù)據(jù)塊,再根據(jù)索引值,獲得指定的數(shù)據(jù)塊a。在本發(fā)明的一種具體實(shí)現(xiàn)方式中,上述數(shù)據(jù)索引可以預(yù)先創(chuàng)建并緩存在內(nèi)存中,這樣可以以加快視頻數(shù)據(jù)的處理速度。當(dāng)然,數(shù)據(jù)索引也可以預(yù)先創(chuàng)建在硬盤中,以避免數(shù)據(jù)索引中的數(shù)據(jù)因斷電或服務(wù)器崩潰等原因丟失。s103:判斷所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和是否大于第一預(yù)設(shè)閾值,若為是,則執(zhí)行步驟s104;在本發(fā)明的一種具體實(shí)現(xiàn)方式中,若緩存的所有路視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量之和不大于第一預(yù)設(shè)閾值,則返回繼續(xù)執(zhí)行步驟s101。s104:將已緩存的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域;實(shí)際應(yīng)用中,如果每獲得一次數(shù)據(jù),就將該數(shù)據(jù)寫入到硬盤中,會(huì)增加對硬盤的寫操作過程,降低對數(shù)據(jù)的處理速度,然而,若一直將獲得數(shù)據(jù)緩存在內(nèi)存中,占用過多的內(nèi)存空間也會(huì)降低對數(shù)據(jù)的處理速度,因此,在不影響對數(shù)據(jù)的處理速度的情況下,將獲得的數(shù)據(jù)緩存在內(nèi)存中,當(dāng)達(dá)到一定的緩存在內(nèi)存中數(shù)據(jù)達(dá)到一定閾值時(shí),再將數(shù)據(jù)寫入到硬盤中。假設(shè),第一預(yù)設(shè)閾值為50kb,若緩存的所有路視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量之和達(dá)到了40kb,即上述數(shù)據(jù)buf中緩存了40kb的視頻數(shù)據(jù)的數(shù)據(jù)塊,40kb<50kb,則繼續(xù)執(zhí)行上述獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊的步驟;若緩存的所有路視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量之和達(dá)到了 51kb,即上述數(shù)據(jù)buf中緩存了51kb的視頻數(shù)據(jù)的數(shù)據(jù)塊,51kb>50kb,則將上述數(shù)據(jù)buf中緩存的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域。s105:判斷所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊的數(shù)據(jù)量是否大于第二預(yù)設(shè)閾值,若為是,則執(zhí)行步驟s106;在本發(fā)明的一種具體實(shí)現(xiàn)方式中,若緩存的所有路視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量之和不大于第一預(yù)設(shè)閾值,則返回繼續(xù)執(zhí)行步驟s103。s106:將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中,并根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件。其中,索引數(shù)據(jù)中包括每一路視頻數(shù)據(jù)的各個(gè)數(shù)據(jù)塊的索引值以及數(shù)據(jù)塊與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系。一種具體實(shí)現(xiàn)方式中,索引數(shù)據(jù)中的數(shù)據(jù)經(jīng)序列化轉(zhuǎn)換為可存儲(chǔ)的窗體后,再存儲(chǔ)至第一存儲(chǔ)區(qū)域中。假設(shè),第二預(yù)設(shè)閾值為1000kb,若第一存儲(chǔ)區(qū)域中視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量為900kb,900kb<1000kb,則繼續(xù)執(zhí)行上述判斷所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和是否大于第一預(yù)設(shè)閾值的步驟;若第一存儲(chǔ)區(qū)域中視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量為1001kb,1001kb>1000kb,則將數(shù)據(jù)索引中已存儲(chǔ)的索引數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,并根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù),生成視頻文件。當(dāng)再次存儲(chǔ)視頻數(shù)據(jù)時(shí),重新創(chuàng)建一個(gè)存儲(chǔ)區(qū)域,用于存儲(chǔ)新獲得的視頻數(shù)據(jù)。在本發(fā)明實(shí)施例提供的一種具體實(shí)現(xiàn)方式中,第一存儲(chǔ)區(qū)域可以為一個(gè)空的視頻文件f1,當(dāng)緩存的所有路視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量之和大于第一預(yù)設(shè)閾值時(shí),將緩存的視頻數(shù)據(jù)的數(shù)據(jù)塊更新到該視頻文件f1中,當(dāng)該視頻文件f1中視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量大于第二預(yù)設(shè)閾值時(shí),將數(shù)據(jù)索引中已存儲(chǔ)的索引數(shù)據(jù)存儲(chǔ)至該視頻文件f1,關(guān)閉該視頻文件f1,再創(chuàng)建一個(gè)新的空的視頻文件f2,當(dāng)終端設(shè)備獲得新的視頻數(shù)據(jù)的數(shù)據(jù)塊時(shí),根據(jù)上述方法,將視頻數(shù)據(jù)的數(shù)據(jù)塊存儲(chǔ)至該視頻文件f2中。應(yīng)用圖1所示實(shí)施例,在獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊后,緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)獲得的索引值更新預(yù)先緩存的數(shù)據(jù)索引,在所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和大于第一預(yù)設(shè)閾值 的情況下,將已緩存的視頻數(shù)據(jù)的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域中,在第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊的數(shù)據(jù)量大于第二預(yù)設(shè)閾值的情況下,將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,并根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件??梢姡傻囊曨l文件中存儲(chǔ)了視頻數(shù)據(jù)和數(shù)據(jù)索引中已緩存的索引數(shù)據(jù),在視頻數(shù)據(jù)發(fā)生變化時(shí),僅需要在同一視頻文件中進(jìn)行操作即可,這樣簡化了同步視頻數(shù)據(jù)和索引數(shù)據(jù)的操作。參考圖3,圖3為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)方法的流程示意圖,該方法中,步驟s102可以包括:s1021:獲得已緩存的各個(gè)數(shù)據(jù)塊中i幀的時(shí)間戳和已緩存的各個(gè)數(shù)據(jù)塊的數(shù)據(jù)量;其中,視頻數(shù)據(jù)以數(shù)據(jù)塊為單元,通常情況下,一個(gè)數(shù)據(jù)塊由至少一個(gè)i幀和若干個(gè)p幀、b幀組成,在獲得每一路視頻數(shù)據(jù)后,獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊中i幀的時(shí)間戳和每一路視頻數(shù)據(jù)中各個(gè)數(shù)據(jù)塊的數(shù)據(jù)量。另外,在緩存每一路視頻數(shù)據(jù)時(shí),可以按照每一路視頻數(shù)據(jù)的數(shù)據(jù)塊中i幀的時(shí)間戳的先后順序緩存,這樣可以便于查找指定時(shí)間點(diǎn)的視頻數(shù)據(jù)的數(shù)據(jù)塊。s1022:根據(jù)所獲得的數(shù)據(jù)量,計(jì)算已緩存的各個(gè)數(shù)據(jù)塊在所述第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置;假設(shè),目前獲得的視頻數(shù)據(jù)有a路視頻數(shù)據(jù)的數(shù)據(jù)塊1和b路視頻數(shù)據(jù)塊2、數(shù)據(jù)塊3,它們在緩沖區(qū)(即上述數(shù)據(jù)buf)中的順序?yàn)閿?shù)據(jù)塊1、數(shù)據(jù)塊2、數(shù)據(jù)塊3,且第一存儲(chǔ)區(qū)域中沒有存儲(chǔ)的數(shù)據(jù)塊,數(shù)據(jù)塊1的數(shù)據(jù)量為10kb、數(shù)據(jù)塊2的數(shù)據(jù)量為10kb、數(shù)據(jù)塊3的數(shù)據(jù)量為10kb,則通過計(jì)算得到,數(shù)據(jù)塊1應(yīng)存儲(chǔ)在第一存儲(chǔ)區(qū)域中起始存儲(chǔ)位置為0kb對應(yīng)的存儲(chǔ)位置,數(shù)據(jù)塊2應(yīng)存儲(chǔ)在第一存儲(chǔ)區(qū)域中起始存儲(chǔ)位置為10kb對應(yīng)的存儲(chǔ)位置,數(shù)據(jù)塊3應(yīng)存儲(chǔ)在第一存儲(chǔ)區(qū)域中起始存儲(chǔ)位置為20kb對應(yīng)的存儲(chǔ)位置,此時(shí)若獲得了數(shù)據(jù)塊4,則可以計(jì)算得到數(shù)據(jù)塊4應(yīng)存儲(chǔ)在第一存儲(chǔ)區(qū)域中起始存儲(chǔ)位置為30kb對應(yīng)的存儲(chǔ)位置。s1023:根據(jù)所述存儲(chǔ)位置與所述存儲(chǔ)位置對應(yīng)的數(shù)據(jù)塊中i幀的時(shí)間戳,確定已緩存的各個(gè)數(shù)據(jù)塊的索引值;s1024:根據(jù)所述索引值,更新預(yù)先緩存的數(shù)據(jù)索引。具體地,上述根據(jù)索引值,更新預(yù)先緩存的數(shù)據(jù)索引,可以包括:將計(jì)算得到的每一數(shù)據(jù)塊在第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置和獲得該存儲(chǔ)位置對應(yīng)的數(shù)據(jù)塊中的i幀的時(shí)間戳,存儲(chǔ)至預(yù)先緩存的數(shù)據(jù)索引中。另外,各個(gè)數(shù)據(jù)塊的索引值還可以包括數(shù)據(jù)塊的數(shù)據(jù)量和幀率,可參考圖4,圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)索引的結(jié)構(gòu)示意圖,該數(shù)據(jù)索引可稱為數(shù)據(jù)索引map,用于緩存所有路視頻數(shù)據(jù)的索引數(shù)據(jù),其中,i幀時(shí)間是指數(shù)據(jù)塊的i幀的時(shí)間戳,文件位置是指該數(shù)據(jù)塊在第一存儲(chǔ)區(qū)域中的相對于第一數(shù)據(jù)塊的偏移量,即該數(shù)據(jù)塊在第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置,數(shù)據(jù)塊大小是指該索引數(shù)據(jù)所對應(yīng)的數(shù)據(jù)塊的數(shù)據(jù)量,幀率是該視頻數(shù)據(jù)播放的幀率。當(dāng)然索引值還可以包括其他值,本發(fā)明對此不進(jìn)行限定。此時(shí),在更新數(shù)據(jù)索引時(shí),將數(shù)據(jù)塊的數(shù)據(jù)量和幀率同樣存儲(chǔ)至該數(shù)據(jù)索引中。需要說明的是,上述數(shù)據(jù)索引map可以以每一路視頻數(shù)據(jù)在數(shù)據(jù)索引中的唯一編碼(如uuid(universallyuniqueidentifier,通用唯一識別碼))作為鍵(key),該鍵值對應(yīng)的值(value)結(jié)構(gòu)為圖4中的索引節(jié)點(diǎn)構(gòu)成的集合,其中,一個(gè)索引節(jié)點(diǎn)為一路視頻數(shù)據(jù)中一個(gè)數(shù)據(jù)塊對應(yīng)索引值。終端設(shè)備在獲得視頻數(shù)據(jù)的數(shù)據(jù)塊后,可以按照i幀的時(shí)間戳的先后順序和/或獲得視頻數(shù)據(jù)的數(shù)據(jù)塊的先后順序,依次根據(jù)各個(gè)數(shù)據(jù)塊的索引值,更新數(shù)據(jù)索引。另外,在數(shù)據(jù)索引中還可以針對每一路視頻數(shù)據(jù)設(shè)置子數(shù)據(jù)索引,如:當(dāng)前有4路視頻數(shù)據(jù),則設(shè)置4個(gè)子數(shù)據(jù)索引,終端設(shè)備在獲得視頻數(shù)據(jù)的數(shù)據(jù)塊后,將視頻數(shù)據(jù)的各個(gè)數(shù)據(jù)塊的索引值存儲(chǔ)在相應(yīng)的子數(shù)據(jù)索引下,并在總的數(shù)據(jù)索引下存儲(chǔ)各個(gè)子數(shù)據(jù)索引的存儲(chǔ)位置。假設(shè),當(dāng)前有4路視頻數(shù)據(jù),a路視頻數(shù)據(jù)對應(yīng)a1子數(shù)據(jù)索引,存儲(chǔ)在b1區(qū)域,b路視頻數(shù)據(jù)對應(yīng)a2子數(shù)據(jù)索引,存儲(chǔ)在b2區(qū)域,c路視頻數(shù)據(jù)對應(yīng)a3子數(shù)據(jù)索引,存儲(chǔ)在b3區(qū)域,d路視頻數(shù)據(jù)對應(yīng)a4子數(shù)據(jù)索引,存儲(chǔ)在b4區(qū)域,此時(shí),若獲得了a路視頻數(shù)據(jù)的數(shù)據(jù)塊11,則將數(shù)據(jù)塊11的索引值存儲(chǔ)在a1子數(shù)據(jù)索引中,其他數(shù)據(jù)塊的索引值的存儲(chǔ)以此類推,在總的數(shù)據(jù)索引下存儲(chǔ)a1-a4子數(shù)據(jù)索引的存儲(chǔ)位置信息。這種存儲(chǔ)索引值的方法,便于獲得一段時(shí)間內(nèi)某一路視頻數(shù)據(jù)的所有數(shù)據(jù)塊。實(shí)際應(yīng)用中,由于考慮到碼率等因素,通常1秒對應(yīng)的視頻數(shù)據(jù)中只包含一個(gè)i幀,這樣數(shù)據(jù)索引中的數(shù)據(jù)和時(shí)間索引中的數(shù)據(jù)是可期的。采用上述視頻數(shù)據(jù)的存儲(chǔ)方法存儲(chǔ)視頻數(shù)據(jù)后,用戶在回放視頻數(shù)據(jù)的時(shí)候,可以在索引數(shù)據(jù) 中找到一個(gè)i幀的時(shí)間戳,根據(jù)該i幀的時(shí)間戳獲得該i幀,并從該i幀開始正常播放視頻數(shù)據(jù)。另外,目前,視頻數(shù)據(jù)同樣以數(shù)據(jù)塊為單元,但該數(shù)據(jù)塊中包含了一段時(shí)間的視頻數(shù)據(jù),如果用戶需要定位一個(gè)時(shí)間點(diǎn)回放視頻數(shù)據(jù),則需要通過索引數(shù)據(jù),遍歷包含該時(shí)間點(diǎn)的數(shù)據(jù)塊才能準(zhǔn)確的定位該時(shí)間點(diǎn)對應(yīng)的播放位置。然而,在本發(fā)明實(shí)施例中,該i幀的時(shí)間戳的精度可以為毫秒級,在用戶需要定位一個(gè)時(shí)間點(diǎn)回放視頻數(shù)據(jù)時(shí),只需要通過索引數(shù)據(jù)就可以一次性準(zhǔn)確定位時(shí)間點(diǎn)對應(yīng)的播放位置。一種具體實(shí)現(xiàn)方式中,上述視頻數(shù)的存儲(chǔ)方法還可以包括:s1、根據(jù)預(yù)先緩存的時(shí)間索引,獲得每一路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,其中,時(shí)間索引,用于記錄每一路視頻數(shù)據(jù)的時(shí)間段的信息以及時(shí)間段與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系,時(shí)間段的信息包括:開始時(shí)間和結(jié)束時(shí)間;具體地,可參考圖5,圖5為本發(fā)明實(shí)施例提供的時(shí)間索引的結(jié)構(gòu)示意圖,該時(shí)間索引可以稱為時(shí)間段信息map,以每一路視頻數(shù)據(jù)的唯一編碼(如uuid)作為鍵(key),該鍵值對應(yīng)的值(value)結(jié)構(gòu)為圖5中的時(shí)間段節(jié)點(diǎn)構(gòu)成的集合,其中,一個(gè)時(shí)間段節(jié)點(diǎn)為一路視頻數(shù)據(jù)對應(yīng)的一個(gè)時(shí)間段,包括開始時(shí)間和結(jié)束時(shí)間,開始時(shí)間指的是一段連續(xù)的視頻數(shù)據(jù)的開始時(shí)間,結(jié)束時(shí)間是指該段連續(xù)視頻數(shù)據(jù)的結(jié)束時(shí)間。若視頻數(shù)據(jù)一直沒有中斷,就只需要一直更改該節(jié)點(diǎn)的結(jié)束時(shí)間即可,如果發(fā)生中斷(通常以兩i幀的時(shí)間相差達(dá)到一個(gè)用戶確定的閾值來判斷),就需要新產(chǎn)生一個(gè)如圖5所示的時(shí)間段節(jié)點(diǎn)。假設(shè),當(dāng)前記錄的a路視頻數(shù)據(jù)的時(shí)間索引中的時(shí)間信息如表1所示,此時(shí),獲得的a路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間為10:00:14。表1開始時(shí)間結(jié)束時(shí)間9:00:0110:00:0310:00:0910:00:14在本發(fā)明的一種具體實(shí)現(xiàn)方式中,上述時(shí)間索引可以預(yù)先創(chuàng)建并緩存在內(nèi)存中,這樣可以加快視頻數(shù)據(jù)的處理速度。當(dāng)然,時(shí)間索引也可以預(yù)先創(chuàng)建在 硬盤中,以避免時(shí)間索引中的數(shù)據(jù)因斷電或服務(wù)器崩潰等原因丟失。s2、根據(jù)所獲得的結(jié)束時(shí)間,判斷所獲得的每一個(gè)i幀的時(shí)間戳是否滿足表達(dá)式:t1-t2>δ,其中,t1為所獲得的一個(gè)i幀的時(shí)間戳,t2為該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,δ為預(yù)設(shè)時(shí)長,若為是,則執(zhí)行步驟s3,若為否,則執(zhí)行步驟s4;s3、在時(shí)間索引中生成針對該i幀所屬視頻數(shù)據(jù)的新的時(shí)間段,其中,新的時(shí)間段的開始時(shí)間為該i幀的時(shí)間戳;此時(shí),新的時(shí)間段為該路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段,而該新的時(shí)間段的結(jié)束時(shí)間可以為該i幀對應(yīng)的p幀的時(shí)間戳,也可以為a路視頻數(shù)據(jù)的下一數(shù)據(jù)塊中i幀的時(shí)間戳,本發(fā)明對此不進(jìn)行限定。s4、將該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間更新為該i幀的時(shí)間戳。根據(jù)步驟s1中假設(shè),預(yù)設(shè)時(shí)長δ為5s,若獲得的a路視頻數(shù)據(jù)的下一數(shù)據(jù)塊中i幀的時(shí)間戳為10:00:20,此時(shí)10:00:20-10:00:14=6s,6s>5s,則重新創(chuàng)建一個(gè)a路視頻數(shù)據(jù)的時(shí)間段,其中,i幀的時(shí)間戳為10:00:20為該時(shí)間段的開始時(shí)間,另外,該時(shí)間段的結(jié)束時(shí)間可以為該i幀對應(yīng)的p幀的時(shí)間戳,也可以為a路視頻數(shù)據(jù)的下一數(shù)據(jù)塊中i幀的時(shí)間戳,此時(shí),新生成的時(shí)間段為該路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段;若a路視頻數(shù)據(jù)的下一數(shù)據(jù)塊中i幀的時(shí)間戳為10:00:16,此時(shí)10:00:16-10:00:14=2s,2s<5s,則將該路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間更新為該i幀的時(shí)間戳,即將表1中的10:00:14更新為10:00:16。一種具體實(shí)現(xiàn)方式中,上述根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件之后,還可以包括:將時(shí)間索引中已緩存的數(shù)據(jù)及該時(shí)間索引與視頻文件的對應(yīng)關(guān)系存儲(chǔ)至第一數(shù)據(jù)庫中。目前,當(dāng)用戶想要查詢某一天或者幾天的視頻數(shù)據(jù)的情況的時(shí)候(僅僅只是查看哪些時(shí)間段有視頻數(shù)據(jù),不需要回放視頻數(shù)據(jù)),由于數(shù)據(jù)量比較大,可能跨越了很多視頻文件,這時(shí)就需要打開所有這些視頻文件相應(yīng)的索引文件,然后把連續(xù)的時(shí)間段進(jìn)行合并,不連續(xù)的話就需要生成一條新的時(shí)間段,這一 過程花費(fèi)的時(shí)間會(huì)因?yàn)椴樵兊臄?shù)據(jù)量的變化而變化,當(dāng)數(shù)據(jù)量很大時(shí),需要的時(shí)間很久,效率低下,用戶體驗(yàn)不佳。然而,在本發(fā)明實(shí)施例中,第一數(shù)據(jù)庫可以為嵌入式的小型數(shù)據(jù)塊aqlite,當(dāng)用戶需要查詢視頻數(shù)據(jù)的時(shí)間段信息時(shí),終端設(shè)備完全不需要去查看視頻文件,僅僅只需要通過簡單的數(shù)據(jù)庫查詢,就可以快速獲得指定視頻數(shù)據(jù)的時(shí)間段信息,并反饋給用戶,這樣簡單快速的獲得了用戶需要的時(shí)間段信息,提高了用戶的體驗(yàn)。另外,只有需要回放時(shí)才通過數(shù)據(jù)庫查詢到用戶需求的時(shí)間點(diǎn)或時(shí)間段所對應(yīng)的視頻文件,然后獲得對應(yīng)的索引數(shù)據(jù)進(jìn)行視頻數(shù)據(jù)的數(shù)據(jù)塊的準(zhǔn)確定位。需要說明的是,采用嵌入式的小型數(shù)據(jù)庫sqlite,協(xié)助存儲(chǔ)文件的時(shí)間段信息,使得開發(fā)人員可以使用熟悉的sql語句來對時(shí)間段信息進(jìn)行增刪改查等處理,大大簡化了現(xiàn)有技術(shù)中復(fù)雜的處理邏輯,穩(wěn)定性更好。一種具體實(shí)現(xiàn)方式中,若視頻數(shù)據(jù)發(fā)生變化,只需要更新發(fā)生變化的視頻數(shù)據(jù)對應(yīng)的時(shí)間段信息即可;當(dāng)然,若在更新發(fā)生變化的視頻數(shù)據(jù)對應(yīng)的時(shí)間段信息時(shí)發(fā)生異常,也可以通過簡單的數(shù)據(jù)庫信校驗(yàn)來保證時(shí)間段信息與對應(yīng)的視頻文件中視頻數(shù)據(jù)同步,該方法為現(xiàn)有技術(shù),此處不再贅述。另外,將時(shí)間索引中的數(shù)據(jù)存儲(chǔ)至第一數(shù)據(jù)庫中,可以避免時(shí)間索引中的數(shù)據(jù)因斷電或服務(wù)器崩潰等原因丟失。一種具體實(shí)現(xiàn)方式中,上述將時(shí)間索引中已緩存的數(shù)據(jù)及該時(shí)間索引與視頻文件的對應(yīng)關(guān)系存儲(chǔ)至第一數(shù)據(jù)庫中之后,還可以包括:清空數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)和的時(shí)間索引中已緩存的數(shù)據(jù)。這樣可以避免不必要的數(shù)據(jù)占用過多存儲(chǔ)空間,影響數(shù)據(jù)的處理速度,另外,清空數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)和時(shí)間索引中已緩存的數(shù)據(jù),也是為了方便新的視頻數(shù)據(jù)的索引數(shù)據(jù)的緩存。應(yīng)用圖3所示實(shí)施例,獲得已緩存的各個(gè)數(shù)據(jù)塊中i幀的時(shí)間戳和已緩存的各個(gè)數(shù)據(jù)塊的數(shù)據(jù)量,根據(jù)所獲得的數(shù)據(jù)量,計(jì)算已緩存的各個(gè)數(shù)據(jù)塊在第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置,從而確定已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)所確定的索引值,更新預(yù)先緩存的數(shù)據(jù)索引。因?yàn)?,通?秒對應(yīng)的視頻數(shù)據(jù)中只包含一個(gè)i幀,根據(jù)i幀更新數(shù)據(jù)索引,能夠?qū)崿F(xiàn)時(shí)間點(diǎn)的一次性準(zhǔn)確定位。參考圖6,圖6為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)方法的流程示意圖,該方法中,步驟s106可以包括:s1061:將所述數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將所述視頻文件尾數(shù)據(jù)存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中;一種具體實(shí)現(xiàn)方式中,上述將視頻文件尾數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,可以包括:將視頻文件尾數(shù)據(jù)以二進(jìn)制的方式序列化到一個(gè)緩沖區(qū)中,然后將該緩沖區(qū)中的數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中。這種情況下,反序列化第一存儲(chǔ)區(qū)域中的視頻文件尾數(shù)據(jù)后,就可以將視頻文件尾數(shù)據(jù)還原為存儲(chǔ)時(shí)使用的數(shù)據(jù)結(jié)構(gòu),保證了終端設(shè)備一直都是使用較高查詢效率的數(shù)據(jù)結(jié)構(gòu)來執(zhí)行索引數(shù)據(jù)的查找,并且更加簡化了代碼的編寫,給開發(fā)人員減輕了負(fù)擔(dān)。s1062:根據(jù)所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和所述視頻文件尾數(shù)據(jù),生成視頻文件。其中,視頻文件的文件頭中包括:視頻文件尾數(shù)據(jù)在第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置。具體地,當(dāng)?shù)谝淮鎯?chǔ)區(qū)域中視頻數(shù)據(jù)的數(shù)據(jù)塊的數(shù)據(jù)量大于第二預(yù)設(shè)閾值時(shí),將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)作為視頻文件尾數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,根據(jù)第一存儲(chǔ)區(qū)域中數(shù)據(jù)塊和該視頻文件尾數(shù)據(jù)生產(chǎn)視頻文件,如圖7所示,圖7為本發(fā)明實(shí)施例提供的視頻文件的結(jié)構(gòu)示意圖,假設(shè),存儲(chǔ)至第一存儲(chǔ)區(qū)域中的最后一個(gè)數(shù)據(jù)塊為數(shù)據(jù)塊n,則索引數(shù)據(jù)作為視頻文件尾數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)塊n之后,表示一個(gè)文件結(jié)束,進(jìn)而生成視頻文件,在該視頻文件的文件頭中包括視頻文件尾數(shù)據(jù)在該視頻文件中的相對于第一數(shù)據(jù)塊的偏移量,即該視頻文件尾數(shù)據(jù)在該視頻文件中的存儲(chǔ)位置,另外,該視頻文件的文件頭中還可以包括:該視頻文件的標(biāo)識和其他文件屬性字段。應(yīng)用圖6所示實(shí)施例,將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將視頻文件尾數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和視頻文件尾數(shù)據(jù),生成視頻文件??梢?,生成的視頻文件中存儲(chǔ)了 視頻數(shù)據(jù)和數(shù)據(jù)索引中已緩存的索引數(shù)據(jù),在視頻數(shù)據(jù)發(fā)生變化時(shí),僅需要在同一視頻文件中進(jìn)行操作即可,這樣簡化了同步視頻數(shù)據(jù)和索引數(shù)據(jù)的操作。參考圖8,圖8為本發(fā)明實(shí)施例提供的一種視頻數(shù)據(jù)的存儲(chǔ)裝置的結(jié)構(gòu)示意圖,該裝置可以包括:視頻數(shù)據(jù)獲得模塊801、數(shù)據(jù)索引更新模塊802、第一數(shù)據(jù)量判斷模塊803、視頻數(shù)據(jù)存儲(chǔ)模塊804、第二數(shù)據(jù)量判斷模塊805和視頻文件生成模塊806;其中,視頻數(shù)據(jù)獲得模塊801,用于獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊;數(shù)據(jù)索引更新模塊802,用于獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)索引值更新預(yù)先緩存的數(shù)據(jù)索引,其中,數(shù)據(jù)索引用于記錄已緩存的各個(gè)數(shù)據(jù)塊的索引值以及數(shù)據(jù)塊與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系;第一數(shù)據(jù)量判斷模塊803,用于判斷所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和是否大于第一預(yù)設(shè)閾值,若為是,則觸發(fā)視頻數(shù)據(jù)存儲(chǔ)模塊804;視頻數(shù)據(jù)存儲(chǔ)模塊804,用于將已緩存的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域;第二數(shù)據(jù)量判斷模塊805,用于判斷第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊的數(shù)據(jù)量是否大于第二預(yù)設(shè)閾值,若為是,則觸發(fā)視頻文件生成模塊806;視頻文件生成模塊806,用于將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,并根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件。應(yīng)用圖8所示實(shí)施例,在獲得每一路視頻數(shù)據(jù)的數(shù)據(jù)塊后,緩存每一路視頻數(shù)據(jù)的數(shù)據(jù)塊,并獲得已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)獲得的索引值更新預(yù)先緩存的數(shù)據(jù)索引,在所有已緩存的數(shù)據(jù)塊的數(shù)據(jù)量之和大于第一預(yù)設(shè)閾值的情況下,將已緩存的視頻數(shù)據(jù)的數(shù)據(jù)塊存儲(chǔ)至第一存儲(chǔ)區(qū)域中,在第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊的數(shù)據(jù)量大于第二預(yù)設(shè)閾值的情況下,將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,并根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和索引數(shù)據(jù),生成視頻文件??梢姡傻囊曨l文件中存儲(chǔ)了視頻數(shù)據(jù)和數(shù)據(jù)索引中已緩存的索引數(shù)據(jù),在視頻數(shù)據(jù)發(fā)生變化時(shí),僅需要在同一視頻文件中進(jìn)行操作即可,這樣簡化了同步視頻數(shù)據(jù)和索引數(shù)據(jù)的操作。參考圖9,圖9為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)裝置的結(jié)構(gòu)示 意圖,該裝置中,數(shù)據(jù)索引更新模塊802,可以包括:數(shù)據(jù)信息獲得子模塊8021、存儲(chǔ)位置計(jì)算子模塊8022、索引值確定子模塊8023和數(shù)據(jù)索引更新子模塊8024;其中,數(shù)據(jù)信息獲得子模塊8021,用于獲得已緩存的各個(gè)數(shù)據(jù)塊中i幀的時(shí)間戳和已緩存的各個(gè)數(shù)據(jù)塊的數(shù)據(jù)量;存儲(chǔ)位置計(jì)算子模塊8022,用于根據(jù)所獲得的數(shù)據(jù)量,計(jì)算已緩存的各個(gè)數(shù)據(jù)塊在第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置;索引值確定子模塊8023,用于根據(jù)存儲(chǔ)位置與存儲(chǔ)位置對應(yīng)的數(shù)據(jù)塊中i幀的時(shí)間戳,確定已緩存的各個(gè)數(shù)據(jù)塊的索引值;數(shù)據(jù)索引更新子模塊8024,用于根據(jù)索引值,更新預(yù)先緩存的數(shù)據(jù)索引。一種具體實(shí)現(xiàn)方式中,上述視頻數(shù)據(jù)的存儲(chǔ)裝置還可以包括:時(shí)間獲得模塊、時(shí)間判斷模塊、時(shí)間段生成模塊和時(shí)間更新模塊(圖9中未示出);其中,時(shí)間獲得模塊,用于根據(jù)預(yù)先緩存的時(shí)間索引,獲得每一路視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,其中,時(shí)間索引,用于記錄每一路視頻數(shù)據(jù)的時(shí)間段的信息以及時(shí)間段與其所屬視頻數(shù)據(jù)的對應(yīng)關(guān)系,時(shí)間段的信息包括:開始時(shí)間和結(jié)束時(shí)間;時(shí)間判斷模塊,用于根據(jù)所獲得的結(jié)束時(shí)間,判斷所獲得的每一個(gè)i幀的時(shí)間戳是否滿足以下表達(dá)式:t1-t2>δ,其中,t1為所獲得的一個(gè)i幀的時(shí)間戳,t2為該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間,δ為預(yù)設(shè)時(shí)長;若為是,則觸發(fā)時(shí)間段生成模塊,若為否,則觸發(fā)時(shí)間更新模塊;時(shí)間段生成模塊,用于在時(shí)間索引中生成針對該i幀所屬視頻數(shù)據(jù)的新的時(shí)間段,其中,新的時(shí)間段的開始時(shí)間為該i幀的時(shí)間戳;時(shí)間更新模塊,用于將該i幀所屬視頻數(shù)據(jù)的最后一個(gè)時(shí)間段的結(jié)束時(shí)間更新為該i幀的時(shí)間戳。一種具體實(shí)現(xiàn)方式中,上述視頻數(shù)據(jù)的存儲(chǔ)裝置還可以包括:時(shí)間數(shù)據(jù)存儲(chǔ)模塊,用于將時(shí)間索引中已緩存的數(shù)據(jù)及時(shí)間索引與視頻文件的對應(yīng)關(guān)系存 儲(chǔ)至第一數(shù)據(jù)庫中。一種具體實(shí)現(xiàn)方式中,上述視頻數(shù)據(jù)的存儲(chǔ)裝置還可以包括:數(shù)據(jù)清空模塊,用于清空數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)和時(shí)間索引中已緩存的數(shù)據(jù)。應(yīng)用圖9所示實(shí)施例,獲得已緩存的各個(gè)數(shù)據(jù)塊中i幀的時(shí)間戳和已緩存的各個(gè)數(shù)據(jù)塊的數(shù)據(jù)量,根據(jù)所獲得的數(shù)據(jù)量,計(jì)算已緩存的各個(gè)數(shù)據(jù)塊在第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置,從而確定已緩存的各個(gè)數(shù)據(jù)塊的索引值,根據(jù)所確定的索引值,更新預(yù)先緩存的數(shù)據(jù)索引。因?yàn)?,通?秒對應(yīng)的視頻數(shù)據(jù)中只包含一個(gè)i幀,根據(jù)i幀更新預(yù)設(shè)的數(shù)據(jù)索引,能夠?qū)崿F(xiàn)時(shí)間點(diǎn)的一次性準(zhǔn)確定位。參考圖10,圖10為本發(fā)明實(shí)施例提供的另一種視頻數(shù)據(jù)的存儲(chǔ)裝置的結(jié)構(gòu)示意圖,該裝置中,視頻文件生成模塊806,可以包括:索引數(shù)據(jù)存儲(chǔ)子模塊8061和視頻文件生成子模塊8062;其中,索引數(shù)據(jù)存儲(chǔ)子模塊8061,用于將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將視頻文件尾數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中;視頻文件生成子模塊8062,用于根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和視頻文件尾數(shù)據(jù),生成視頻文件,其中,視頻文件的文件頭中包括:視頻文件尾數(shù)據(jù)在第一存儲(chǔ)區(qū)域中的存儲(chǔ)位置。一種具體實(shí)現(xiàn)方式中,索引數(shù)據(jù)存儲(chǔ)子模塊8061,具體用于:將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將視頻文件尾數(shù)據(jù)以二進(jìn)制的方式存儲(chǔ)至第一存儲(chǔ)區(qū)域中。應(yīng)用圖10所示實(shí)施例,將數(shù)據(jù)索引中已緩存的索引數(shù)據(jù)確定為視頻文件尾數(shù)據(jù),并將視頻文件尾數(shù)據(jù)存儲(chǔ)至第一存儲(chǔ)區(qū)域中,根據(jù)第一存儲(chǔ)區(qū)域中已存儲(chǔ)的數(shù)據(jù)塊和視頻文件尾數(shù)據(jù),生成視頻文件。可見,生成的視頻文件中存儲(chǔ)了視頻數(shù)據(jù)和數(shù)據(jù)索引中已緩存的索引數(shù)據(jù),在視頻數(shù)據(jù)發(fā)生變化時(shí),僅需要在同一視頻文件中進(jìn)行操作即可,這樣簡化了同步視頻數(shù)據(jù)和索引數(shù)據(jù)的操作。對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些 實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,這里所稱得的存儲(chǔ)介質(zhì),如:rom/ram、磁碟、光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。當(dāng)前第1頁12