對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法及硬盤(pán)錄像的制造方法
【專利摘要】本發(fā)明公開(kāi)了對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法及硬盤(pán)錄像機(jī),其中,該方法包括:接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存中;所述播放列表包含進(jìn)行回放的所有錄像文件的播放信息;從播放列表中逐個(gè)讀取播放信息,由播放信息中的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放;在播放過(guò)程中,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),以最后一個(gè)回放錄像文件的結(jié)束時(shí)間作為更新起始時(shí)間,將內(nèi)存中緩存的從更新起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的更新片段更新到硬盤(pán)中;將該更新片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址添加到播放列表中。本發(fā)明方案能夠使視頻數(shù)據(jù)的錄像回放更加適時(shí)、連續(xù)。
【專利說(shuō)明】對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法及硬盤(pán)錄像機(jī)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻數(shù)據(jù)錄像處理,尤其涉及對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法及硬盤(pán) 錄像機(jī)。
【背景技術(shù)】
[0002] 目前,進(jìn)行視頻數(shù)據(jù)錄像的方案包括:硬盤(pán)錄像機(jī)采集視頻數(shù)據(jù),進(jìn)行編碼,生成 錄像文件,存儲(chǔ)到硬盤(pán)上,每個(gè)錄像文件包含了單位時(shí)間內(nèi)的錄像數(shù)據(jù)。參見(jiàn)圖1,為錄像 文件的結(jié)構(gòu)示意圖,其包括編碼后的視頻數(shù)據(jù)、I幀信息和錄像索引文件;編碼后的視頻數(shù) 據(jù)中包含多個(gè)I幀,I幀信息包含了相應(yīng)I幀的起始時(shí)間、結(jié)束時(shí)間,以及在硬盤(pán)中存儲(chǔ)相 應(yīng)I幀的起始地址和結(jié)束地址等信息;錄像索引文件中包含了相應(yīng)錄像文件視頻數(shù)據(jù)的起 始時(shí)間、結(jié)束時(shí)間,以及在硬盤(pán)中存儲(chǔ)相應(yīng)錄像文件視頻數(shù)據(jù)的起始地址和結(jié)束地址,就是 圖1中編碼后的視頻數(shù)據(jù)的起始地址和結(jié)束地址。
[0003] 進(jìn)行視頻數(shù)據(jù)存儲(chǔ)后,當(dāng)需要查看從某一時(shí)刻開(kāi)始至當(dāng)前時(shí)刻為止采集的視頻數(shù) 據(jù)時(shí),可進(jìn)行錄像回放。現(xiàn)有進(jìn)行視頻錄像回放的方案中,接收到包含回放起始時(shí)間的回放 指令后,基于錄像文件中的錄像索引文件,讀取回放起始時(shí)間與接收回放指令時(shí)間之間的 存儲(chǔ)到硬盤(pán)上的視頻數(shù)據(jù),進(jìn)行播放。回放時(shí)可進(jìn)行一些常用操作,如拖動(dòng)、暫停、快進(jìn)、快 退、單巾貞播放等。
[0004] 采用現(xiàn)有進(jìn)行視頻錄像回放的方案,只能提取回放起始時(shí)間與發(fā)送回放指令時(shí)間 之間的存儲(chǔ)到硬盤(pán)上的視頻數(shù)據(jù),而對(duì)于發(fā)送回放指令時(shí)間到播放到末尾時(shí)這段時(shí)間內(nèi)硬 盤(pán)錄像機(jī)采集到的視頻數(shù)據(jù),卻不能進(jìn)行播放;如果需要查看這部分?jǐn)?shù)據(jù),則需要重新向硬 盤(pán)錄像機(jī)發(fā)送回放指示,這導(dǎo)致視頻數(shù)據(jù)回放的適時(shí)性和連續(xù)性較差。
[0005] 綜上可見(jiàn),現(xiàn)有進(jìn)行視頻錄像回放的方案存在以下缺陷:適時(shí)性和連續(xù)性較差。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明提供了一種對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法,該方法能夠使視頻數(shù)據(jù)的錄 像回放更加適時(shí)、連續(xù)。
[0007] 本發(fā)明提供了一種硬盤(pán)錄像機(jī),該硬盤(pán)錄像機(jī)能夠使視頻數(shù)據(jù)的錄像回放更加適 時(shí)、連續(xù)。
[0008] -種對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法,該方法包括:
[0009] 接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存中;所述播放列表 包含進(jìn)行回放的所有錄像文件的播放信息,所述播放信息包括錄像文件中進(jìn)行回放的起始 時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址;
[0010] 從播放列表中按照時(shí)間播放順序逐個(gè)讀取播放信息,由播放信息中的起始地址和 結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放;
[0011] 在播放過(guò)程中,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),以最后一個(gè)回放錄 像文件的結(jié)束時(shí)間作為更新起始時(shí)間,將內(nèi)存中緩存的從更新起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的 更新片段更新到硬盤(pán)中;將該更新片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址添加到 播放列表中。
[0012] 較佳地,所述生成播放列表包括:
[0013] 根據(jù)回放起始時(shí)間對(duì)硬盤(pán)中錄像文件的索引文件進(jìn)行搜索,搜索出包含有回放起 始時(shí)間至當(dāng)前時(shí)間之間視頻數(shù)據(jù)的錄像文件,由搜索出的錄像文件建立搜索列表,所述搜 索列表包含搜索信息,每條搜索信息包含相應(yīng)錄像文件視頻數(shù)據(jù)的起始時(shí)間、結(jié)束時(shí)間、起 始地址和結(jié)束地址;
[0014] 從搜索列表中查詢出包含回放起始時(shí)間的搜索信息,確定出回放起始時(shí)間對(duì)應(yīng)視 頻數(shù)據(jù)的起始地址,作為回放起始地址;
[0015] 將查詢出的搜索信息中的起始時(shí)間修改為回放起始時(shí)間,將起始地址修改為回放 起始地址,將修改后的搜索信息作為播放信息添加到內(nèi)存的播放列表中,并將搜索列表中 其他搜索信息作為播放信息按時(shí)間順序添加到播放列表中。
[0016] 較佳地,所述確定回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的起始地址包括:
[0017] 查詢出包含有回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的錄像文件,由回放起始時(shí)間對(duì)錄像文 件的I幀信息進(jìn)行搜索,搜索出包含回放起始時(shí)間的I幀信息,將搜索出的I幀信息包含的 起始地址作為回放起始地址。
[0018] 較佳地,所述將該更新片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址添加到播 放列表中,包括:
[0019] 判斷播放列表中最后一個(gè)錄像文件的結(jié)束時(shí)間與更新片段的起始時(shí)間是否相同, 如果是,則將最后一個(gè)錄像文件播放信息的結(jié)束時(shí)間和結(jié)束地址修改為更新片段的結(jié)束時(shí) 間和結(jié)束地址;
[0020] 如果不是,則另生成一個(gè)播放消息添加到播放列表中,生成的播放消息包括更新 片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址。
[0021] 較佳地,所述確定播放到最后一個(gè)回放錄像文件的末尾包括:
[0022] 將最后一個(gè)回放錄像文件視頻數(shù)據(jù)的總長(zhǎng)度與已經(jīng)播放的長(zhǎng)度進(jìn)行相減,判斷差 值是否小于設(shè)定閾值,如果是,則確定播放到末尾。
[0023] -種硬盤(pán)錄像機(jī),該硬盤(pán)錄像機(jī)包括錄像單元和播放單元;
[0024] 所述播放單元,接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存 中;所述播放列表包含進(jìn)行回放的所有錄像文件的播放信息,所述播放信息包括錄像文件 中進(jìn)行回放的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址;播放單元從播放列表中按照時(shí)間 播放順序逐個(gè)讀取播放信息,由播放信息中的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù) 進(jìn)行播放;在播放過(guò)程中,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),向所述錄像單元發(fā) 送片段更新消息,所述片段更新消息包含最后一個(gè)回放錄像文件的結(jié)束時(shí)間;播放單元還 接收來(lái)自所述錄像單元的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址,添加到播放列表中;
[0025] 所述錄像單元,接收來(lái)自所述播放單元的片段更新消息,將內(nèi)存中緩存的從更新 起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的錄像文件更新到硬盤(pán)中,并將該更新片段的起始時(shí)間、結(jié)束時(shí) 間、起始地址和結(jié)束地址,發(fā)送給播放單元。
[0026] 較佳地,所述播放單元包括列表生成子單元、播放子單元、列表更新子單元;
[0027] 所述列表生成子單元,接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到 內(nèi)存中,向所述播放子單元發(fā)送播放指令;
[0028] 所述播放子單元,接收播放指令,從播放列表中逐個(gè)讀取播放信息,由播放信息中 的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放,并向所述列表更新子單元發(fā)送更 新指令;
[0029] 所述列表更新子單元,接收更新指令,確定播放到最后一個(gè)回放錄像文件的末尾 時(shí),向所述錄像單元發(fā)送片段更新消息;并接收來(lái)自所述錄像單元的起始時(shí)間、結(jié)束時(shí)間、 起始地址和結(jié)束地址,添加到播放列表中。
[0030] 較佳地,所述列表生成子單兀包括搜索列表建立模塊和播放列表建立模塊;
[0031 ] 所述搜索列表建立模塊,根據(jù)回放起始時(shí)間對(duì)硬盤(pán)中錄像文件的索引文件進(jìn)行搜 索,搜索出包含有回放起始時(shí)間至當(dāng)前時(shí)間之間視頻數(shù)據(jù)的錄像文件,由搜索出的錄像文 件建立搜索列表,發(fā)送給所述播放列表建立模塊;所述搜索列表包含搜索信息,每條搜索信 息包含相應(yīng)錄像文件視頻數(shù)據(jù)的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址;
[0032] 所述播放列表建立模塊,從搜索列表中查詢出包含回放起始時(shí)間的搜索信息,確 定出回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的起始地址,作為回放起始地址;將查詢出的搜索信息中 的起始時(shí)間修改為回放起始時(shí)間,將起始地址修改為回放起始地址,將修改后的搜索信息 作為播放信息添加到內(nèi)存的播放列表中,并將搜索列表中其他搜索信息作為播放信息按時(shí) 間順序添加到播放列表中。
[0033] 較佳地,所述列表更新子單元包括信息添加模塊,接收來(lái)自所述錄像單元的起始 時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址,判斷播放列表中最后一個(gè)錄像文件的結(jié)束時(shí)間與接 收的起始時(shí)間是否相同,如果是,則將最后一個(gè)錄像文件播放信息的結(jié)束時(shí)間和結(jié)束地址 修改為更新片段的結(jié)束時(shí)間和結(jié)束地址;如果不是,則另生成一個(gè)播放消息添加到播放列 表中,生成的播放消息包括接收的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址。
[0034] 較佳地,所述列表更新子單元還包括實(shí)時(shí)判定模塊,將最后一個(gè)回放錄像文件視 頻數(shù)據(jù)的總長(zhǎng)度與已經(jīng)播放的長(zhǎng)度進(jìn)行相減,判斷差值是否小于設(shè)定閾值,如果是,則確定 播放到末尾,向所述錄像單元發(fā)送片段更新消息。
[0035] 從上述方案可以看出,本發(fā)明的錄像回放方案中,先生成播放列表,所述播放列表 包含進(jìn)行回放的所有錄像文件的播放信息;從播放列表中逐個(gè)讀取播放信息,由播放信息 中的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放;在播放過(guò)程中,確定播放到最 后一個(gè)回放錄像文件的末尾時(shí),以最后一個(gè)回放錄像文件的結(jié)束時(shí)間作為更新起始時(shí)間, 將內(nèi)存中緩存的從更新起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的更新片段更新到硬盤(pán)中;將該更新片段 的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址添加到播放列表中。這樣,播放完播放列表中 所述最后一個(gè)回放錄像文件后,將繼續(xù)播放更新片段;使視頻數(shù)據(jù)回放更加適時(shí)、連續(xù)。
【專利附圖】
【附圖說(shuō)明】
[0036] 圖1為現(xiàn)有技術(shù)錄像文件的結(jié)構(gòu)示意圖;
[0037] 圖2為本發(fā)明對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法示意性流程圖;
[0038] 圖3為本發(fā)明播放列表的生成方法流程圖實(shí)例;
[0039] 圖4為本發(fā)明硬盤(pán)錄像機(jī)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0040] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對(duì)本 發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
[0041] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對(duì)本 發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
[0042] 本發(fā)明的錄像回放方案中,硬盤(pán)錄像機(jī)在播放過(guò)程中,適時(shí)生成錄像文件,更新到 硬盤(pán)中,進(jìn)而提高了回放的適時(shí)性和連續(xù)性。參見(jiàn)圖2,為本發(fā)明對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放 的方法示意性流程圖,其包括以下步驟:
[0043] 步驟201,接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存中;所 述播放列表包含進(jìn)行回放的所有錄像文件的播放信息,所述播放信息包括錄像文件中進(jìn)行 回放的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址。
[0044] 實(shí)際操作時(shí),接收到回放指令后,可遍歷硬盤(pán)中存儲(chǔ)的所有錄像文件的錄像索引 文件,判斷起始時(shí)間至結(jié)束時(shí)間之間的時(shí)間段是否部分或全部,包含在回放起始時(shí)間至當(dāng) 前時(shí)間之間的時(shí)間段中,如果是,則在播放列表中添加播放信息,播放信息包含相應(yīng)錄像文 件中需要播放的視頻數(shù)據(jù)的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址。
[0045] 播放列表的生成可具體圖3所示的方法實(shí)現(xiàn),其包括以下步驟:
[0046] 步驟301,根據(jù)回放起始時(shí)間對(duì)硬盤(pán)中錄像文件的索引文件進(jìn)行搜索,搜索出包 含有回放起始時(shí)間至當(dāng)前時(shí)間之間視頻數(shù)據(jù)的錄像文件,由搜索出的錄像文件建立搜索列 表,所述搜索列表包含搜索信息,每條搜索信息包含相應(yīng)錄像文件視頻數(shù)據(jù)的起始時(shí)間、結(jié) 束時(shí)間、起始地址和結(jié)束地址。
[0047] 搜索信息包含的內(nèi)容可以從錄像文件的錄像索引文件中提取。
[0048] 步驟302,從搜索列表中查詢出包含回放起始時(shí)間的搜索信息,確定出回放起始時(shí) 間對(duì)應(yīng)視頻數(shù)據(jù)的起始地址,作為回放起始地址。
[0049] 回放起始時(shí)間可能正好為錄像文件視頻數(shù)據(jù)的起始時(shí)間,這種情況,便可直接從 錄像索引文件中提取出起始地址,作為回放起始時(shí)間。
[0050] 如果回放起始時(shí)間不為某一錄像文件視頻數(shù)據(jù)的起始時(shí)間,而是某一錄像文件視 頻數(shù)據(jù)中間的時(shí)間,則可采用下述方式確定回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的起始地址:
[0051] 錄像文件視頻數(shù)據(jù)包含多個(gè)I幀,每個(gè)I幀的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié) 束地址存放在相應(yīng)的I幀信息中;這樣,查詢出包含有回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的錄像 文件后,便可由回放起始時(shí)間對(duì)錄像文件的I幀信息進(jìn)行搜索,搜索出包含回放起始時(shí)間 的I幀信息,將搜索出的I幀信息包含的起始地址作為回放起始地址。
[0052] 采用上述方式,由I幀信息定位到距離要求播放時(shí)間點(diǎn)最近的那個(gè)I幀,并將此I 幀在硬盤(pán)中的位置作為回放起始地址。
[0053] 步驟303,將查詢出的搜索信息中的起始時(shí)間修改為回放起始時(shí)間,將起始地址修 改為回放起始地址,將修改后的搜索信息作為播放信息添加到內(nèi)存的播放列表中,并將搜 索列表中其他搜索信息作為播放信息按時(shí)間順序添加到到播放列表中。
[0054] 步驟202,從播放列表中按照時(shí)間播放順序逐個(gè)讀取播放信息,由播放信息中的起 始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放。
[0055] 步驟203,在播放過(guò)程中,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),以最后一 個(gè)回放錄像文件的結(jié)束時(shí)間作為更新起始時(shí)間,將內(nèi)存中緩存的從更新起始時(shí)間開(kāi)始至當(dāng) 前時(shí)間的更新片段更新到硬盤(pán)中;將該更新片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地 址添加到播放列表中。
[0056] 這樣,播放完播放列表中之前記錄的最后一個(gè)錄像文件后,將繼續(xù)播放更新片段; 播放更新片段時(shí),更新片段又成為最后一個(gè)錄像文件,將反復(fù)執(zhí)行步驟203,直到回放停止 或錄像結(jié)束;進(jìn)而,使視頻數(shù)據(jù)回放更加適時(shí)、連續(xù)。
[0057] 本步驟所述確定播放到最后一個(gè)回放錄像文件的末尾可采用多種方式實(shí)現(xiàn),例 如:將最后一個(gè)回放錄像文件視頻數(shù)據(jù)的總長(zhǎng)度與已經(jīng)播放的長(zhǎng)度進(jìn)行相減,判斷差值是 否小于設(shè)定閾值,如果是,則確定播放到末尾;否則確定沒(méi)有播放到末尾。錄像文件視頻數(shù) 據(jù)的總長(zhǎng)度可以用錄像文件視頻數(shù)據(jù)的結(jié)束地址減去起始地址得到。
[0058] 更新片段可能是一個(gè)新的錄像文件,也可能是最后一個(gè)回放錄像文件的接續(xù)部 分;新啟一個(gè)錄像文件時(shí),將暫停,兩個(gè)錄像文件之間將有短暫的中斷。進(jìn)一步地,步驟所 述將該更新片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址添加到播放列表中可具體包 括:
[0059] 判斷播放列表中最后一個(gè)錄像文件的結(jié)束時(shí)間與更新片段的起始時(shí)間是否相同, 如果是,表明是同一錄像文件的更新,則將最后一個(gè)錄像文件播放信息的結(jié)束時(shí)間和結(jié)束 地址修改為更新片段的結(jié)束時(shí)間和結(jié)束地址;
[0060] 如果不是,表明是新生成的一個(gè)錄像文件,則另生成一個(gè)播放消息添加到播放列 表中,生成的播放消息包括更新片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址。
[0061] 錄像任務(wù)在內(nèi)存中緩存了實(shí)時(shí)采集的視頻數(shù)據(jù),播放任務(wù)在需要時(shí)從錄像任務(wù)請(qǐng) 求更新片段,將更新片段更新到硬盤(pán)中,該更新片段為從更新起始時(shí)間開(kāi)始至當(dāng)前時(shí)間所 采集的視頻數(shù)據(jù),所述更新起始時(shí)間為最后一個(gè)回放錄像文件的結(jié)束時(shí)間;在緩存區(qū),每次 將緩存的視頻數(shù)據(jù)讀取到硬盤(pán)后,都會(huì)記錄讀取位置,以便下次從該讀取位置開(kāi)始將后續(xù) 采集的視頻數(shù)據(jù)讀取到硬盤(pán);相應(yīng)地,將內(nèi)存中緩存的從更新起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的 更新片段更新到硬盤(pán)中,也就是,將內(nèi)存中從標(biāo)記的讀取位置開(kāi)始采集的視頻數(shù)據(jù)更新到 硬盤(pán)中。這里,將更新片段更新到硬盤(pán)中之后,錄像任務(wù)記錄在緩存區(qū)讀取更新片段的讀取 位置,再下次進(jìn)行數(shù)據(jù)片段讀取時(shí),便可從該讀取位置開(kāi)始進(jìn)行視頻數(shù)據(jù)的后續(xù)讀取。
[0062] 本發(fā)明的錄像回放方案中,先生成播放列表,所述播放列表包含進(jìn)行回放的所有 錄像文件的播放信息;從播放列表中按照時(shí)間播放順序逐個(gè)讀取播放信息,由播放信息中 的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放;在播放過(guò)程中,確定播放到最后 一個(gè)回放錄像文件的末尾時(shí),以最后一個(gè)回放錄像文件的結(jié)束時(shí)間作為更新起始時(shí)間,將 內(nèi)存中緩存的從更新起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的更新片段更新到硬盤(pán)中;將該更新片段的 起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址添加到播放列表中。這樣,播放完播放列表中所 述最后一個(gè)回放錄像文件后,將繼續(xù)播放更新片段;使視頻數(shù)據(jù)回放更加適時(shí)、連續(xù)。
[0063] 本發(fā)明可應(yīng)用到視頻監(jiān)控領(lǐng)域,尤其適用于一些對(duì)適時(shí)性要求比較高的監(jiān)控環(huán) 境,如安保人員在發(fā)現(xiàn)異常時(shí)通常需要知道前幾秒發(fā)生了什么事情,而且還需要對(duì)當(dāng)前發(fā) 生的事件進(jìn)行跟蹤以便做出處理的情況?;胤艜r(shí)可進(jìn)行一些常用操作,如拖動(dòng)、暫停、快進(jìn)、 快退、單幀播放等。
[0064] 參見(jiàn)圖4,為本發(fā)明硬盤(pán)錄像機(jī)的結(jié)構(gòu)示意圖,該硬盤(pán)錄像機(jī)包括錄像單元和播放 單元;
[0065] 所述播放單元,接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存 中;所述播放列表包含進(jìn)行回放的所有錄像文件的播放信息,所述播放信息包括錄像文件 中進(jìn)行回放的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址;播放單元從播放列表中按照時(shí)間 播放順序逐個(gè)讀取播放信息,由播放信息中的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù) 進(jìn)行播放;在播放過(guò)程中,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),向所述錄像單元發(fā) 送片段更新消息,所述片段更新消息包含最后一個(gè)回放錄像文件的結(jié)束時(shí)間;播放單元還 接收來(lái)自所述錄像單元的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址,添加到播放列表中; [0066] 所述錄像單元,接收來(lái)自所述播放單元的片段更新消息,將內(nèi)存中緩存的從更新 起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的錄像文件更新到硬盤(pán)中,并將該更新片段的起始時(shí)間、結(jié)束時(shí) 間、起始地址和結(jié)束地址,發(fā)送給播放單元。
[0067] 較佳地,所述播放單元包括列表生成子單元、播放子單元、列表更新子單元;
[0068] 所述列表生成子單元,接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到 內(nèi)存中,向所述播放子單元發(fā)送播放指令;
[0069] 所述播放子單元,接收播放指令,從播放列表中逐個(gè)讀取播放信息,由播放信息中 的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放,并向所述列表更新子單元發(fā)送更 新指令;
[0070] 所述列表更新子單元,接收更新指令,確定播放到最后一個(gè)回放錄像文件的末尾 時(shí),向所述錄像單元發(fā)送片段更新消息;并接收來(lái)自所述錄像單元的起始時(shí)間、結(jié)束時(shí)間、 起始地址和結(jié)束地址,添加到播放列表中。
[0071] 較佳地,所述列表生成子單兀包括搜索列表建立模塊和播放列表建立模塊;
[0072] 所述搜索列表建立模塊,根據(jù)回放起始時(shí)間對(duì)硬盤(pán)中錄像文件的索引文件進(jìn)行搜 索,搜索出包含有回放起始時(shí)間至當(dāng)前時(shí)間之間視頻數(shù)據(jù)的錄像文件,由搜索出的錄像文 件建立搜索列表,發(fā)送給所述播放列表建立模塊;,所述搜索列表包含搜索信息,每條搜索 信息包含相應(yīng)錄像文件視頻數(shù)據(jù)的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址;
[0073] 所述播放列表建立模塊,從搜索列表中查詢出包含回放起始時(shí)間的搜索信息,確 定出回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的起始地址,作為回放起始地址;將查詢出的搜索信息中 的起始時(shí)間修改為回放起始時(shí)間,將起始地址修改為回放起始地址,將修改后的搜索信息 作為播放信息添加到內(nèi)存的播放列表中,并將搜索列表中其他搜索信息作為播放信息按時(shí) 間順序添加到播放列表中。
[0074] 較佳地,所述列表更新子單元包括信息添加模塊,接收來(lái)自所述錄像單元的起始 時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址,判斷播放列表中最后一個(gè)錄像文件的結(jié)束時(shí)間與接 收的起始時(shí)間是否相同,如果是,則將最后一個(gè)錄像文件播放信息的結(jié)束時(shí)間和結(jié)束地址 修改為更新片段的結(jié)束時(shí)間和結(jié)束地址;如果不是,則另生成一個(gè)播放消息添加到播放列 表中,生成的播放消息包括接收的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址。
[0075] 較佳地,所述列表更新子單元還包括實(shí)時(shí)判定模塊,將最后一個(gè)回放錄像文件視 頻數(shù)據(jù)的總長(zhǎng)度與已經(jīng)播放的長(zhǎng)度進(jìn)行相減,判斷差值是否小于設(shè)定閾值,如果是,則確定 播放到末尾,向所述錄像單元發(fā)送片段更新消息。
[0076] 本發(fā)明所述硬盤(pán)錄像機(jī)具體如數(shù)字硬盤(pán)錄像機(jī)。
[0077] 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1. 一種對(duì)視頻數(shù)據(jù)進(jìn)行錄像回放的方法,其特征在于,該方法包括: 接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存中;所述播放列表包 含進(jìn)行回放的所有錄像文件的播放信息,所述播放信息包括錄像文件中進(jìn)行回放的起始時(shí) 間、結(jié)束時(shí)間、起始地址和結(jié)束地址; 從播放列表中按照時(shí)間播放順序逐個(gè)讀取播放信息,由播放信息中的起始地址和結(jié)束 地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放; 在播放過(guò)程中,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),以最后一個(gè)回放錄像文 件的結(jié)束時(shí)間作為更新起始時(shí)間,將內(nèi)存中緩存的從更新起始時(shí)間開(kāi)始至當(dāng)前時(shí)間的更新 片段更新到硬盤(pán)中;將該更新片段的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址添加到播放 列表中。
2. 如權(quán)利要求1所述的方法,其特征在于,所述生成播放列表包括: 根據(jù)回放起始時(shí)間對(duì)硬盤(pán)中錄像文件的索引文件進(jìn)行搜索,搜索出包含有回放起始時(shí) 間至當(dāng)前時(shí)間之間視頻數(shù)據(jù)的錄像文件,由搜索出的錄像文件建立搜索列表,所述搜索列 表包含搜索信息,每條搜索信息包含相應(yīng)錄像文件視頻數(shù)據(jù)的起始時(shí)間、結(jié)束時(shí)間、起始地 址和結(jié)束地址; 從搜索列表中查詢出包含回放起始時(shí)間的搜索信息,確定出回放起始時(shí)間對(duì)應(yīng)視頻數(shù) 據(jù)的起始地址,作為回放起始地址; 將查詢出的搜索信息中的起始時(shí)間修改為回放起始時(shí)間,將起始地址修改為回放起始 地址,將修改后的搜索信息作為播放信息添加到內(nèi)存的播放列表中,并將搜索列表中其他 搜索信息作為播放信息按時(shí)間順序添加到播放列表中。
3. 如權(quán)利要求2所述的方法,其特征在于,所述確定回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的起 始地址包括: 查詢出包含有回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的錄像文件,由回放起始時(shí)間對(duì)錄像文件的 I幀信息進(jìn)行搜索,搜索出包含回放起始時(shí)間的I幀信息,將搜索出的I幀信息包含的起始 地址作為回放起始地址。
4. 如權(quán)利要求1所述的方法,其特征在于,所述將該更新片段的起始時(shí)間、結(jié)束時(shí)間、 起始地址和結(jié)束地址添加到播放列表中,包括: 判斷播放列表中最后一個(gè)錄像文件的結(jié)束時(shí)間與更新片段的起始時(shí)間是否相同,如果 是,則將最后一個(gè)錄像文件播放信息的結(jié)束時(shí)間和結(jié)束地址修改為更新片段的結(jié)束時(shí)間和 結(jié)束地址; 如果不是,則另生成一個(gè)播放消息添加到播放列表中,生成的播放消息包括更新片段 的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址。
5. 如權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述確定播放到最后一個(gè)回放 錄像文件的末尾包括: 將最后一個(gè)回放錄像文件視頻數(shù)據(jù)的總長(zhǎng)度與已經(jīng)播放的長(zhǎng)度進(jìn)行相減,判斷差值是 否小于設(shè)定閾值,如果是,則確定播放到末尾。
6. -種硬盤(pán)錄像機(jī),其特征在于,該硬盤(pán)錄像機(jī)包括錄像單元和播放單元; 所述播放單元,接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存中;所 述播放列表包含進(jìn)行回放的所有錄像文件的播放信息,所述播放信息包括錄像文件中進(jìn)行 回放的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址;播放單元從播放列表中按照時(shí)間播放順 序逐個(gè)讀取播放信息,由播放信息中的起始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播 放;在播放過(guò)程中,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),向所述錄像單元發(fā)送片段 更新消息,所述片段更新消息包含最后一個(gè)回放錄像文件的結(jié)束時(shí)間;播放單元還接收來(lái) 自所述錄像單元的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址,添加到播放列表中; 所述錄像單元,接收來(lái)自所述播放單元的片段更新消息,將內(nèi)存中緩存的從更新起始 時(shí)間開(kāi)始至當(dāng)前時(shí)間的錄像文件更新到硬盤(pán)中,并將該更新片段的起始時(shí)間、結(jié)束時(shí)間、起 始地址和結(jié)束地址,發(fā)送給播放單元。
7. 如權(quán)利要求6所述的硬盤(pán)錄像機(jī),其特征在于,所述播放單元包括列表生成子單元、 播放子單元、列表更新子單元; 所述列表生成子單元,接收包含回放起始時(shí)間的回放指令,生成播放列表,存儲(chǔ)到內(nèi)存 中,向所述播放子單元發(fā)送播放指令; 所述播放子單元,接收播放指令,從播放列表中逐個(gè)讀取播放信息,由播放信息中的起 始地址和結(jié)束地址從硬盤(pán)中讀取視頻數(shù)據(jù)進(jìn)行播放,并向所述列表更新子單元發(fā)送更新指 令; 所述列表更新子單元,接收更新指令,確定播放到最后一個(gè)回放錄像文件的末尾時(shí),向 所述錄像單元發(fā)送片段更新消息;并接收來(lái)自所述錄像單元的起始時(shí)間、結(jié)束時(shí)間、起始地 址和結(jié)束地址,添加到播放列表中。
8. 如權(quán)利要求7所述的硬盤(pán)錄像機(jī),其特征在于,所述列表生成子單元包括搜索列表 建立模塊和播放列表建立模塊; 所述搜索列表建立模塊,根據(jù)回放起始時(shí)間對(duì)硬盤(pán)中錄像文件的索引文件進(jìn)行搜索, 搜索出包含有回放起始時(shí)間至當(dāng)前時(shí)間之間視頻數(shù)據(jù)的錄像文件,由搜索出的錄像文件建 立搜索列表,發(fā)送給所述播放列表建立模塊;所述搜索列表包含搜索信息,每條搜索信息包 含相應(yīng)錄像文件視頻數(shù)據(jù)的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址; 所述播放列表建立模塊,從搜索列表中查詢出包含回放起始時(shí)間的搜索信息,確定出 回放起始時(shí)間對(duì)應(yīng)視頻數(shù)據(jù)的起始地址,作為回放起始地址;將查詢出的搜索信息中的起 始時(shí)間修改為回放起始時(shí)間,將起始地址修改為回放起始地址,將修改后的搜索信息作為 播放信息添加到內(nèi)存的播放列表中,并將搜索列表中其他搜索信息作為播放信息按時(shí)間順 序添加到播放列表中。
9. 如權(quán)利要求7所述的硬盤(pán)錄像機(jī),其特征在于,所述列表更新子單元包括信息添加 模塊,接收來(lái)自所述錄像單元的起始時(shí)間、結(jié)束時(shí)間、起始地址和結(jié)束地址,判斷播放列表 中最后一個(gè)錄像文件的結(jié)束時(shí)間與接收的起始時(shí)間是否相同,如果是,則將最后一個(gè)錄像 文件播放信息的結(jié)束時(shí)間和結(jié)束地址修改為更新片段的結(jié)束時(shí)間和結(jié)束地址;如果不是, 則另生成一個(gè)播放消息添加到播放列表中,生成的播放消息包括接收的起始時(shí)間、結(jié)束時(shí) 間、起始地址和結(jié)束地址。
10. 如權(quán)利要求7所述的硬盤(pán)錄像機(jī),其特征在于,所述列表更新子單元還包括實(shí)時(shí)判 定模塊,將最后一個(gè)回放錄像文件視頻數(shù)據(jù)的總長(zhǎng)度與已經(jīng)播放的長(zhǎng)度進(jìn)行相減,判斷差 值是否小于設(shè)定閾值,如果是,則確定播放到末尾,向所述錄像單元發(fā)送片段更新消息。
【文檔編號(hào)】G11B27/10GK104104895SQ201310120783
【公開(kāi)日】2014年10月15日 申請(qǐng)日期:2013年4月9日 優(yōu)先權(quán)日:2013年4月9日
【發(fā)明者】冀建成 申請(qǐng)人:杭州??低晹?shù)字技術(shù)股份有限公司