一種基于硬盤錄像機(jī)的視頻倒序回查方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于安保視頻監(jiān)控領(lǐng)域,具體涉及一種基于硬盤錄像機(jī)的視頻倒序回查方法,主要解決基于DVR錄像的視頻倒敘片段關(guān)鍵幀的快速定位。
【背景技術(shù)】
[0002]硬盤錄像機(jī)即為數(shù)字視頻錄像機(jī),它是一套進(jìn)行圖像存儲(chǔ)處理的計(jì)算機(jī)系統(tǒng),具有對(duì)圖像/語音進(jìn)行長(zhǎng)時(shí)間錄像、錄音、遠(yuǎn)程監(jiān)視和控制的功能。硬盤錄像機(jī)是近年來在安保監(jiān)控領(lǐng)域發(fā)展比較穩(wěn)定的產(chǎn)品之一,同時(shí),基于硬盤錄像機(jī)的視頻回放已經(jīng)成為近年來視頻監(jiān)控的主要手段,主要分為兩類:按照時(shí)間回放錄像文件和按照文件名稱回放錄像文件,滿足了用戶調(diào)看某段重要視頻的功能,調(diào)看的視頻從錄像機(jī)上傳后按照視頻流順序播放。
[0003]雖然順序播放滿足了用戶調(diào)看歷史視頻的需求,但也存在以下問題:
[0004]1、關(guān)鍵視頻節(jié)點(diǎn)不易捕獲
[0005]用戶在視頻調(diào)看過程中,遇到關(guān)注點(diǎn)內(nèi)的視頻節(jié)點(diǎn)時(shí)想要捕捉和重新瀏覽該段視頻,但因?yàn)椴シ诺捻樞蛐裕荒軐⒄麄€(gè)視頻信息從頭開始播放到該節(jié)點(diǎn)。比如,順序播放到12:15后,發(fā)現(xiàn)關(guān)鍵視頻點(diǎn),只能停止播放該視頻后,重新播放到12:00左右后,重新捕捉剛才瀏覽完畢的視頻點(diǎn)后進(jìn)行處理。這樣無法達(dá)到在短時(shí)間內(nèi)獲取該關(guān)鍵幀節(jié)點(diǎn)的目的。
[0006]2、敏感視頻段不易得到控制
[0007]用戶對(duì)關(guān)心的視頻段不能進(jìn)行有效的播放控制操作(暫停、播放、停止、快放、慢放、單幀步進(jìn)、單幀后退、循環(huán)播放、精確定位到某幀等)。比如,用戶播放到12:15后,如果出現(xiàn)關(guān)鍵視頻點(diǎn)后并未及時(shí)開始處理,會(huì)由于視頻段抓取的不完整而得不到完整的展現(xiàn)。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的在于提供一種基于硬盤錄像機(jī)的視頻倒序回查技術(shù),解決現(xiàn)有技術(shù)中存在的上述問題。
[0009]本發(fā)明的技術(shù)方案是:
[0010]一種基于硬盤錄像機(jī)的視頻倒序回查方法,其特征在于:
[0011](I)在視頻順序播放時(shí),如果想從某個(gè)時(shí)間點(diǎn)開始倒放,先停止順序播放,獲取現(xiàn)在的視頻播放結(jié)束時(shí)間,將該時(shí)間點(diǎn)確定為視頻倒放開始時(shí)間;
[0012](2)將倒放開始時(shí)間設(shè)置為0,并設(shè)定倒放的時(shí)間段和倒放的結(jié)束時(shí)間;
[0013](3)將倒放的開始時(shí)間和結(jié)束時(shí)間轉(zhuǎn)換為系統(tǒng)文件時(shí)間;
[0014](4)啟動(dòng)下載線程,在該線程里用到互斥變量的概念,以便控制每個(gè)線程按照順序訪問變量,防止線程杜塞;
[0015](5)從倒放開始時(shí)間算起,每5秒鐘下載一段視頻,處理該5秒鐘的視頻碼流;
[0016](6)實(shí)時(shí)檢測(cè)下載進(jìn)度,當(dāng)下載進(jìn)度100%,即下載完畢后,停止該路視頻的碼流接收;利用緩存區(qū)的大小和對(duì)應(yīng)的位置計(jì)算出新的端口流數(shù)據(jù),利用新的計(jì)算位置開始調(diào)用底層函數(shù)進(jìn)行倒序播放;
[0017](7)重復(fù)上述流程,直到將設(shè)定的倒放時(shí)間段內(nèi)的視頻倒放完畢,停止倒放,并清理相關(guān)內(nèi)存;
[0018](8)獲得該倒放停止點(diǎn)的時(shí)間點(diǎn);
[0019](9)從倒放停止的時(shí)間點(diǎn)開始進(jìn)入視頻的順序播放。
[0020]本發(fā)明實(shí)現(xiàn)的有益效果是:
[0021]1、快速捕獲關(guān)鍵視頻段:當(dāng)用戶調(diào)看視頻時(shí),當(dāng)對(duì)正在播放的視頻段進(jìn)行回查時(shí),可以啟動(dòng)倒放功能。從當(dāng)前的時(shí)間段開始截獲碼流,然后抽取出關(guān)鍵幀進(jìn)行倒放。當(dāng)?shù)狗诺侥滁c(diǎn)時(shí),用戶可以重新從該點(diǎn)進(jìn)行播放來觀看此段敏感視頻。如,當(dāng)視頻播放到12:15后,用戶發(fā)現(xiàn)關(guān)鍵視頻點(diǎn),此時(shí)用戶可以從該點(diǎn)進(jìn)行倒放,到達(dá)用戶需要的視頻點(diǎn)位時(shí),重新順序播放,這樣保證了視頻段抓取的及時(shí)性。
[0022]2、對(duì)關(guān)鍵視頻段進(jìn)行有效控制:用戶調(diào)看視頻過程中,利用倒放功能可以快速重現(xiàn)某關(guān)鍵視頻段,并對(duì)該關(guān)鍵視頻段進(jìn)行播放控制,包括暫停、播放、停止、快放、慢放、單幀步進(jìn)、單幀后退、循環(huán)播放。比如,用戶盡管已經(jīng)瀏覽到12:15以后,甚至13:20后,但是用戶可以利用快速倒放等功能,瞬時(shí)倒放到12:15以前,保證了短時(shí)間內(nèi)獲取到完整的視頻段,并同時(shí)保證了在該視頻段上進(jìn)行視頻處理。
【具體實(shí)施方式】
[0023]本方法針對(duì)順序播放中無法快速定位瀏覽過的視頻而設(shè)計(jì)生成,通過不斷的實(shí)驗(yàn),得出每5秒鐘的播放間隔來處理下載的視頻流和申請(qǐng)合適的緩沖區(qū)(4096*1024)是比較理想的狀態(tài)。并且,在實(shí)際處理過程中,由于視頻流的處理需要一定的緩沖時(shí)間,設(shè)定了比較理想的延時(shí)間隔40ms。該方法實(shí)現(xiàn)了視頻的重要畫面的重現(xiàn)和關(guān)鍵幀的快速定位,同時(shí)也實(shí)現(xiàn)了視頻倒序播放過程中的有效控制。
[0024]具體實(shí)現(xiàn)方式如下:
[0025](I)在視頻順序播放時(shí),如果想從某個(gè)時(shí)間點(diǎn)開始倒放,先停止順序播放,獲取現(xiàn)在的視頻播放結(jié)束時(shí)間,將該時(shí)間點(diǎn)確定為視頻倒放開始時(shí)間;
[0026](2)將倒放開始時(shí)間設(shè)置為0,并設(shè)定倒放的時(shí)間段和倒放的結(jié)束時(shí)間;
[0027](3)將倒放的開始時(shí)間和結(jié)束時(shí)間轉(zhuǎn)換為系統(tǒng)文件時(shí)間;
[0028](4)啟動(dòng)下載線程,在該線程里用到互斥變量的概念,以便控制每個(gè)線程按照順序訪問變量,防止線程杜塞;
[0029](5)從倒放開始時(shí)間算起,每5秒鐘下載一段視頻,處理該5秒鐘的視頻碼流;
[0030](6)實(shí)時(shí)檢測(cè)下載進(jìn)度,當(dāng)下載進(jìn)度100%,即下載完畢后,停止該路視頻的碼流接收;利用緩存區(qū)的大小和對(duì)應(yīng)的位置計(jì)算出新的端口流數(shù)據(jù),利用新的計(jì)算位置開始調(diào)用底層函數(shù)進(jìn)行倒序播放;
[0031](7)重復(fù)上述流程,直到將設(shè)定的倒放時(shí)間段內(nèi)的視頻倒放完畢,停止倒放,并清理相關(guān)內(nèi)存;
[0032](8)獲得該倒放停止點(diǎn)的時(shí)間點(diǎn);
[0033](9)從倒放停止的時(shí)間點(diǎn)開始進(jìn)入視頻的順序播放。
[0034]本發(fā)明在倒放的過程中,還新擴(kuò)展了倒放播放控制的功能。如快速倒放(支持2,ο n CJ? Yr/ω r: v/f」.? / ττ>^ ι~ιι /.Λτ?η?τ?Γ7\ γ?νωΓ:τ7>ι?? t / ττ>.ι~ιι γλτ ?η ?τ
【主權(quán)項(xiàng)】
1.一種基于硬盤錄像機(jī)的視頻倒序回查方法,其特征在于: (1)在視頻順序播放時(shí),如果想從某個(gè)時(shí)間點(diǎn)開始倒放,先停止順序播放,獲取現(xiàn)在的視頻播放結(jié)束時(shí)間,將該時(shí)間點(diǎn)確定為視頻倒放開始時(shí)間; (2)將倒放開始時(shí)間設(shè)置為O,并設(shè)定倒放的時(shí)間段和倒放的結(jié)束時(shí)間; (3)將倒放的開始時(shí)間和結(jié)束時(shí)間轉(zhuǎn)換為系統(tǒng)文件時(shí)間; (4)啟動(dòng)下載線程,在該線程里用到互斥變量的概念,以便控制每個(gè)線程按照順序訪問變量,防止線程杜塞; (5)從倒放開始時(shí)間算起,每5秒鐘下載一段視頻,處理該5秒鐘的視頻碼流; (6)實(shí)時(shí)檢測(cè)下載進(jìn)度,當(dāng)下載進(jìn)度100%,即下載完畢后,停止該路視頻的碼流接收;利用緩存區(qū)的大小和對(duì)應(yīng)的位置計(jì)算出新的端口流數(shù)據(jù),利用新的計(jì)算位置開始調(diào)用底層函數(shù)進(jìn)行倒序播放; (7)重復(fù)上述流程,直到將設(shè)定的倒放時(shí)間段內(nèi)的視頻倒放完畢,停止倒放,并清理相關(guān)內(nèi)存; (8)獲得該倒放停止點(diǎn)的時(shí)間點(diǎn); (9)從倒放停止的時(shí)間點(diǎn)開始進(jìn)入視頻的順序播放。
【專利摘要】本發(fā)明涉及一種基于硬盤錄像機(jī)的視頻倒序回查方法,在視頻順序播放時(shí),如果想從某個(gè)時(shí)間點(diǎn)開始倒放,先停止順序播放,獲取現(xiàn)在的視頻播放結(jié)束時(shí)間,將該時(shí)間點(diǎn)確定為視頻倒放開始時(shí)間;啟動(dòng)下載線程,從倒放開始時(shí)間算起,每5秒鐘下載一段視頻,直到將設(shè)定的倒放時(shí)間段內(nèi)的視頻倒放完畢,獲得該倒放停止點(diǎn)的時(shí)間點(diǎn);然后從倒放停止的時(shí)間點(diǎn)開始進(jìn)入視頻的順序播放。
【IPC分類】H04N5-781, H04N21-2387
【公開號(hào)】CN104639954
【申請(qǐng)?zhí)枴緾N201310544305
【發(fā)明人】劉惟錦, 王春華, 孫亞妮, 李小君
【申請(qǐng)人】北京航天長(zhǎng)峰科技工業(yè)集團(tuán)有限公司
【公開日】2015年5月20日
【申請(qǐng)日】2013年11月6日