国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于嵌入式nvr的錄像回放時(shí)間軸與內(nèi)容同步控制方法

      文檔序號(hào):7800505閱讀:602來源:國知局
      用于嵌入式nvr的錄像回放時(shí)間軸與內(nèi)容同步控制方法
      【專利摘要】本發(fā)明公開了一種用于嵌入式NVR的錄像回放時(shí)間軸與內(nèi)容同步控制方法,涉及視頻監(jiān)控和流媒體處理【技術(shù)領(lǐng)域】。本方法實(shí)施的嵌入式NVR包括DDR存儲(chǔ)器、NandFlash存儲(chǔ)器、CPU、硬盤存儲(chǔ)介質(zhì)和網(wǎng)絡(luò)接口;DDR存儲(chǔ)器、NandFlash存儲(chǔ)器和硬盤存儲(chǔ)介質(zhì)分別與CPU130連接;第1、2接入嵌入式NVR的網(wǎng)絡(luò)攝像機(jī)分別依次通過IP網(wǎng)絡(luò)和網(wǎng)絡(luò)接口和CPU連通。本發(fā)明使嵌入式NVR在GUI進(jìn)行錄像回放時(shí),時(shí)間軸的游標(biāo)與錄像實(shí)際播放內(nèi)容同步,提升用戶體驗(yàn)感;能提高通過時(shí)間軸定位某一時(shí)間點(diǎn)錄像的準(zhǔn)確性;能有效解決網(wǎng)絡(luò)丟包而導(dǎo)致錄像回放時(shí)視頻卡頓的問題。
      【專利說明】用于嵌入式NVR的錄像回放時(shí)間軸與內(nèi)容同步控制方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及視頻監(jiān)控和流媒體處理【技術(shù)領(lǐng)域】,尤其涉及一種用于嵌入式NVR的錄像回放時(shí)間軸與內(nèi)容同步控制方法。
      【背景技術(shù)】
      [0002]隨著高清監(jiān)控的逐步普及,視頻監(jiān)控正在快速邁入全網(wǎng)絡(luò)化時(shí)代,對高清監(jiān)控管理及存儲(chǔ)業(yè)務(wù)提出了更高的要求;傳統(tǒng)的硬盤錄像機(jī)受硬件制約已不能滿足高清接入和存儲(chǔ)功能。為此,NVR (Network Video Recorder,網(wǎng)絡(luò)視頻錄像機(jī))逐漸成為高清時(shí)代的主流監(jiān)控存儲(chǔ)設(shè)備。
      [0003]NVR是一類視頻錄像設(shè)備,其最主要的功能是通過網(wǎng)絡(luò)接收IPC (網(wǎng)絡(luò)攝像機(jī))設(shè)備或編碼器傳輸?shù)臄?shù)字視頻碼流,并進(jìn)行存儲(chǔ)、管理,從而實(shí)現(xiàn)網(wǎng)絡(luò)化帶來的分布式架構(gòu)優(yōu)勢。同時(shí)嵌入式NVR又具有硬件解碼功能,用戶可以通過嵌入式NVR自帶的⑶KGraphicalUserInterface,圖形用戶界面,又稱圖形用戶接口,是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面,與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受)進(jìn)行各種配置、實(shí)時(shí)視頻瀏覽、錄像檢索及回放等功能。但在實(shí)際的應(yīng)用環(huán)境中,由于受到網(wǎng)絡(luò)環(huán)境和網(wǎng)絡(luò)攝像機(jī)的系統(tǒng)時(shí)間改變等因素的影響,導(dǎo)致存儲(chǔ)的原始視頻數(shù)據(jù)的時(shí)間戳不連續(xù),這樣在GUI中回放錄像時(shí)很難保證錄像的時(shí)間軸位置和錄像播放的實(shí)際時(shí)間點(diǎn)對應(yīng),其結(jié)果有可能是實(shí)際錄像已經(jīng)播放完成,但時(shí)間軸的游標(biāo)還在走動(dòng),或者相反,同時(shí)也很難根據(jù)時(shí)間軸的時(shí)間點(diǎn)去精確定位錄像的時(shí)間點(diǎn)。另外,受網(wǎng)絡(luò)影響,實(shí)時(shí)視頻數(shù)據(jù)在傳輸過程中可能會(huì)丟包,保存的視頻數(shù)據(jù)在進(jìn)行錄像回放時(shí)會(huì)產(chǎn)生卡頓的問題。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明的目的就在于克服嵌入式NVR的GUI在回放錄像時(shí)時(shí)間軸的游標(biāo)時(shí)間信息與實(shí)際錄像內(nèi)容不同步的缺點(diǎn),提供一種用于嵌入式NVR的錄像回放時(shí)間軸與內(nèi)容同步控制方法,保證錄像回放時(shí)的流暢性。
      [0005]本發(fā)明的目的是這樣實(shí)現(xiàn)的:
      [0006]綜合使用流媒體傳輸技術(shù)和網(wǎng)絡(luò)通信技術(shù),解決嵌入式NVR在⑶I中回放錄像時(shí),時(shí)間軸的游標(biāo)時(shí)間與實(shí)際播放內(nèi)容不同步的問題。
      [0007]其技術(shù)方案是:用于嵌入式NVR的錄像回放時(shí)間軸與內(nèi)容同步控制的方法,分為⑶I和后端程序,同時(shí)主要分為兩個(gè)階段進(jìn)行處理控制,即接收IPC (InformationProcessing Center,信息處理中心)的實(shí)時(shí)數(shù)據(jù)并存儲(chǔ)階段、⑶I中錄像回放與控制階段。前一階段為后一階段的實(shí)施提供基礎(chǔ),后一階段實(shí)現(xiàn)最終的目的。在第一階段,即接收IPC的實(shí)時(shí)視頻數(shù)據(jù)包進(jìn)行存儲(chǔ)階段,運(yùn)用流媒體的IP (Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議)傳輸技術(shù)提取實(shí)時(shí)視頻數(shù)據(jù)包中的時(shí)間戳信息,并采用算法對時(shí)間戳處理,將經(jīng)過處理時(shí)間戳后的視頻數(shù)據(jù)包存儲(chǔ)到硬盤介質(zhì)中。在第二階段,即GUI中錄像回放與控制階段,運(yùn)用網(wǎng)絡(luò)技術(shù)中的進(jìn)程間通信技術(shù)實(shí)現(xiàn)GUI的時(shí)間軸游標(biāo)與播放顯示模塊進(jìn)行交互控制,達(dá)到時(shí)間軸與錄像內(nèi)容同步。
      [0008]具體地說,本方法包括第一、二階段。
      [0009]I)本方法的第一階段:
      [0010]①開始,加載并啟動(dòng)后端程序開始錄像,準(zhǔn)備接收網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù);
      [0011]②接收網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù)包;
      [0012]③運(yùn)用流媒體的IP傳輸技術(shù)提取實(shí)時(shí)視頻數(shù)據(jù)包的時(shí)間戳,并根據(jù)NVR系統(tǒng)自身的時(shí)間修正處理視頻數(shù)據(jù)包的時(shí)間戳;
      [0013]④將時(shí)間戳修正后的視頻數(shù)據(jù)包保存到存儲(chǔ)介質(zhì)中;
      [0014]⑤判斷保存的視頻數(shù)據(jù)包是否為關(guān)鍵幀,是則執(zhí)行步驟⑥,否則執(zhí)行步驟⑦;
      [0015]⑥將關(guān)鍵幀信息保存到存儲(chǔ)介質(zhì)中;
      [0016]⑦判斷錄像功能是否被關(guān)閉,是則繼續(xù)執(zhí)行步驟②,否則執(zhí)行步驟⑧,重復(fù)步驟
      ②?⑥,可以持續(xù)存儲(chǔ)網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù);
      [0017]⑧關(guān)閉錄像,結(jié)束本階段。
      [0018]2)本方法的第二階段:
      [0019]①開始,加載并啟動(dòng)⑶I和后端程序;
      [0020]②⑶I向后端程序查詢某一時(shí)間段的錄像;
      [0021]③CTI根據(jù)后端程序返回的錄像文件信息,在錄像回放時(shí)間軸上繪制時(shí)間刻度、錄像起點(diǎn)及結(jié)束點(diǎn)位置;
      [0022]④GUI向后端程序請求播放錄像,后端程序解析請求播放的內(nèi)容,根據(jù)解析結(jié)果和錄像文件的關(guān)鍵幀信息找到要播放的錄像文件及位置;
      [0023]⑤后端程序打開錄像文件和解碼通道;
      [0024]⑥后端程序從存儲(chǔ)介質(zhì)中讀取視頻數(shù)據(jù),將視頻數(shù)據(jù)送入組幀模塊進(jìn)行組幀;
      [0025]⑦后端程序組完一幀后的視頻幀送入解碼通道,解碼后將圖像顯示在⑶I的錄像回放界面,同時(shí),后端程序?qū)⒁曨l幀的時(shí)間信息傳給GUI,GUI收到時(shí)間信息后,在錄像回放時(shí)間軸上移動(dòng)游標(biāo)到正確位置;
      [0026]⑧重復(fù)步驟⑥?⑦,可以顯示流暢的錄像回面,同時(shí)時(shí)間軸的位置與錄像內(nèi)容同
      I K
      少;
      [0027]⑨如果錄像文件播放完或停止播放,則關(guān)閉錄像文件和解碼通道,并結(jié)束錄像回放。
      [0028]其工作機(jī)理是:
      [0029]嵌入式NVR通過網(wǎng)接口接收網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù),運(yùn)用流媒體的IP傳輸技術(shù)提取時(shí)間戳,根據(jù)NVR系統(tǒng)時(shí)間修正視頻數(shù)據(jù)的時(shí)間戳,保證時(shí)間戳不受網(wǎng)絡(luò)攝像機(jī)自身對時(shí)和網(wǎng)絡(luò)丟包的影響,并保存視頻數(shù)據(jù)到存儲(chǔ)介質(zhì)中;在進(jìn)行錄像回放的時(shí)候,后端程序從存儲(chǔ)介質(zhì)中讀取視頻數(shù)據(jù),將數(shù)據(jù)組幀后送入到解碼通道進(jìn)行解碼和視頻顯示;后端程序在將數(shù)據(jù)送入解碼通道的同時(shí),向GUI發(fā)送即將要顯示的視頻時(shí)間信息,GUI收到該時(shí)間信息后可以準(zhǔn)確定位時(shí)間軸位置。
      [0030]本發(fā)明具有下列優(yōu)點(diǎn)和積極效果:
      [0031]①使嵌入式NVR在GUI進(jìn)行錄像回放時(shí),時(shí)間軸的游標(biāo)與錄像實(shí)際播放內(nèi)容同步,提升用戶體驗(yàn)感;[0032]②能提高通過時(shí)間軸定位某一時(shí)間點(diǎn)錄像的準(zhǔn)確性;
      [0033]③能有效解決網(wǎng)絡(luò)丟包而導(dǎo)致錄像回放時(shí)視頻卡頓的問題。
      【專利附圖】

      【附圖說明】
      [0034]圖1是本方法的嵌入式NVR結(jié)構(gòu)方框圖;
      [0035]圖2是本方法的實(shí)時(shí)視頻數(shù)據(jù)存儲(chǔ)流程圖;
      [0036]圖3是本方法的視頻數(shù)據(jù)時(shí)間戳修正算法流程圖;
      [0037]圖4是本方法的錄像回放同步控制流程圖。
      [0038]圖中:
      [0039]100—嵌入式NVR設(shè)備,
      [0040]110—DDR 存儲(chǔ)器,
      [0041]120—NandFlash 存儲(chǔ)器,
      [0042]130—CPU (Central Processing Unit,中央處理機(jī)),
      [0043]131—GUI, 132—后端程序,
      [0044]140—硬盤存儲(chǔ)介質(zhì),
      [0045]150—網(wǎng)絡(luò)接口 ;
      [0046]160—IP 網(wǎng)絡(luò);
      [0047]171—H I接入嵌入式NVR的網(wǎng)絡(luò)攝像機(jī);
      [0048]172—H 2接入嵌入式NVR的網(wǎng)絡(luò)攝像機(jī)。
      【具體實(shí)施方式】
      [0049]下面結(jié)合附圖和實(shí)施例詳細(xì)說明:
      [0050]常量設(shè)置:
      [0051]判斷是否用原始視頻流中時(shí)間戳間隔的門限值:THRESH0LDTSINTERVAL=1000,//單位為毫秒;
      [0052]變量設(shè)置:
      [0053]包的接收時(shí)間:uRecvTime ;
      [0054]錄像文件的第一個(gè)包接收時(shí)間:uFirstRecvTime ;
      [0055]接收到數(shù)據(jù)包的NVR系統(tǒng)時(shí)間戳:uNvrTimeStamp ;
      [0056]收到上一數(shù)據(jù)包時(shí)的視頻包RTP頭時(shí)間戳:uLastRtpTS ;
      [0057]上一數(shù)據(jù)包NVR系統(tǒng)時(shí)間戳:uLastNvrTS ;
      [0058]當(dāng)前包的時(shí)間戳與上一包的時(shí)間戳間隔:uTSInterval。
      [0059]一、本方法實(shí)施的嵌入式NVR
      [0060]1、總體
      [0061]如圖1,本方法實(shí)施的嵌入式NVR包括DDR存儲(chǔ)器110、NandFlash存儲(chǔ)器120、CPU130、硬盤存儲(chǔ)介質(zhì)140和網(wǎng)絡(luò)接口 150 ;
      [0062]DDR存儲(chǔ)器110、NandFlash存儲(chǔ)器120和硬盤存儲(chǔ)介質(zhì)140分別與CPU130連接;
      [0063]第1、2接入嵌入式NVR的網(wǎng)絡(luò)攝像機(jī)171、172分別依次通過IP網(wǎng)絡(luò)160和網(wǎng)絡(luò)接口 150和CPU130連通。[0064]2、功能部件
      [0065]*CPU130是使用海思半導(dǎo)體有限責(zé)任公司的HI3531多媒體視頻處理芯片,該芯片采用ARM9雙核架構(gòu),最高工作頻率是930MHz,具有同時(shí)解碼6路1920x1080分辨率的H264碼流功能。
      [0066]本發(fā)明的方法工作在多媒體視頻處理芯片中。
      [0067]CPU130包括⑶1131和后端程序132 (具體見后面本方法的工作流程)。
      [0068]*其它功能部件均為通用件。
      [0069]3、工作原理
      [0070]嵌入式NVR設(shè)備100和第1、2接入嵌入式NVR的網(wǎng)絡(luò)攝像機(jī)171、172通過IP網(wǎng)絡(luò)160互聯(lián);后端程序132通過網(wǎng)絡(luò)接口 150接收第1、2接入嵌入式NVR的網(wǎng)絡(luò)攝像機(jī)171、172的實(shí)時(shí)視頻數(shù)據(jù),后端程序132根據(jù)嵌入式NVR設(shè)備100自身的系統(tǒng)時(shí)間修正收到實(shí)時(shí)視頻數(shù)據(jù)的時(shí)間戳,修改后的視頻數(shù)據(jù)保存到硬盤存儲(chǔ)介質(zhì)140 ;GUI131向后端程序132請求查詢并回放錄像,后端程序132從硬盤存儲(chǔ)介質(zhì)140中讀取視頻數(shù)據(jù)包并進(jìn)行組幀,完成組幀后將視頻幀送入解碼通道進(jìn)行解碼并顯示圖像;同時(shí),后端程序132將視頻幀的時(shí)間信息以消息的形式傳給GUI131,GUI131收到時(shí)間信息后繪制錄像時(shí)間軸的游標(biāo),以保證時(shí)間軸與錄像內(nèi)容同步。
      [0071]二、用于嵌入式NVR的錄像回放時(shí)間軸與內(nèi)容同步控制方法(簡稱方法)
      [0072]I)本方法的第一階段:
      [0073]如圖1、2,本方法的第一階段(接收IPC的實(shí)時(shí)視頻數(shù)據(jù)包并進(jìn)行存儲(chǔ))包括下列步驟:
      [0074]①開始201:
      [0075]啟動(dòng)嵌入式NVR,加載后端程序132,開始錄像,準(zhǔn)備接收網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù);
      [0076]②接收網(wǎng)絡(luò)攝像機(jī)視頻數(shù)據(jù)202 ;
      [0077]③根據(jù)系統(tǒng)時(shí)間修正視頻數(shù)據(jù)時(shí)間戳203:
      [0078]提取實(shí)時(shí)視頻數(shù)據(jù)包的時(shí)間戳,并根據(jù)NVR系統(tǒng)自身的時(shí)間修正處理視頻數(shù)據(jù)包的時(shí)間戳;
      [0079]④保存視頻數(shù)據(jù)到硬盤中的一個(gè)錄像文件塊中204 ;
      [0080]⑤判斷數(shù)據(jù)包是否屬于關(guān)鍵幀205,是則進(jìn)入步驟⑥,否則執(zhí)行步驟⑦;
      [0081]⑥保存關(guān)鍵幀信息206 ;
      [0082]⑦判斷是否關(guān)閉錄像207,是則進(jìn)入步驟⑧,否則繼續(xù)執(zhí)行步驟②,重復(fù)②?⑥則可不斷接收并存儲(chǔ)視頻數(shù)據(jù);
      [0083]⑧結(jié)束208:關(guān)閉錄像。
      [0084]如圖3,所述的步驟③(根據(jù)系統(tǒng)時(shí)間修正視頻數(shù)據(jù)時(shí)間戳203)包括下列子步驟:
      [0085]A、修正時(shí)間戳算法開始-301 ;
      [0086]B、計(jì)算當(dāng)前包的uRecvTime,并將該信息與視頻數(shù)據(jù)包進(jìn)行封裝_302:
      [0087]將uRecvTime和收到的數(shù)據(jù)包封裝到錄像數(shù)據(jù)單元中;
      [0088]C、將封裝后的數(shù)據(jù)包放入待寫入硬盤的視頻數(shù)據(jù)隊(duì)列中-303 ;
      [0089]D、從待寫的錄像數(shù)據(jù)隊(duì)列中取數(shù)據(jù)-304 ;[0090]E、判斷UFirstRecvTime是否等于零-305,是則進(jìn)入步驟F-306,否則執(zhí)行步驟H-308 ;
      [0091]F、UFirstRecvTime 賦為 uRecvTime,uNvrTimeStamp 賦為 0,uLastRtpTS=視頻包的 RTP 時(shí)戮,uLastNvrTS=uNvrTimeStamp-306:
      [0092]進(jìn)入本步驟說明數(shù)據(jù)包為錄像文件的第一個(gè)數(shù)據(jù)包,則錄像文件的首包接收時(shí)間uFir stRecvTime應(yīng)被賦為該數(shù)據(jù)包的接收時(shí)間uRecvTime,uNvrTimeStamp應(yīng)被賦為0,同時(shí)記錄本次視頻的實(shí)際時(shí)間戳(uLastRtpTS賦為視頻包的RTP時(shí)戳)和計(jì)算后的uNvrTimeStamp (uLastNvrTS 賦為 uNvrTimeStamp);
      [0093]G、修改視頻數(shù)據(jù)的RTP時(shí)間戳并與數(shù)據(jù)一起寫入硬盤中-307:
      [0094]把以上步驟計(jì)算到的uNvrT imeStamp和數(shù)據(jù)寫入硬盤中,錄像回放時(shí)以uNvrTimeStamp為參考標(biāo)準(zhǔn);
      [0095]H、計(jì)算uTSInterval,并判斷uTSInterval是否等于零-308,是則進(jìn)入步驟1-309,否則執(zhí)行步驟J-310:
      [0096]進(jìn)入本步驟說明接收的數(shù)據(jù)包不是錄像文件的第一個(gè)數(shù)據(jù)包,此時(shí)要計(jì)算網(wǎng)絡(luò)攝像機(jī)視頻數(shù)據(jù)包與上一包的時(shí)間戳間隔uTSInterval ,uTSInterval賦為當(dāng)前包的RTP時(shí)間戮-uLastRtpTS ;
      [0097]1、當(dāng)前包的 uNvrTimeStamp=uLastNvrTS,uLastRtpTS=視頻包的 RTP 時(shí)戮,uLastNvrTS=uNvrTimeStamp-309,執(zhí)行完后進(jìn)入步驟 G-307:
      [0098]進(jìn)入本步驟說明當(dāng)前包的時(shí)間戳與上一包的時(shí)間戳相同,為同一幀內(nèi)的包,該包的uNvrTimeStamp賦為uLastNvrTS,同時(shí)記錄本次的視頻的實(shí)際時(shí)間戳(uLastRtpTS賦為視頻包的 RTP 時(shí)戮)和計(jì)算后的 uNvrTimeStamp (uLastNvrTS 賦為 uNvrTimeStamp);
      [0099]J、判斷 uTSInterval 是否大于 THRESH0LDTSINTERVAL-310,是則進(jìn)入步驟 K-311,否則執(zhí)行步驟L-312;
      [0100]K、當(dāng)前包的 uNvrTimeStamp=uRecvTime-uFirstRecvTime,uLastRtpTS=視頻包的RTP 時(shí)戳,uLastNvrTS=uNvrTimeStamp-311,執(zhí)行完后進(jìn)入步驟 G-307:
      [0101]進(jìn)入該步驟說明網(wǎng)絡(luò)攝像機(jī)傳過來的當(dāng)前數(shù)據(jù)包與上一數(shù)據(jù)包的時(shí)間戳間隔過大,大于HRESHOLDTSINTERVAL門限值后,認(rèn)為網(wǎng)絡(luò)攝像機(jī)的時(shí)間系統(tǒng)已經(jīng)改變,為避免時(shí)間戳不準(zhǔn)導(dǎo)致錄像播放不連續(xù),不能根據(jù)前后兩包的時(shí)間戳間隔進(jìn)行簡單處理時(shí)間戳,此時(shí)該包的uNvrTimeStamp賦為uRecvTime-uFirstRecvTime,同時(shí)記錄本次的視頻的實(shí)際時(shí)間戳(uLastRtpTS賦為視頻包的RTP時(shí)戳)和計(jì)算后的uNvrTimeStamp (uLastNvrTS賦為uNvrTimeStamp);
      [0102]L、當(dāng)前包的 uNvrTimeStamp=uLastNvrTS+uTSInterval,uLastRtpTS=視頻包的RTP 時(shí)戳,uLastNvrTS=uNvrTimeStamp-312,執(zhí)行完后進(jìn)入步驟 G-307:
      [0103]進(jìn)入該步驟說明網(wǎng)絡(luò)攝像機(jī)的時(shí)間系統(tǒng)是穩(wěn)定的,此時(shí)可以簡單計(jì)算uNvrTimeStamp為uLastNvrTS+uTSInterval的和,同時(shí)記錄本次的視頻的實(shí)際時(shí)間戳(uLastRtpTS賦為視頻包的RTP時(shí)戳)和計(jì)算后的uNvrTimeStamp (uLastNvrTS賦為uNvrTimeStamp)。
      [0104]2)本方法的第二階段
      [0105]如圖4,本方法第二階段(錄像回放與控制)的處理流程是:[0106]a、⑶I錄像回放開始-401和后端程序開始_408:
      [0107]⑶I錄像回放開始-401加載⑶1131,后端程序開始408加載后端程序132,后端程序開始監(jiān)聽GUI的消息;
      [0108]b、查詢某一時(shí)間段錄像-402,⑶I向后端程序發(fā)送搜索錄像的請求消息,等待步驟c-409的返回結(jié)果,收到返回結(jié)果后執(zhí)行步驟d-403 ;
      [0109]C、搜索某時(shí)間段內(nèi)的錄像文件信息-409:
      [0110]后端程序收到步驟b-402的GUI搜索錄像的請求消息后,搜索錄像并將搜索結(jié)果以消息形式返回給GUI,并監(jiān)聽等待GUI的下一個(gè)請求消息;
      [0111]d、根據(jù)查詢到的錄像文件信息繪制時(shí)間軸并確定時(shí)間軸的時(shí)間刻度和起點(diǎn)位置及結(jié)束位置-403:
      [0112]⑶I的錄像回放窗口在收到步驟c-409的后端程序返回的時(shí)間段錄像信息后,繪制時(shí)間軸并確定時(shí)間刻度;
      [0113]e、播放錄像控制-404
      [0114]⑶I的錄像回放窗口中,在時(shí)間軸的任意位置開始播放錄像,⑶I將錄像播放起始位置信息及播放類型以消息形式發(fā)給后端程序并請求開始播放錄像;
      [0115]f、根據(jù)播放起點(diǎn)位置找出對應(yīng)的錄像文件及關(guān)鍵幀位置-410:
      [0116]后端程序收到步驟e-404的GUI請求播放錄像的消息后,根據(jù)請求消息中的時(shí)間信息找到對應(yīng)的錄像文件和起始播放點(diǎn)的關(guān)鍵幀位置;
      [0117]g、打開視頻解碼通道和錄像文件句柄-411 ;
      [0118]h、根據(jù)播放類型計(jì)算時(shí)間間隔,并以計(jì)算的時(shí)間間隔從錄像文件中讀取視頻包-412 ;
      [0119]1、將視頻包進(jìn)行組幀413 ;
      [0120]后端程序組完一幀后,將該幀的時(shí)間信息以消息形式發(fā)給GUI ;
      [0121]j、將視頻幀送入解碼通道進(jìn)行解碼顯示-414 ;
      [0122]k、與步驟j同時(shí)并行,根據(jù)傳回的當(dāng)前播放錄像時(shí)間信息繪制時(shí)間軸游標(biāo)及時(shí)間/[目息 _405:
      [0123]GUI收到步驟1-413發(fā)來的時(shí)間信息消息后,根據(jù)該信息同步繪制時(shí)間軸游標(biāo);
      [0124]1、判斷錄像文件是否播放完成-415,是則進(jìn)入步驟m-416,同時(shí)發(fā)送文件播放完成消息給⑶I,否則繼續(xù)執(zhí)行步驟h-412 ;
      [0125]m、關(guān)閉視頻解碼通道和錄像文件句柄-416:
      [0126]后端程序收到步驟O-406由⑶I發(fā)送的停止播放錄像消息后也執(zhí)行本步驟;
      [0127]η、結(jié)束后端程序的錄像播放控制-417 ;
      [0128]O、與步驟1-415并行執(zhí)行,判斷是否停止錄像播放-406,是則進(jìn)入步驟ρ_407,同時(shí)發(fā)送停止播放錄像消息給后端程序執(zhí)行步驟m-416,否則繼續(xù)執(zhí)行步驟k-405 ;
      [0129]p、結(jié)束⑶I錄像回放-407:
      [0130]GUI收到步驟1-415由后端程序發(fā)送的文件播放完成消息后也執(zhí)行本步驟。
      【權(quán)利要求】
      1.一種用于嵌入式NVR的錄像回放時(shí)間軸與內(nèi)容同步控制方法,其特征在于: 第一階段: ①開始,加載并啟動(dòng)后端程序開始錄像,準(zhǔn)備接收網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù); ②接收網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù)包; ③運(yùn)用流媒體的IP傳輸技術(shù)提取實(shí)時(shí)視頻數(shù)據(jù)包的時(shí)間戳,并根據(jù)NVR系統(tǒng)自身的時(shí)間修正處理視頻數(shù)據(jù)包的時(shí)間戳; ④將時(shí)間戳修正后的視頻數(shù)據(jù)包保存到存儲(chǔ)介質(zhì)中; ⑤判斷保存的視頻數(shù)據(jù)包是否為關(guān)鍵幀,是則執(zhí)行步驟⑥,否則執(zhí)行步驟⑦; ⑥將關(guān)鍵幀信息保存到存儲(chǔ)介質(zhì)中; ⑦判斷錄像功能是否被關(guān)閉,是則繼續(xù)執(zhí)行步驟②,否則執(zhí)行步驟⑧,重復(fù)步驟②~⑥,可以持續(xù)存儲(chǔ)網(wǎng)絡(luò)攝像機(jī)的實(shí)時(shí)視頻數(shù)據(jù); ⑧關(guān)閉錄像,結(jié)束本階段。 第二階段: ①開始,加載并啟動(dòng)GUI和后端程序; ②⑶I向后端程序查詢某一時(shí)間段的錄像; ③GUI根據(jù)后端程序返回的錄像文件信息,在錄像回放時(shí)間軸上繪制時(shí)間刻度、錄像起點(diǎn)及結(jié)束點(diǎn)位置; ④GUI向后端程序請求播放錄像,后端程序解析請求播放的內(nèi)容,根據(jù)解析結(jié)果和錄像文件的關(guān)鍵幀信息找到要播放的錄像文件及位置; ⑤后端程序打開錄像文件和解碼通道; ⑥后端程序從存儲(chǔ)介質(zhì)中讀取視頻數(shù)據(jù),將視頻數(shù)據(jù)送入組幀模塊進(jìn)行組幀; ⑦后端程序組完一幀后的視頻幀送入解碼通道,解碼后將圖像顯示在⑶I的錄像回放界面,同時(shí),后端程序?qū)⒁曨l幀的時(shí)間信息傳給GUI,GUI收到時(shí)間信息后,在錄像回放時(shí)間軸上移動(dòng)游標(biāo)到正確位置; ⑧重復(fù)步驟⑥~⑦,可以顯示流暢的錄像回面,同時(shí)時(shí)間軸的位置與錄像內(nèi)容同步; ⑨如果錄像文件播放完或停止播放,則關(guān)閉錄像文件和解碼通道,并結(jié)束錄像回放。
      2.按權(quán)利要求1所述的同步控制方法,其特征在于所述第一階段步驟③: A、修正時(shí)間戳算法開始(301); B、計(jì)算當(dāng)前包的uRecvTime,并將該信息與視頻數(shù)據(jù)包進(jìn)行封裝(302): 將uRecvTime和收 到的數(shù)據(jù)包封裝到錄像數(shù)據(jù)單元中; C、將封裝后的數(shù)據(jù)包放入待寫入硬盤的視頻數(shù)據(jù)隊(duì)列中(303); D、從待寫的錄像數(shù)據(jù)隊(duì)列中取數(shù)據(jù)(304); E、判斷UFirstRecvTime是否等于零(305),是則進(jìn)入步驟F(306),否則執(zhí)行步驟H(308);
      F>uFirStRecvTime 賦為 uRecvTime, uNvrTimeStamp 賦為 O, ULastRtpTS=視頻包的 RTP時(shí)戮,uLastNvrTS=uNvrTimeStamp (306): 進(jìn)入本步驟說明數(shù)據(jù)包為錄像文件的第一個(gè)數(shù)據(jù)包,則錄像文件的首包接收時(shí)間uFirStRecvTime應(yīng)被賦為該數(shù)據(jù)包的接收時(shí)間uRecvTime, uNvrTimeStamp應(yīng)被賦為0,同時(shí)記錄本次視頻的實(shí)際時(shí)間戳,ULastRtpTS賦為視頻包的RTP時(shí)戳和計(jì)算后的uNvrTimeStamp, uLastNvrTS 賦為 uNvrTimeStamp ; G、修改視頻數(shù)據(jù)的RTP時(shí)間戳并與數(shù)據(jù)一起寫入硬盤中(307): 把以上步驟計(jì)算到的uNvrTimeStamp和數(shù)據(jù)寫入硬盤中,錄像回放時(shí)以uNvrTimeStamp為參考標(biāo)準(zhǔn); H、計(jì)算uTSInterval,并判斷uTSInterval是否等于零(308),是則進(jìn)入步驟I(309),否則執(zhí)行步驟J (310): 進(jìn)入本步驟說明接收的數(shù)據(jù)包不是錄像文件的第一個(gè)數(shù)據(jù)包,此時(shí)要計(jì)算網(wǎng)絡(luò)攝像機(jī)視頻數(shù)據(jù)包與上一包的時(shí)間戳間隔uTSInterval, uTSInterval賦為當(dāng)前包的RTP時(shí)間戳-uLastRtpTS ; I、當(dāng)前包的uNvrTimeStamp=uLastNvrTS, uLastRtpTS=視頻包的 RTP 時(shí)戳,uLastNvrTS=uNvrTimeStamp309,執(zhí)行完后進(jìn)入步驟 G (307): 進(jìn)入本步驟說明當(dāng)前包的時(shí)間戳與上一包的時(shí)間戳相同,為同一幀內(nèi)的包,該包的uNvrTimeStamp賦為uLastNvrTS,同時(shí)記錄本次的視頻的實(shí)際時(shí)間戳,uLastRtpTS賦為視頻包的 RTP 時(shí)戳和計(jì)算后的 uNvrTimeStamp, uLastNvrTS 賦為 uNvrTimeStamp ; J、判斷 uTSInterval 是否大于 THRESHOLDTSINTERVAL (310),是則進(jìn)入步驟 K (311),否則執(zhí)行步驟L (312); K、當(dāng)前包的 uNvrTimeStamp=uRecvTime_uFirstRecvTime, uLastRtpTS=視頻包的 RTP時(shí)戳,ULastNvrTS=UNvrTimeStamp (311),執(zhí)行完后進(jìn)入步驟 G (307): 進(jìn)入該步驟說明網(wǎng)絡(luò)攝像機(jī)傳過來的當(dāng)前數(shù)據(jù)包與上一數(shù)據(jù)包的時(shí)間戳間隔過大,大于HRESHOLDTSINTERVAL門限值后,認(rèn)為網(wǎng)絡(luò)攝像機(jī)的時(shí)間系統(tǒng)已經(jīng)改變,為避免時(shí)間戳不準(zhǔn)導(dǎo)致錄像播放不連續(xù),不能根據(jù)前后兩包的時(shí)間戳間隔進(jìn)行簡單處理時(shí)間戳,此時(shí)該包的uNvrTimeStamp賦為uRecvTime_uFirstRecvTime,同時(shí)記錄本次的視頻的實(shí)際時(shí)間戳,uLastRtpTS賦為視頻包的RTP時(shí)戳和計(jì)算后的uNvrTimeStamp, uLastNvrTS賦為uNvrTimeStamp ; L、當(dāng)前包的 uNvrTimeStamp=uLastNvrTS+uTSInte;rval, uLastRtpTS=視頻包的 RTP 時(shí)戳,ULastNvrTS=UNvrTimeStamp (312),執(zhí)行完后進(jìn)入步驟 G (307): 進(jìn)入該步驟說明網(wǎng)絡(luò)攝像機(jī)的時(shí)間系統(tǒng)是穩(wěn)定的,此時(shí)可以簡單計(jì)算uNvrTimeStamp為uLastNvrTS+uTSInterval的和,同時(shí)記錄本次的視頻的實(shí)際時(shí)間戳,uLastRtpTS賦為視頻包的 RTP 時(shí)戳和計(jì)算后的 uNvrTimeStamp, uLastNvrTS 賦為 uNvrTimeStamp。
      3.按權(quán)利要求1所述的同步控制方法,其特征在于所述第二階段的處理流程是: a、GUI錄像回放開始(401)和后端程序開始(408): GUI錄像回放開始(401)加載GUI (131),后端程序開始(408)加載后端程序(132),后端程序開始監(jiān)聽⑶I的消息; b、查詢某一時(shí)間段錄像(402),⑶I向后端程序發(fā)送搜索錄像的請求消息,等待步驟c-409的返回結(jié)果,收到返回結(jié)果后執(zhí)行步驟d (403); C、搜索某時(shí)間段內(nèi)的錄像文件信息(409): 后端程序收到步驟b (402)的GUI搜索錄像的請求消息后,搜索錄像并將搜索結(jié)果以消息形式返回給GUI,并監(jiān)聽等待GUI的下一個(gè)請求消息; d、根據(jù)查詢到的錄像文件信息繪制時(shí)間軸并確定時(shí)間軸的時(shí)間刻度和起點(diǎn)位置及結(jié)束位置(403), GUI的錄像回放窗口在收到步驟c (409)的后端程序返回的時(shí)間段錄像信息后,繪制時(shí)間軸并確定時(shí)間刻度; e、播放錄像控制(404) ⑶I的錄像回放窗口中,在時(shí)間軸的任意位置開始播放錄像,⑶I將錄像播放起始位置信息及播放類型以消息形式發(fā)給后端程序并請求開始播放錄像; f、根據(jù)播放起點(diǎn)位置找出對應(yīng)的錄像文件及關(guān)鍵幀位置(410): 后端程序收到步驟e (404)的GUI請求播放錄像的消息后,根據(jù)請求消息中的時(shí)間信息找到對應(yīng)的錄像文件和起始播放點(diǎn)的關(guān)鍵幀位置; g、打開視頻解碼通道和錄像文件句柄(411); h、根據(jù)播放類型計(jì)算時(shí)間間隔,并以計(jì)算的時(shí)間間隔從錄像文件中讀取視頻包(412); . 1、將視頻包進(jìn)行組幀(413); 后端程序組完一幀后,將該幀的時(shí)間信息以消息形式發(fā)給GUI ; j、將視頻幀送入解碼通道進(jìn)行解碼顯示(414); k、與步驟j同時(shí)并行, 根據(jù)傳回的當(dāng)前播放錄像時(shí)間信息繪制時(shí)間軸游標(biāo)及時(shí)間信息(405): GUI收到步驟i (413)發(fā)來的時(shí)間信息消息后,根據(jù)該信息同步時(shí)間軸; . 1、判斷錄像文件是否播放完成(415),是則進(jìn)入步驟m (416),同時(shí)發(fā)送文件播放完成消息給⑶I,否則繼續(xù)執(zhí)行步驟h (412); m、關(guān)閉視頻解碼通道和錄像文件句柄(416): 后端程序收到步驟ο (406)由⑶I發(fā)送的停止播放錄像消息后也執(zhí)行本步驟; η、結(jié)束后端程序的錄像播放控制(417); O、與步驟I (415)并行執(zhí)行,判斷是否停止錄像播放(406),是則進(jìn)入步驟P (407),同時(shí)發(fā)送停止播放錄像消息給后端程序執(zhí)行步驟m (416),否則繼續(xù)執(zhí)行步驟k (405); P、結(jié)束GUI錄像回放(407): GUI收到步驟I (415)由后端程序發(fā)送的文件播放完成消息后也執(zhí)行本步驟。
      【文檔編號(hào)】H04N21/472GK103873804SQ201410127556
      【公開日】2014年6月18日 申請日期:2014年3月31日 優(yōu)先權(quán)日:2014年3月31日
      【發(fā)明者】王剛, 舒展, 范毅, 吳立 申請人:武漢烽火眾智數(shù)字技術(shù)有限責(zé)任公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1