法實(shí)施流程示意圖,如圖所示,可以包括 如下步驟:
[0062] 步驟101、當(dāng)交易發(fā)生時(shí),對(duì)交易行為進(jìn)行錄像,并獲取交易信息;
[0063] 步驟102、通過錄像獲得視頻文件,并將交易信息按所述視頻文件的幀格式進(jìn)行封 裝后獲得交易幀;
[0064] 步驟103、顯示和/或存儲(chǔ)視頻文件及交易幀,其中,所述交易幀是作為視頻文件 中的幀保存在視頻文件中的。
[0065] 實(shí)施中,可以考慮在一條特定交易幀可同時(shí)插入多路視頻通道,如一臺(tái)交易設(shè)備 (例如P0S收銀機(jī))可同時(shí)關(guān)聯(lián)多路視頻通道的情形,在對(duì)所述交易行為進(jìn)行多路錄像獲得 多個(gè)視頻文件時(shí),進(jìn)一步包括:
[0066] 顯示和/或存儲(chǔ)每個(gè)視頻文件及交易幀,其中,所述交易幀是作為每一個(gè)視頻文 件中的幀保存在該視頻文件中的。
[0067] 為更好地理解,下面的【具體實(shí)施方式】將主要以POS(pointofsale,銷售終端)機(jī)及 NVR(NetworkVideoRecorder,網(wǎng)絡(luò)硬盤錄像機(jī))為例進(jìn)行說明,其中,交易行為發(fā)生在P0S 機(jī)上,P0S機(jī)是交易信息的提供設(shè)備,而視頻文件的存儲(chǔ)等處理由NVR執(zhí)行。在實(shí)施中,以 POS機(jī)、NVR為例是因?yàn)檫@兩種設(shè)備最為常見、應(yīng)用最為廣泛;但是,用其它的設(shè)備也是可以 的,只要能夠提供交易信息,對(duì)視頻文件進(jìn)行存儲(chǔ)等處理即可,P0S機(jī)、NVR僅用于教導(dǎo)本領(lǐng) 域技術(shù)人員具體如何實(shí)施本發(fā)明,但不意味僅能使用這兩個(gè)設(shè)備,實(shí)施過程中可以結(jié)合實(shí) 踐需要來確定選用的設(shè)備。
[0068] 實(shí)施中,當(dāng)選用P0S機(jī)作為交易設(shè)備時(shí),則交易信息是從P0S機(jī)上獲取的。
[0069] 對(duì)于步驟101中的獲取交易信息的實(shí)施,P0S機(jī)產(chǎn)生的交易信息的處理可以在單 獨(dú)的P0S組件中實(shí)現(xiàn)。其過程如下:
[0070] 1、NVR設(shè)備啟動(dòng),加載它用于解析P0S原始數(shù)據(jù)的腳本文件。
[0071] 2、給NVR設(shè)備配置與它通信的P0S機(jī)設(shè)備(可添加多臺(tái)),包含聯(lián)動(dòng)視頻通道(可 聯(lián)動(dòng)多通道)、連接方式(RS232、RS485、網(wǎng)絡(luò))、超時(shí)時(shí)間等配置項(xiàng)。
[0072] 以上兩步完成以后,NVR設(shè)備可以開始接受P0S交易信息。
[0073] 對(duì)于步驟102中的將交易信息按所述視頻文件的幀格式進(jìn)行封裝后獲得交易幀、 以及步驟103中交易幀是作為視頻文件中的幀保存在視頻文件中的實(shí)施例中,將交易幀作 為視頻文件中的幀保存在視頻文件中,是在交易完成后將所述交易幀作為視頻文件中的幀 保存在視頻文件中的,具體參考下述步驟207的處理,則具體可以如下:
[0074] 圖2為P0S交易信息處理流程示意圖,交易信息的處理過程如圖所示,包括:
[0075] 步驟201、從串口或網(wǎng)口獲取單條交易項(xiàng)原始數(shù)據(jù),P0S交易信息包含很多子項(xiàng), 即單個(gè)商品交易信息,NVR設(shè)備接受的是單個(gè)的P0S交易信息子項(xiàng);
[0076] 步驟202、解析器將原始格式數(shù)據(jù)解析成固定格式數(shù)據(jù),NVR設(shè)備將單個(gè)交易子項(xiàng) 交給協(xié)議解析器解析,P0S原始數(shù)據(jù)的解析由lua腳本完成,解析成固定格式的信息交個(gè) NVR應(yīng)用程序;
[0077] 步驟203、交易信息緩存,NVR設(shè)備收到解析完成的交易信息,先將其放入緩存中;
[0078] 步驟204、判斷當(dāng)前交易是否結(jié)束,若否轉(zhuǎn)入步驟205,若是轉(zhuǎn)入步驟207;
[0079] 步驟205、等待下條交易;
[0080] 步驟206、判斷等待是否超時(shí),若否轉(zhuǎn)入步驟205,若是轉(zhuǎn)入步驟207,NVR設(shè)備接收 同一臺(tái)P0S機(jī)的最后一條消息開始,過了超時(shí)時(shí)間仍沒有接收新的P0S消息,則認(rèn)為當(dāng)前交 易結(jié)束;
[0081] 步驟207、將交易數(shù)據(jù)封裝成標(biāo)準(zhǔn)幀格式,交易結(jié)束,則先將其封裝成Json格式的 字符串,然后在Json(JavaScriptObjectNotation,JavaScript對(duì)象符號(hào))字符串的前面 添加幀的頭部信息,根據(jù)頭部信息可識(shí)別當(dāng)前幀是I幀、P幀、音頻幀、或輔助幀,頭部信息 按標(biāo)準(zhǔn)碼流格式處理。
[0082] 具體實(shí)施中,交易幀可以是作為視頻文件中的輔助幀保存在該視頻文件中的。也 即,P0S交易信息幀類型為輔助幀,Json格式如表1所描述,POSExchange字段是P0S交易 信息內(nèi)容的開始;
[0083] 步驟208、P0S幀封裝完成后,插入NVR業(yè)務(wù)層實(shí)時(shí)碼流通道,強(qiáng)制插入到它所聯(lián)動(dòng) 的視頻通道中;
[0084] 步驟209、P0S幀封裝完成后,附帶上通道信息插入數(shù)據(jù)庫(kù)中,供錄像檢索使用。
[0085]上述流程實(shí)施完成后,步驟208后即可實(shí)施步驟103中的顯示和/或存儲(chǔ)視頻文 件及交易幀,而步驟209后即可供視頻檢索做準(zhǔn)備。
[0086] 下面對(duì)步驟208后、步驟103中顯示視頻文件及交易幀的實(shí)施進(jìn)行說明。實(shí)施中, 顯示視頻文件及交易幀,可以包括:
[0087] 將交易幀放入緩沖隊(duì)列;
[0088] 在確定當(dāng)前通道有視頻碼流后,將交易幀插入任意視頻幀的尾部后疊加顯示在視 頻上。
[0089] 實(shí)施中,還可以進(jìn)一步包括:
[0090] 當(dāng)確定在設(shè)定時(shí)間內(nèi)當(dāng)前通道無視頻碼流時(shí),丟棄交易幀。
[0091] 下面以實(shí)例進(jìn)行說明,說明過程中,為便于理解多路錄像的實(shí)施,是以多路錄像獲 得多個(gè)視頻文件的實(shí)施來進(jìn)行說明的,則具體實(shí)施過程可以如下:
[0092] 圖3為P0S視頻幀分發(fā)流程示意圖,P0S幀插幀過程如圖所示,將P0S幀插入到視 頻通道實(shí)時(shí)碼流中。NVR設(shè)備啟動(dòng)后,NVR業(yè)務(wù)層向P0S組件注冊(cè)回調(diào)函數(shù),回調(diào)函數(shù)包含 P0S幀數(shù)據(jù)指針和NVR視頻通道號(hào)兩個(gè)參數(shù),組件內(nèi)部將封裝的P0S幀按通道回調(diào)至NVR業(yè) 務(wù)層的ICapture,將其放入緩沖隊(duì)列中,一個(gè)視頻通道對(duì)應(yīng)一個(gè)ICapture對(duì)象,ICapture 判斷當(dāng)前通道是否有視頻碼流,如果有則插入任意視頻幀的尾部,如果5秒鐘或者隊(duì)列的 size大小超過5個(gè)仍接收不到視頻碼流則丟棄該P(yáng)0S幀。
[0093] 由上述實(shí)施,已經(jīng)可以獲得視頻文件及交易幀,其中,所述交易幀是作為視頻文件 中的幀保存在視頻文件中的。下面對(duì)對(duì)該視頻文件的解碼等處理過程進(jìn)行說明,例中,交易 幀是作為視頻文件中的輔助幀保存在該視頻文件中的,仍然以P0S機(jī)及NVR進(jìn)行實(shí)施的實(shí) 例來進(jìn)行說明。
[0094] 特定的解碼器解碼含有P0S幀的錄像文件時(shí),先讀取視頻幀的頭部信息,若當(dāng)前 幀類型為輔助幀類型,則調(diào)用P0S組件解析幀內(nèi)容,將幀內(nèi)容轉(zhuǎn)換成解碼器可以識(shí)別的字 符串點(diǎn)陣,疊加到視頻上,P0S幀內(nèi)容格式如下表所示。
[0095] 表1P0S交易信息格式表
[0096]
[0097] 考慮到解碼器負(fù)責(zé)將P0S交易信息疊加并顯示到視頻上以后,但卻沒有通知解碼 器何時(shí)擦除疊加信息,因此,實(shí)施中還可以進(jìn)一步包括:
[0098] 在同一通道下,按設(shè)定時(shí)間時(shí)將內(nèi)容為空的交易幀插入任意視頻幀的尾部。
[0099] 具體實(shí)施中,可以通過將表1中的Data賦空值的方式通知解碼器擦除最近一次 P0S疊加。
[0100] 組件內(nèi)部用定時(shí)器控制同一視頻通道相鄰兩條P0S幀消息最短時(shí)間1秒最長(zhǎng)5 秒,如果兩條P0S幀相鄰時(shí)間小于1秒,則等待1秒再發(fā)送,如果5秒之后仍沒有新的P0S 幀,則封裝一個(gè)包含空的交易信息的P0S幀發(fā)送至對(duì)應(yīng)通道。兩種情況下會(huì)擦除P0S信息: 遇到新的POS幀時(shí),擦除舊POS信息,疊加新的POS信息;POS幀內(nèi)容中交易信息為空時(shí)擦 除最近