本發(fā)明涉及視頻監(jiān)控領(lǐng)域,尤其涉及一種錄像同步回放方法及裝置。
背景技術(shù):
錄像回放業(yè)務(wù)作為事后取證的重要手段,一直是視頻監(jiān)控系統(tǒng)的主要功能。同步回放是指同時(shí)對(duì)多路攝像機(jī)的錄像進(jìn)行回放,便于對(duì)比查看。通常情況下同步回放所占用的碼流總帶寬是同步回放的所有攝像機(jī)錄像碼流的總和,例如對(duì)a、b、c、d四個(gè)攝像機(jī)的錄像進(jìn)行同步回放,假設(shè)四個(gè)攝像機(jī)的錄像碼率都是2m,那么四路攝像機(jī)的同步回放占用的總碼率帶寬就是8m。對(duì)于網(wǎng)絡(luò)條件較差的監(jiān)控環(huán)境或者是手機(jī)監(jiān)控客戶端的應(yīng)用來(lái)說(shuō),帶寬不足會(huì)帶來(lái)數(shù)據(jù)丟包、圖像卡頓花屏等一系列問(wèn)題,影響同步回放業(yè)務(wù)的正常使用。并且同步回放的所有攝像機(jī)錄像的同步效果受限于系統(tǒng)cpu性能、網(wǎng)絡(luò)傳輸、回放客戶端處理不同步等因素影響,造成各個(gè)攝像機(jī)的錄像回放時(shí)間不同步問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)傳統(tǒng)同步回放碼率大,對(duì)網(wǎng)絡(luò)環(huán)境要求高、同步回放同步性差的問(wèn)題,本發(fā)明提供一種錄像同步回放方法及裝置,可以有效解決網(wǎng)絡(luò)帶寬不足帶來(lái)的種種問(wèn)題,且可以顯著提高各個(gè)攝像機(jī)的錄像回放同步性。
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種錄像同步回放方法,應(yīng)用于視頻監(jiān)控系統(tǒng)中的后端服務(wù)器,該方法包括:
接收客戶端發(fā)送的錄像同步回放信息,并根據(jù)錄像同步回放信息獲取需 要同步回放的各攝像機(jī)的錄像數(shù)據(jù);
獲取各攝像機(jī)的錄像格式,該錄像格式包括:分辨率、幀率;
根據(jù)各攝像機(jī)對(duì)應(yīng)錄像的幀率來(lái)計(jì)算各攝像機(jī)對(duì)應(yīng)的解碼速度,并根據(jù)解碼速度從獲取的錄像數(shù)據(jù)中提取各攝像機(jī)對(duì)應(yīng)的錄像數(shù)據(jù)進(jìn)行解碼,得到攜帶有時(shí)間信息和幀號(hào)的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)放入第一緩存,該時(shí)間信息單位為秒;
選擇各攝像機(jī)對(duì)應(yīng)錄像幀率中的幀率最大值來(lái)計(jì)算合成速度,根據(jù)合成速度從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),并將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存,若第二緩存中已存在各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)時(shí),則先刪除第二緩存中已存在的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù);
從第二緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)后,判斷各攝像機(jī)對(duì)應(yīng)錄像的分辨率是否完全相同,若完全相同,則直接將提取的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像;若不完全相同,則先將獲取的各幀圖像數(shù)據(jù)按照預(yù)設(shè)規(guī)則進(jìn)行縮放處理,使得各幀圖像數(shù)據(jù)尺寸相同,再將縮放后的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像;
將拼接圖像進(jìn)行編碼處理得到拼接錄像數(shù)據(jù);
發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于對(duì)所有需要同步回放的各攝像機(jī)進(jìn)行錄像同步回放。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種錄像同步回放裝置,應(yīng)用于視頻監(jiān)控系統(tǒng)中的后端服務(wù)器,該裝置包括:
信息處理模塊,用于接收客戶端發(fā)送的錄像同步回放信息;
錄像獲取模塊,用于根據(jù)錄像同步回放信息獲取需要同步回放的各攝像機(jī)的錄像數(shù)據(jù);
格式獲取模塊,用于獲取各攝像機(jī)的錄像格式,該錄像格式包括:分辨率、幀率;
錄像解碼模塊,用于根據(jù)各攝像機(jī)對(duì)應(yīng)錄像的幀率來(lái)計(jì)算各攝像機(jī)對(duì)應(yīng)的解碼速度,并根據(jù)解碼速度從獲取的錄像數(shù)據(jù)中提取各攝像機(jī)對(duì)應(yīng)的錄像 數(shù)據(jù)進(jìn)行解碼,得到攜帶有時(shí)間信息和幀號(hào)的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)放入第一緩存,該時(shí)間信息單位為秒;
圖像提取模塊,用于選擇各攝像機(jī)對(duì)應(yīng)錄像幀率中的幀率最大值來(lái)計(jì)算合成速度,根據(jù)合成速度從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),并將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存,若第二緩存中已存在各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)時(shí),則先刪除第二緩存中已存在的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù);
錄像合成模塊,用于從第二緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)后,判斷各攝像機(jī)對(duì)應(yīng)錄像的分辨率是否完全相同,若完全相同,則直接將提取的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像;若不完全相同,則先將獲取的各幀圖像數(shù)據(jù)按照預(yù)設(shè)規(guī)則進(jìn)行縮放處理,使得各幀圖像數(shù)據(jù)尺寸相同,再將縮放后的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像;
錄像編碼模塊,用于將拼接圖像進(jìn)行編碼處理得到拼接錄像數(shù)據(jù);
錄像發(fā)送模塊,用于發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于對(duì)所有需要同步回放的各攝像機(jī)進(jìn)行錄像同步回放。
本發(fā)明可以根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境情況,對(duì)多路攝像機(jī)的同步回放錄像的碼率值進(jìn)行任意設(shè)置,有效的解決了網(wǎng)絡(luò)帶寬不足帶來(lái)的數(shù)據(jù)丟包、圖像卡頓花屏等一系列問(wèn)題,可以適用于各種網(wǎng)絡(luò)環(huán)境。本發(fā)明通過(guò)將同步過(guò)程放于后端服務(wù)器處理得到拼接錄像數(shù)據(jù),再拼接錄像數(shù)據(jù)發(fā)送給對(duì)應(yīng)客戶端用于錄像同步回放,減少了網(wǎng)絡(luò)傳輸、客戶端解碼性能等因素導(dǎo)致的錄像不同步問(wèn)題,極大地提高了錄像回放同步性,達(dá)到“真正”意義上的同步回放。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例方法流程圖;
圖2是本發(fā)明實(shí)施例的拼接圖像示意圖;
圖3是本發(fā)明實(shí)施例裝置邏輯結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。
請(qǐng)參見(jiàn)圖1,圖1為本發(fā)明實(shí)施例提供的一種錄像同步回放方法的流程示意圖,該方法可以應(yīng)用于視頻監(jiān)控系統(tǒng),如應(yīng)用于視頻監(jiān)控系統(tǒng)的后端服務(wù)器中,該視頻監(jiān)控系統(tǒng)還包括客戶端及攝像機(jī)。上述后端服務(wù)器可以為nvr網(wǎng)絡(luò)視頻錄像機(jī),也可以為支持編解碼功能的獨(dú)立服務(wù)器;上述客戶端可以為nvr關(guān)聯(lián)客戶端,也可以為支持同步回放功能的獨(dú)立客戶端。為便于描述,以下以上述方法的執(zhí)行主體為后端服務(wù)器為例進(jìn)行描述。如圖1所示,該方法可以包括以下步驟:
步驟101、接收客戶端發(fā)送的錄像同步回放信息,并根據(jù)錄像同步回放信息獲取需要同步回放的各攝像機(jī)的錄像數(shù)據(jù)。
錄像同步回放信息可以包括所有需要同步回放的攝像機(jī)id、錄像起始時(shí)間及錄像結(jié)束時(shí)間。后端服務(wù)器根據(jù)錄像起始時(shí)間與錄像結(jié)束時(shí)間獲取各攝像機(jī)的錄像數(shù)據(jù)。
本發(fā)明實(shí)施例中,用戶可以在客戶端上選擇用于同步回放的各個(gè)攝像機(jī)及設(shè)定需要同步回放的錄像起止時(shí)間。后端服務(wù)器根據(jù)設(shè)定的錄像起始時(shí)間和錄像結(jié)束時(shí)間檢索各攝像機(jī)存儲(chǔ)在存儲(chǔ)設(shè)備(如自帶硬盤的后端服務(wù)器、獨(dú)立的存儲(chǔ)服務(wù)器等)上的錄像數(shù)據(jù),并獲取各攝像機(jī)對(duì)應(yīng)的檢索結(jié)果中預(yù)設(shè)數(shù)量的錄像數(shù)據(jù)放入緩存,比如每次獲取各攝像機(jī)對(duì)應(yīng)的檢索結(jié)果中前5秒(最接近錄像起始時(shí)間的為“前”,最接近錄像結(jié)束時(shí)間的為“后”)的錄像數(shù)據(jù)分別放入對(duì)應(yīng)的緩存中,具體可以根據(jù)實(shí)際應(yīng)用設(shè)置緩存方式及緩存大小,比如也可以將各攝像機(jī)對(duì)應(yīng)的檢索結(jié)果中前1秒的錄像數(shù)據(jù)放入同一個(gè)緩存中,若后端服務(wù)器的緩存空間足夠大時(shí),也可以獲取各攝像機(jī)對(duì)應(yīng)的檢索結(jié)果中的全部錄像放入緩存,本發(fā)明對(duì)此不進(jìn)行限定。
步驟102、獲取各攝像機(jī)的錄像格式,該錄像格式包括:分辨率、幀率。
后端服務(wù)器統(tǒng)一管理各攝像機(jī),通常會(huì)預(yù)先配置好各攝像機(jī)的錄像格式,包括分辨率、幀率、碼率、存儲(chǔ)時(shí)長(zhǎng)等參數(shù),故可以從后端服務(wù)器的配置文件中獲取各攝像機(jī)的錄像格式。后端服務(wù)器也可以預(yù)解碼各攝像機(jī)對(duì)應(yīng)錄像數(shù)據(jù)中的一秒或數(shù)秒錄像,以獲取各攝像機(jī)對(duì)應(yīng)的錄像格式,本發(fā)明對(duì)此不進(jìn)行限定。
步驟103、根據(jù)各攝像機(jī)對(duì)應(yīng)錄像的幀率來(lái)計(jì)算各攝像機(jī)對(duì)應(yīng)的解碼速度,并根據(jù)解碼速度從獲取的錄像數(shù)據(jù)中提取各攝像機(jī)對(duì)應(yīng)的錄像數(shù)據(jù)進(jìn)行解碼,得到攜帶有時(shí)間信息和幀號(hào)的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)放入第一緩存,所述時(shí)間信息單位為秒。
本發(fā)明實(shí)施例中,后端服務(wù)器根據(jù)各攝像機(jī)對(duì)應(yīng)錄像的幀率來(lái)計(jì)算各攝像機(jī)的解碼速度,其中解碼速度=1/幀率。比如攝像機(jī)a對(duì)應(yīng)錄像的幀率為25fps(framespersecond,每秒傳輸幀數(shù)),則對(duì)應(yīng)的解碼速度為40ms/f,即每間隔40ms從獲取的錄像數(shù)據(jù)中提取1幀攝像機(jī)a對(duì)應(yīng)的錄像數(shù)據(jù)進(jìn)行解碼。由于錄像數(shù)據(jù)本身每幀均攜帶時(shí)間信息及幀號(hào),則解碼得到的圖像數(shù)據(jù)也可以攜帶對(duì)應(yīng)的時(shí)間信息及幀號(hào),且該時(shí)間單位為秒。比如攝像機(jī)a的錄像幀率為25fps,以2016-1-18:00:00的錄像數(shù)據(jù)解碼為例,則攝像機(jī)a解碼后的圖像數(shù)據(jù)為攜帶時(shí)間信息2016-1-18:00:00及幀號(hào)1-25的圖像數(shù)據(jù)。將解碼后的圖像數(shù)據(jù)放入第一緩存,該第一緩存并不特指某個(gè)緩存,而是指存放解碼后圖像數(shù)據(jù)的緩存,該第一緩存可以是一個(gè)緩存,也可以是多個(gè)緩存,即各攝像機(jī)解碼后的圖像數(shù)據(jù)可以放入同一個(gè)緩存,也可以分別放入對(duì)應(yīng)的緩存,本發(fā)明不進(jìn)行限定。
步驟104、選擇各攝像機(jī)對(duì)應(yīng)錄像幀率中的幀率最大值來(lái)計(jì)算合成速度,根據(jù)合成速度從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),并將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存,若第二緩存中已存在各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)時(shí),則先刪除第二緩存中已存在的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)。
將各攝像機(jī)對(duì)應(yīng)錄像的幀率按大小進(jìn)行排序,選出幀率最大值來(lái)計(jì)算合 成速度,其中合成速度=1/幀率最大值。由于各攝像機(jī)的錄像幀率小于或等于幀率最大值,故各攝像機(jī)對(duì)應(yīng)的解碼速度比合成速度慢或等同。故當(dāng)合成速度快于攝像機(jī)對(duì)應(yīng)的解碼速度時(shí),不一定每次都可從第一緩存中取到該攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),即存在取不到該攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)的情況。故從第一緩存中提取的圖像數(shù)據(jù)幀數(shù)可能小于需要同步回放的攝像機(jī)的個(gè)數(shù)。將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存前,先判斷第二緩存中是否已存在各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)時(shí),若已存在,則先刪除第二緩存中已存在的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),再將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存;若不存在,則直接將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存。即將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存時(shí)有個(gè)數(shù)據(jù)刷新的過(guò)程,以保證后續(xù)用于合成處理的圖像數(shù)據(jù)最新。
本發(fā)明實(shí)施例中,第二緩存并不特指某個(gè)緩存,而是指存放從第一緩存中獲取的各攝像機(jī)對(duì)應(yīng)圖像數(shù)據(jù)的緩存,該第二緩存可以是一個(gè)緩存,也可以是多個(gè)緩存,即從第一緩存中獲取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)可以放入同一個(gè)緩存,也可以分別放入對(duì)應(yīng)的緩存,本發(fā)明不進(jìn)行限定。
步驟105、從第二緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)后,判斷各攝像機(jī)對(duì)應(yīng)錄像的分辨率是否完全相同,若完全相同,則直接將提取的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像;若不完全相同,則先將獲取的各幀圖像數(shù)據(jù)按照預(yù)設(shè)規(guī)則進(jìn)行縮放處理,使得各幀圖像數(shù)據(jù)尺寸相同,再將縮放后的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像。
用于同步回放的各攝像機(jī)對(duì)應(yīng)的錄像分辨率不一定完全相同,即各攝像機(jī)對(duì)應(yīng)的各幀圖像尺寸不一定完全相同。故當(dāng)同步回放的各攝像機(jī)對(duì)應(yīng)的錄像分辨率不完全相同時(shí),需要先將各攝像機(jī)對(duì)應(yīng)的各幀圖像按預(yù)設(shè)規(guī)則進(jìn)行縮放處理,以使得縮放后的各攝像機(jī)對(duì)應(yīng)的各幀圖像的尺寸相同。預(yù)設(shè)規(guī)則指的是將各攝像機(jī)對(duì)應(yīng)的各幀圖像縮放成相同尺寸,比如可以統(tǒng)一縮放成d1(720*576)大小,也可以統(tǒng)一縮放成其他尺寸,本發(fā)明在此不進(jìn)行限定。
為使上述解碼、合成過(guò)程更加清楚明了,在此舉一個(gè)具體例子來(lái)說(shuō)明。
實(shí)施例一、比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,設(shè)定的錄像起止時(shí)間為2016-1-18:00-10:00,以2016-1-18:00:00的錄像數(shù)據(jù)解碼、合成為例。假設(shè)攝像機(jī)a的錄像分辨率為720p(1280*720像素)、幀率為25fps,攝像機(jī)b的錄像分辨率為720p(1280*720)、幀率為20fps,攝像機(jī)c的錄像分辨率為1080p(1920*1080)、幀率為25fps,攝像機(jī)d的錄像分辨率為cif(352*288)、幀率為5fps。根據(jù)各攝像機(jī)對(duì)應(yīng)的錄像幀率得到各攝像機(jī)對(duì)應(yīng)的解碼速度,攝像機(jī)a、b、c、d的解碼速度分別為40ms/f,50ms/f,40ms/f,200ms/f。各攝像機(jī)對(duì)應(yīng)的錄像幀率中幀率最大值為25fps,則合成速度為40ms/f。
后端服務(wù)器按各攝像機(jī)對(duì)應(yīng)的解碼速度提取各攝像機(jī)對(duì)應(yīng)的錄像數(shù)據(jù),初始時(shí)先獲得各攝像機(jī)在2016-1-18:00:00幀號(hào)1的錄像數(shù)據(jù)進(jìn)行解碼得到各攝像機(jī)對(duì)應(yīng)的2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù),并放入第一緩存中。后端服務(wù)器按合成速度從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),提取到各攝像機(jī)對(duì)應(yīng)的2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù)。由于各攝像機(jī)的錄像分辨率不完全相同,需要對(duì)各攝像機(jī)對(duì)應(yīng)的2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù)先進(jìn)行縮放處理,假設(shè)統(tǒng)一縮放為d1,即攝像機(jī)a、b對(duì)應(yīng)的圖像數(shù)據(jù)均從720p縮小至d1,攝像機(jī)c對(duì)應(yīng)的圖像數(shù)據(jù)從1080p縮小至d1,攝像機(jī)d對(duì)應(yīng)的圖像數(shù)據(jù)從cif放大至d1,經(jīng)過(guò)縮放處理后各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)尺寸均為d1。將縮放后的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到2016-1-18:00:00幀號(hào)1的拼接圖像。
經(jīng)過(guò)40ms時(shí),后端服務(wù)器提取攝像機(jī)a、c在2016-1-18:00:00幀號(hào)2的錄像數(shù)據(jù)進(jìn)行解碼得到對(duì)應(yīng)的2016-1-18:00:00幀號(hào)2的圖像數(shù)據(jù),并放入第一緩存中。后端服務(wù)器按合成速度從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),此時(shí)僅提取到攝像機(jī)a、c在2016-1-18:00:00幀號(hào)2的圖像數(shù)據(jù)。先刪除第二緩存中的攝像機(jī)a、c在2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù),再放入提取的攝像機(jī)a、c在2016-1-18:00:00幀號(hào)2的圖像數(shù)據(jù)。再?gòu)牡诙彺嬷刑崛「鲾z像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)進(jìn)行縮放處理,將縮放后的攝像機(jī)a 在2016-1-18:00:00幀號(hào)2的圖像數(shù)據(jù)、攝像機(jī)b在2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù)、攝像機(jī)c在2016-1-18:00:00幀號(hào)2的圖像數(shù)據(jù)、攝像機(jī)d在2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù)進(jìn)行合成處理得到2016-1-18:00:00幀號(hào)2的拼接圖像。
再經(jīng)過(guò)10ms時(shí),后端服務(wù)器提取攝像機(jī)b在2016-1-18:00:00幀號(hào)2的錄像數(shù)據(jù)進(jìn)行解碼得到對(duì)應(yīng)的2016-1-18:00:00幀號(hào)2的圖像數(shù)據(jù),并放入第一緩存中。再經(jīng)過(guò)30ms時(shí),后端服務(wù)器提取攝像機(jī)a、c在2016-1-18:00:00幀號(hào)3的錄像數(shù)據(jù)進(jìn)行解碼得到對(duì)應(yīng)的2016-1-18:00:00幀號(hào)3的圖像數(shù)據(jù),并放入第一緩存中。從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)替換第二緩存中已存在的圖像數(shù)據(jù),并對(duì)各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)進(jìn)行縮放處理,然后將縮放后的攝像機(jī)a在2016-1-18:00:00幀號(hào)3的圖像數(shù)據(jù)、攝像機(jī)b在2016-1-18:00:00幀號(hào)2的圖像數(shù)據(jù)、攝像機(jī)c在2016-1-18:00:00幀號(hào)3的圖像數(shù)據(jù)、攝像機(jī)d在2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù)進(jìn)行合成處理得到2016-1-18:00:00幀號(hào)3的拼接圖像。
以此類推,得到2016-1-18:00:00幀號(hào)1-25的拼接圖像。
作為一種可選的實(shí)施方式,后端服務(wù)器在對(duì)錄像數(shù)據(jù)進(jìn)行合成前,還可以選擇合成模式,將從第二緩存中提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)或經(jīng)過(guò)縮放處理的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),根據(jù)選擇的合成模式按照預(yù)設(shè)順序進(jìn)行合成處理,得到拼接圖像序列。合成模式可以由后端服務(wù)器根據(jù)同步回放的攝像機(jī)個(gè)數(shù)選擇,也可以由用戶在客戶端上自定義設(shè)置。上述預(yù)設(shè)順序可以為:根據(jù)攝像機(jī)id進(jìn)行排列,由左到右、先上后下的順序,也可以為根據(jù)攝像機(jī)id進(jìn)行排列,先上后下、由左到右的順序,本發(fā)明在此不進(jìn)行限定。
優(yōu)選地,后端服務(wù)器根據(jù)同步回放的攝像機(jī)個(gè)數(shù)選擇合成模式,當(dāng)攝像機(jī)個(gè)數(shù)小于或等于模式n+1最大支持的攝像機(jī)個(gè)數(shù)且大于模式n最大支持的攝像機(jī)個(gè)數(shù)時(shí),合成模式選擇模式n+1,其中模式n最大支持的攝像機(jī)個(gè)數(shù)為n的平方,模式n為n行*n列模式,n為正整數(shù)。即合成模式包括模式一最大支持1個(gè)攝像機(jī),為1行*1列模式、模式二最大支持4個(gè)攝像機(jī),為 2行*2列模式、模式三最大支持9個(gè)攝像機(jī),為3行*3列模式,等等。
以實(shí)施例一作為例子進(jìn)行說(shuō)明,選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,即選擇用于同步回放的攝像機(jī)個(gè)數(shù)為4,故合成模式選擇模式二,即2行*2列模式,比如根據(jù)攝像機(jī)id進(jìn)行排列,由左到右、先上后下的順序進(jìn)行合成,得到如圖2所示的拼接圖像。
可選地,后端服務(wù)器根據(jù)同步回放的攝像機(jī)個(gè)數(shù)選擇合成模式,合成模式還可以為i行*j列模式,其中j可以為預(yù)設(shè)固定值,i根據(jù)同步回放的攝像機(jī)個(gè)數(shù)調(diào)整,假設(shè)同步回放的攝像機(jī)個(gè)數(shù)為m,當(dāng)m小于等于j時(shí),合成模式為1行*m列;當(dāng)m大于j且不為j的整倍數(shù)時(shí),合成模式為i行*j列,其中i=int(m/j)+1,int()為取整函數(shù);當(dāng)m大于j且為j的整倍數(shù)時(shí),合成模式為i行*j列,其中i=int(m/j)。比如j為5,同步回放的攝像機(jī)個(gè)數(shù)m為9,則合成模式為2*5。
步驟106、將拼接圖像進(jìn)行編碼處理得到拼接錄像數(shù)據(jù)。
后端服務(wù)器按照編碼規(guī)則對(duì)拼接圖像序列進(jìn)行編碼處理得到拼接錄像數(shù)據(jù)。編碼規(guī)則可以是后端服務(wù)器根據(jù)客戶端類別預(yù)先設(shè)置,比如pc客戶端或pad客戶端對(duì)應(yīng)編碼規(guī)則一,手機(jī)客戶端對(duì)應(yīng)編碼規(guī)則二,也可以是客戶端根據(jù)實(shí)際應(yīng)用環(huán)境設(shè)置同步回放編碼參數(shù)。
優(yōu)選地,上述錄像同步回放信息還可以包括同步回放編碼參數(shù)。用戶可以在客戶端上根據(jù)實(shí)際應(yīng)用環(huán)境設(shè)置同步回放編碼參數(shù),包括但不限于:分辨率、碼率、幀率、gop(groupofpictures,畫面組)大小、編碼格式。
以實(shí)施例一為例,將經(jīng)過(guò)縮放的攝像機(jī)a、b、c、d對(duì)應(yīng)的圖像數(shù)據(jù)進(jìn)行合成處理得到的拼接圖像分辨率應(yīng)該為1440*1152。假設(shè)設(shè)置的同步回放編碼參數(shù)為:分辨率d1、碼率2mbit/s、幀率25fps、gop大小25、編碼格式h.264,則將拼接圖像序列進(jìn)行編碼得到h.264格式、d1分辨率,2mbit/s碼率,幀率25fps,gop25的拼接錄像數(shù)據(jù)。
步驟107、發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于對(duì)所有需要同步回放的各攝像機(jī)進(jìn)行錄像同步回放。
客戶端將接收到的經(jīng)過(guò)后端服務(wù)器預(yù)先同步降帶寬處理,即依次進(jìn)行解碼、合成、編碼處理得到的拼接錄像數(shù)據(jù),用于播放,用戶可在客戶端上的一個(gè)播放窗口上查看各攝像機(jī)的錄像同步回放。
由圖1所示的錄像同步回放方法流程圖可看出,本發(fā)明通過(guò)將多路攝像機(jī)的同步回放錄像進(jìn)行解碼、合成、編碼處理,統(tǒng)一為完整的一股拼接錄像,即將同步過(guò)程由后端服務(wù)器完成,極大的提高了錄像回放的同步性,且本發(fā)明可以根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境情況,對(duì)拼接錄像的碼率值進(jìn)行任意設(shè)置,有效的解決了網(wǎng)絡(luò)帶寬不足帶來(lái)的數(shù)據(jù)丟包、圖像卡頓花屏等一系列問(wèn)題,可以適用于各種網(wǎng)絡(luò)環(huán)境。
實(shí)際應(yīng)用中,各攝像機(jī)的存儲(chǔ)計(jì)劃不一定完全相同,即存儲(chǔ)在存儲(chǔ)設(shè)備上的錄像數(shù)據(jù)所覆蓋的時(shí)間范圍不一定相同,即選擇用于同步回放的各個(gè)攝像機(jī)中可能存在一個(gè)或多個(gè)攝像機(jī)未包含設(shè)定的錄像起止時(shí)間段所覆蓋的全部錄像數(shù)據(jù)。
作為一種可選的實(shí)施方式,該錄像同步回放方法還包括:
步驟104’、后端服務(wù)器從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)后,先判斷提取的各幀圖像數(shù)據(jù)對(duì)應(yīng)的時(shí)間信息是否完全相同,若不完全相同,則將各幀圖像數(shù)據(jù)對(duì)應(yīng)的時(shí)間信息按大小進(jìn)行排序,僅提取時(shí)間信息最小的圖像數(shù)據(jù)放入第二緩存,將其他圖像數(shù)據(jù)放回第一緩存;若完全相同,則將提取的各幀圖像數(shù)據(jù)放入第二緩存。
第一緩存中各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)攜帶時(shí)間信息和幀號(hào),其中時(shí)間信息單位為秒。通常攝像機(jī)的錄像幀率至少為1fps,即攝像機(jī)的錄像每秒至少有1幀,故本發(fā)明將時(shí)間信息的精度限定在秒級(jí)。當(dāng)從第一緩存中提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)所對(duì)應(yīng)的時(shí)間信息不相同時(shí),說(shuō)明某個(gè)或某多個(gè)攝像機(jī)在一定時(shí)間點(diǎn)沒(méi)有對(duì)應(yīng)的錄像。為保持拼接錄像的完整性,故以在同步回放設(shè)定的錄像起止時(shí)間段中錄像覆蓋最全的攝像機(jī)為基準(zhǔn),進(jìn)行合成拼接。當(dāng)從第一緩存中提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)所對(duì)應(yīng)的時(shí)間信息不相同時(shí),將各幀圖像數(shù)據(jù)對(duì)應(yīng)的時(shí)間信息按大小(最接近錄像起始時(shí)間的為“小”,最 接近錄像結(jié)束時(shí)間的為“大”)進(jìn)行排序,僅提取時(shí)間信息最小的圖像數(shù)據(jù)放入第二緩存,將其他圖像數(shù)據(jù)放回第一緩存。后續(xù)處理流程同步驟104-107所示的方法。
本發(fā)明實(shí)施例中,后端從第一緩存中提取某攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)時(shí),即從第一緩存中刪除該攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)。當(dāng)?shù)谝痪彺嬷写娣庞心硵z像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)未被提取時(shí),不再對(duì)該攝像機(jī)后續(xù)的錄像數(shù)據(jù)進(jìn)行解碼處理,直到第一緩存中該攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)被提取,即知道第一緩存中不存在該攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)時(shí),才對(duì)攝像機(jī)后續(xù)的錄像數(shù)據(jù)進(jìn)行解碼處理。
為使上述步驟104’所示的過(guò)程更加清楚明了,在此舉一個(gè)具體例子來(lái)說(shuō)明。
實(shí)施例二、比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,設(shè)定的錄像起止時(shí)間為2016-1-18:00-10:00,假設(shè)各攝像機(jī)的錄像分辨率及幀率均相同,幀率均為25fps,假設(shè)當(dāng)前已完成2016-1-18:30:00的拼接圖像,即第二緩存中存有各攝像機(jī)2016-1-18:30:00幀號(hào)25對(duì)應(yīng)的圖像數(shù)據(jù)。假設(shè)下一次后端服務(wù)器從第一緩存中提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)分別為攝像機(jī)a、c在2016-1-18:30:01幀號(hào)1的圖像數(shù)據(jù)、攝像機(jī)b在2016-1-19:00:00幀號(hào)1的圖像數(shù)據(jù)、攝像機(jī)d在2016-1-18:35:00幀號(hào)1的圖像數(shù)據(jù)。即此次從第一緩存中提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)所對(duì)應(yīng)的時(shí)間信息不相同,故僅提取時(shí)間信息最小的攝像機(jī)a、c在2016-1-18:30:01幀號(hào)1的圖像數(shù)據(jù)放入第二緩存中,將攝像機(jī)b在2016-1-19:00:00幀號(hào)1的圖像數(shù)據(jù)、攝像機(jī)d在2016-1-18:35:00幀號(hào)1的圖像數(shù)據(jù)放回第一緩存中。故按步驟104-105所示方法,此次將攝像機(jī)a、c在2016-1-18:30:01幀號(hào)1的圖像數(shù)據(jù)、攝像機(jī)b、d在2016-1-18:30:00幀號(hào)25的圖像數(shù)據(jù)進(jìn)行合成處理,得到2016-1-18:30:01幀號(hào)1的拼接圖像。以此類推,故在2016-1-18:30:01至2016-1-18:34:59時(shí)間段對(duì)應(yīng)的拼接圖像中攝像機(jī)d的位置上的圖像保持為其在2016-1-18:30:00幀號(hào)25的圖像數(shù)據(jù),在2016-1-18:30:01至2016-1-18:59:59時(shí)間段對(duì)應(yīng)的拼接圖像中攝像機(jī)b的位置上的圖像保持為其在2016-1-18:30:00幀 號(hào)25的圖像數(shù)據(jù)。
作為一種可選的實(shí)施方式,該錄像同步回放方法還包括:
步驟105’、后端服務(wù)器將從第二緩存中提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)進(jìn)行合成處理前,還判斷提取的圖像數(shù)據(jù)幀數(shù)是否小于需要同步回放的各攝像機(jī)的個(gè)數(shù),若小于,則進(jìn)一步確定未提取到圖像數(shù)據(jù)的一個(gè)或多個(gè)攝像機(jī),將合成的拼接圖像中該個(gè)或該多個(gè)攝像機(jī)對(duì)應(yīng)位置部分的圖像以純色圖像填充;若不小于,則將提取的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像。
當(dāng)選擇用于同步回放的各個(gè)攝像機(jī)中一個(gè)或多個(gè)攝像機(jī)未包含同步回放設(shè)定的錄像起始時(shí)間點(diǎn)所覆蓋的錄像數(shù)據(jù)時(shí),即該個(gè)或該多個(gè)攝像機(jī)對(duì)應(yīng)檢索結(jié)果中的錄像起始時(shí)間與設(shè)定的錄像起始時(shí)間不一致,且大于設(shè)定的錄像起始時(shí)間(最接近錄像起始時(shí)間的為“小”,最接近錄像結(jié)束時(shí)間的為“大”)。在設(shè)定的錄像起始時(shí)間與該個(gè)或該多個(gè)攝像機(jī)對(duì)應(yīng)檢索結(jié)果中的錄像起始時(shí)間之間合成的拼接圖像序列中該個(gè)或該多個(gè)攝像機(jī)對(duì)應(yīng)位置部分的圖像可以以純色圖像填充,比如純黑色圖像。
為使上述步驟105’所示的過(guò)程更加清楚明了,現(xiàn)舉一個(gè)具體例子進(jìn)行說(shuō)明。
實(shí)施例三、比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,設(shè)定的錄像起止時(shí)間為2016-1-18:00:00-10:00:00,檢索發(fā)現(xiàn)攝像機(jī)a、b、c包含2016-1-18:00:00-10:00:00時(shí)間段的錄像數(shù)據(jù),但攝像機(jī)d僅包含2016-1-18:30:00-10:00:00時(shí)間段的錄像數(shù)據(jù)。假設(shè)各攝像機(jī)的錄像幀率均為25fps。初始時(shí)先獲得攝像機(jī)a、b、c在2016-1-18:00:00幀號(hào)1的錄像數(shù)據(jù)、攝像機(jī)d在2016-1-18:30:00幀號(hào)1的錄像數(shù)據(jù)分別進(jìn)行解碼得到各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),并放入第一緩存中?;诓襟E104’,由于從第一緩存中提取的攝像機(jī)d對(duì)應(yīng)圖像數(shù)據(jù)的時(shí)間信息大于其他攝像機(jī)對(duì)應(yīng)圖像數(shù)據(jù)的時(shí)間信息,故僅提取了攝像機(jī)a、b、c在2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù)放入第二緩存。由于是初次合成,故第二緩存中僅存在攝像機(jī)a、b、c對(duì)應(yīng)的圖像數(shù)據(jù),不存在攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),即從第二緩存中提取的圖像數(shù)據(jù)幀數(shù) (為3)小于需要同步回放的各攝像機(jī)的個(gè)數(shù)(為4),故進(jìn)一步確定未提取到圖像數(shù)據(jù)的攝像機(jī)為攝像機(jī)d,將合成的拼接圖像中攝像機(jī)d對(duì)應(yīng)位置部分的圖像以純色圖像填充。以此類推,在設(shè)定的錄像開(kāi)始時(shí)間2016-1-18:00與攝像機(jī)d對(duì)應(yīng)檢索結(jié)果中的錄像起始時(shí)間2016-1-18:30之間合成的拼接圖像序列中,攝像機(jī)d對(duì)應(yīng)位置部分的圖像均以純色圖像填充,比如純黑色圖像。
當(dāng)然初次提取時(shí)可以不基于步驟104’,比如初次提取時(shí)將攝像機(jī)a、b、c在2016-1-18:00:00幀號(hào)1的圖像數(shù)據(jù)、攝像機(jī)d在2016-1-18:30:00幀號(hào)1的圖像數(shù)據(jù)均提取出來(lái)并放入第二緩存;在后續(xù)的提取時(shí)再基于步驟104’,即僅提取攝像機(jī)a、b、c在2016-1-18:00:00幀號(hào)2至2016-1-18:29:59幀號(hào)25的圖像數(shù)據(jù)。在設(shè)定的錄像開(kāi)始時(shí)間2016-1-18:00:00與攝像機(jī)d對(duì)應(yīng)檢索結(jié)果中的錄像起始時(shí)間2016-1-18:30:00之間合成的拼接圖像序列中,攝像機(jī)d對(duì)應(yīng)位置部分的圖像也可以為攝像機(jī)d對(duì)應(yīng)檢索結(jié)果中的錄像起始時(shí)間2016-1-18:30:00幀號(hào)1對(duì)應(yīng)的圖像數(shù)據(jù)。本發(fā)明不進(jìn)行限定。
作為可選的一種實(shí)施方式,在客戶端播放該拼接錄像數(shù)據(jù)的過(guò)程中,還可以進(jìn)行包括但不限于拖動(dòng)回放進(jìn)度條、暫?;胤拧⒗^續(xù)回放、停止回放、更換正在回放的攝像機(jī)、停止同步回放中部分?jǐn)z像機(jī)的回放業(yè)務(wù)等回放控制動(dòng)作。
可選地,當(dāng)客戶端在錄像同步回放過(guò)程中,后端服務(wù)器接收客戶端發(fā)送的同步回放控制信息,該同步回放控制信息包括但不限于:跳轉(zhuǎn)信息、暫停信息、繼續(xù)播放信息、結(jié)束信息。
當(dāng)同步回放控制信息為跳轉(zhuǎn)信息時(shí),根據(jù)該跳轉(zhuǎn)信息攜帶的錄像跳轉(zhuǎn)起始時(shí)間和錄像結(jié)束時(shí)間獲取各攝像機(jī)的錄像數(shù)據(jù)。比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,設(shè)定的錄像起止時(shí)間為2016-1-18:00-10:00,假設(shè)當(dāng)前正在回放的錄像時(shí)間為2016-1-18:45,此時(shí)用戶在客戶端上拖動(dòng)回放進(jìn)度條到2016-1-19:10,即錄像跳轉(zhuǎn)起始時(shí)間和錄像結(jié)束時(shí)間分別為2016-1-19:10、 2016-1-110:00。后端服務(wù)器根據(jù)該跳轉(zhuǎn)信息,清空緩存中所有已獲取的錄像數(shù)據(jù),檢索并獲取各攝像機(jī)在2016-1-19:10-10:00間存儲(chǔ)在存儲(chǔ)設(shè)備上的錄像數(shù)據(jù)。然后將獲取的各攝像機(jī)對(duì)應(yīng)的錄像數(shù)據(jù)依次進(jìn)行解碼、合成、編碼處理得到拼接錄像數(shù)據(jù),并發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于錄像同步回放。
當(dāng)同步回放控制信息為暫停信息時(shí),暫停獲取各攝像機(jī)的錄像數(shù)據(jù),當(dāng)接收到繼續(xù)播放信息時(shí),繼續(xù)獲取各攝像機(jī)的錄像數(shù)據(jù)。比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,設(shè)定的錄像起止時(shí)間為2016-1-18:00-10:00,假設(shè)當(dāng)前正在回放的錄像時(shí)間為2016-1-18:45,此時(shí)用戶在客戶端上點(diǎn)擊暫?;胤虐粹o,后端服務(wù)器根據(jù)暫停信息暫停獲取各攝像機(jī)的錄像數(shù)據(jù),且不再發(fā)送拼接錄像數(shù)據(jù)給客戶端,即客戶端上停留顯示2016-1-18:45的同步回放畫面;直到用戶在客戶端上點(diǎn)擊繼續(xù)回放按鈕后,后端服務(wù)器才恢復(fù)繼續(xù)獲取各攝像機(jī)的錄像數(shù)據(jù),及恢復(fù)發(fā)送錄像數(shù)據(jù)給客戶端。
當(dāng)同步回放控制信息為結(jié)束信息時(shí),停止獲取各攝像機(jī)的錄像數(shù)據(jù),并且清空緩存的各攝像機(jī)的錄像數(shù)據(jù)。比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,設(shè)定的錄像起止時(shí)間為2016-1-18:00-10:00,假設(shè)當(dāng)前正在回放的錄像時(shí)間為2016-1-18:45,此時(shí)用戶在客戶端上點(diǎn)擊停止回放按鈕,后端服務(wù)器根據(jù)結(jié)束信息停止獲取各攝像機(jī)的錄像數(shù)據(jù),并且清空緩存的各攝像機(jī)的錄像數(shù)據(jù),客戶端結(jié)束該同步回放業(yè)務(wù)。
可選地,當(dāng)客戶端在錄像同步回放過(guò)程中,還可以更換正在回放的攝像機(jī)。
當(dāng)客戶端在錄像同步回放過(guò)程中,更換所有同步回放攝像機(jī)中的其中一個(gè)或多個(gè)攝像機(jī)時(shí),后端服務(wù)器接收客戶端發(fā)送的攝像機(jī)更換信息,該攝像機(jī)更換信息包括替換攝像機(jī)id、被替換攝像機(jī)id、當(dāng)前錄像播放時(shí)間、錄像結(jié)束時(shí)間及更新的同步回放順序;根據(jù)攝像機(jī)更換信息,獲取替換攝像機(jī)的錄像數(shù)據(jù)及刪除已緩存的被替換攝像機(jī)的錄像數(shù)據(jù),然后將獲取的各攝像機(jī)對(duì)應(yīng)的錄像數(shù)據(jù)依次進(jìn)行解碼、合成、編碼處理得到拼接錄像數(shù)據(jù),并發(fā) 送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于錄像同步回放。
比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放,設(shè)定的錄像起止時(shí)間為2016-1-18:00-10:00。假設(shè)當(dāng)前正在回放的錄像時(shí)間為2016-1-18:45,此時(shí)用戶在客戶端上將攝像機(jī)d更換為攝像機(jī)e,后端服務(wù)器根據(jù)該攝像機(jī)更換信息,檢索并獲取攝像機(jī)e在2016-1-18:45-10:00之間的錄像數(shù)據(jù),刪除已獲取存放于緩存中的攝像機(jī)d的錄像數(shù)據(jù),再將獲取的攝像機(jī)a、b、c、e的錄像數(shù)據(jù)依次進(jìn)行解碼、合成、編碼處理得到拼接錄像數(shù)據(jù),并發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于錄像同步回放。
可選地,當(dāng)客戶端在錄像同步回放過(guò)程中,還可以停止同步回放中部分?jǐn)z像機(jī)的回放業(yè)務(wù)。
當(dāng)客戶端在錄像同步回放過(guò)程中,停止所有同步回放攝像機(jī)中的其中一個(gè)或多個(gè)攝像機(jī)的回放業(yè)務(wù)時(shí),后端服務(wù)器接收客戶端發(fā)送的部分停止信息,該攝像機(jī)部分停止信息包括停止回放業(yè)務(wù)攝像機(jī)id;根據(jù)部分停止信息,停止獲取停止回放業(yè)務(wù)攝像機(jī)的錄像數(shù)據(jù)并刪除已緩存的停止回放業(yè)務(wù)攝像機(jī)的錄像數(shù)據(jù),將剩余的各攝像機(jī)的錄像數(shù)據(jù)依次進(jìn)行解碼、合成、編碼處理得到拼接錄像數(shù)據(jù),并發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于錄像同步回放。
比如選擇攝像機(jī)a、b、c、d進(jìn)行同步回放。假設(shè)回放過(guò)程中,用戶在客戶端上停止攝像機(jī)b的回放業(yè)務(wù),后端服務(wù)器根據(jù)該部分停止信息,停止獲取攝像機(jī)b的錄像數(shù)據(jù)并刪除已獲取存放于緩存中的攝像機(jī)b的錄像數(shù)據(jù),再將剩余的攝像機(jī)a、c、d的錄像數(shù)據(jù)依次進(jìn)行解碼、合成、編碼處理得到拼接錄像數(shù)據(jù),并發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于錄像同步回放。
在客戶端播放該拼接錄像數(shù)據(jù)的過(guò)程中,可以進(jìn)行包括但不限于拖動(dòng)回放進(jìn)度條、暫?;胤?、繼續(xù)回放、停止回放等回放控制動(dòng)作;可以更換正在回放的攝像機(jī);可以停止同步回放中部分?jǐn)z像機(jī)的回放業(yè)務(wù)。在保證錄像回放同步性的同時(shí),滿足用戶的各種回放操作需求,提升了用戶體驗(yàn)性。
從上述方法實(shí)施例可看出,本發(fā)明可以根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境情況,對(duì)多路攝像機(jī)的同步回放錄像的碼率值進(jìn)行任意設(shè)置,有效的解決了網(wǎng)絡(luò)帶寬不足 帶來(lái)的數(shù)據(jù)丟包、圖像卡頓花屏等一系列問(wèn)題,可以適用于各種網(wǎng)絡(luò)環(huán)境。本發(fā)明通過(guò)將同步過(guò)程放于后端服務(wù)器處理得到拼接錄像數(shù)據(jù),再拼接錄像數(shù)據(jù)發(fā)送給對(duì)應(yīng)客戶端用于錄像同步回放,減少了網(wǎng)絡(luò)傳輸、客戶端解碼性能等因素導(dǎo)致的錄像不同步問(wèn)題,極大地提高了錄像回放同步性,達(dá)到“真正”意義上的同步回放。
請(qǐng)參見(jiàn)圖3,為本發(fā)明實(shí)施例提供的一種錄像同步回放裝置的結(jié)構(gòu)示意圖,其中,該錄像同步回放裝置可以應(yīng)用于上述方法實(shí)施例中的視頻監(jiān)控系統(tǒng),例如,應(yīng)用于視頻監(jiān)控系統(tǒng)的后端服務(wù)器中,該視頻監(jiān)控系統(tǒng)還包括客戶端及攝像機(jī),如圖3所示,該錄像同步回放裝置可以包括:
信息處理模塊11,用于接收客戶端發(fā)送的錄像同步回放信息;
錄像獲取模塊12,用于根據(jù)錄像同步回放信息獲取需要同步回放的各攝像機(jī)的錄像數(shù)據(jù);
格式獲取模塊13,用于獲取各攝像機(jī)的錄像格式,該錄像格式包括:分辨率、幀率;
錄像解碼模塊14,用于根據(jù)各攝像機(jī)對(duì)應(yīng)錄像的幀率來(lái)計(jì)算各攝像機(jī)對(duì)應(yīng)的解碼速度,并根據(jù)解碼速度從獲取的錄像數(shù)據(jù)中提取各攝像機(jī)對(duì)應(yīng)的錄像數(shù)據(jù)進(jìn)行解碼,得到攜帶有時(shí)間信息和幀號(hào)的圖像數(shù)據(jù),將所述圖像數(shù)據(jù)放入第一緩存,該時(shí)間信息單位為秒;
圖像提取模塊15,用于選擇各攝像機(jī)對(duì)應(yīng)錄像幀率中的幀率最大值來(lái)計(jì)算合成速度,根據(jù)合成速度從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù),并將提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)放入第二緩存,若第二緩存中已存在各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)時(shí),則先刪除第二緩存中已存在的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù);
錄像合成模塊16,用于從第二緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)后,判斷各攝像機(jī)對(duì)應(yīng)錄像的分辨率是否完全相同,若完全相同,則直接將提取的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像;若不完全相同,則先將獲取的各幀圖像數(shù)據(jù)按照預(yù)設(shè)規(guī)則進(jìn)行縮放處理,使得各幀圖像數(shù)據(jù)尺寸相同,再 將縮放后的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像;
錄像編碼模塊17,用于將拼接圖像進(jìn)行編碼處理得到拼接錄像數(shù)據(jù);
錄像發(fā)送模塊18,用于發(fā)送拼接錄像數(shù)據(jù)給對(duì)應(yīng)客戶端用于對(duì)所有需要同步回放的各攝像機(jī)進(jìn)行錄像同步回放。
可選地,該錄像同步回放裝置中信息處理模塊11接收的錄像同步回放信息包括同步回放編碼參數(shù);上述錄像編碼模塊17,還用于將拼接圖像根據(jù)同步回放編碼參數(shù)進(jìn)行編碼處理得到拼接錄像數(shù)據(jù)。
可選地,該錄像同步回放裝置還可以包括:模式選擇模塊19(圖3未標(biāo)識(shí)),用于根據(jù)同步回放的攝像機(jī)個(gè)數(shù)選擇合成模式,當(dāng)攝像機(jī)個(gè)數(shù)小于或等于模式n+1最大支持的攝像機(jī)個(gè)數(shù)且大于模式n最大支持的攝像機(jī)個(gè)數(shù)時(shí),合成模式選擇模式n+1,其中模式n最大支持的攝像機(jī)個(gè)數(shù)為n的平方,模式n為n行*n列模式,n為正整數(shù)。上述錄像合成模塊16還用于將各攝像機(jī)對(duì)應(yīng)的各幀圖像根據(jù)合成模式進(jìn)行合成處理。
可選地,上述圖像提取模塊15還包括第一判斷子單元151、第一提取子單元152(圖3未標(biāo)識(shí)),其中:
第一判斷子單元151,用于從第一緩存中提取各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)后,判斷提取的各幀圖像數(shù)據(jù)對(duì)應(yīng)的時(shí)間信息是否完全相同;
第一提取子單元152,用于當(dāng)從第一緩存中提取的各幀圖像數(shù)據(jù)對(duì)應(yīng)的時(shí)間信息不完全相同時(shí),將各幀圖像數(shù)據(jù)對(duì)應(yīng)的時(shí)間信息按大小進(jìn)行排序,僅提取時(shí)間信息最小的圖像數(shù)據(jù)放入第二緩存,將其他圖像數(shù)據(jù)放回第一緩存;當(dāng)從第一緩存中提取的各幀圖像數(shù)據(jù)對(duì)應(yīng)的時(shí)間信息完全相同時(shí),將提取的各幀圖像數(shù)據(jù)放入第二緩存。
可選地,上述錄像合成模塊16還包括第二判斷子單元161、第二提取子單元162(圖3未標(biāo)識(shí)),其中:
第二判斷子單元161,用于將從第二緩存中提取的各攝像機(jī)對(duì)應(yīng)的圖像數(shù)據(jù)進(jìn)行合成處理前,判斷提取的圖像數(shù)據(jù)幀數(shù)是否小于需要同步回放的各攝像機(jī)的個(gè)數(shù);
第二提取子單元162,用于當(dāng)從第二緩存中提取的圖像數(shù)據(jù)幀數(shù)小于需要同步回放的各攝像機(jī)個(gè)數(shù)時(shí),進(jìn)一步確定未提取到圖像數(shù)據(jù)的一個(gè)或多個(gè)攝像機(jī),將合成的拼接圖像中該個(gè)或該多個(gè)攝像機(jī)對(duì)應(yīng)位置部分的圖像以純色圖像填充;當(dāng)從第二緩存中提取的圖像數(shù)據(jù)幀數(shù)不小于需要同步回放的各攝像機(jī)個(gè)數(shù)時(shí),將提取的各幀圖像數(shù)據(jù)進(jìn)行合成處理得到拼接圖像。
上述裝置中各個(gè)模塊的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的模塊可以是或者也可以不是物理上分開(kāi)的,作為模塊顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
由上述實(shí)施例可見(jiàn),本發(fā)明可以根據(jù)實(shí)際網(wǎng)絡(luò)環(huán)境情況,對(duì)多路攝像機(jī)的同步回放錄像的碼率值進(jìn)行任意設(shè)置,有效的解決了網(wǎng)絡(luò)帶寬不足帶來(lái)的數(shù)據(jù)丟包、圖像卡頓花屏等一系列問(wèn)題,可以適用于各種網(wǎng)絡(luò)環(huán)境。本發(fā)明通過(guò)將同步過(guò)程放于后端服務(wù)器處理得到拼接錄像數(shù)據(jù),再拼接錄像數(shù)據(jù)發(fā)送給對(duì)應(yīng)客戶端用于錄像同步回放,減少了網(wǎng)絡(luò)傳輸、客戶端解碼性能等因素導(dǎo)致的錄像不同步問(wèn)題,極大地提高了錄像回放同步性,達(dá)到“真正”意義上的同步回放。
本領(lǐng)域技術(shù)人員在考慮說(shuō)明書及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確 結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制。