本發(fā)明屬于警用執(zhí)法設(shè)備技術(shù)領(lǐng)域,具體地說,是針對(duì)基于Android平臺(tái)開發(fā)的執(zhí)法記錄儀提出的一種錄像本地保存與遠(yuǎn)程同步推送的實(shí)現(xiàn)方法。
背景技術(shù):
執(zhí)法記錄儀又稱警用執(zhí)法記錄儀或現(xiàn)場(chǎng)執(zhí)法記錄儀,集數(shù)碼攝像、數(shù)碼照相、對(duì)講送話器功能于一身,能夠在執(zhí)法過程中進(jìn)行動(dòng)態(tài)、靜態(tài)的現(xiàn)場(chǎng)情況數(shù)字化記錄,便于公安干警在各種環(huán)境中執(zhí)法使用。
近年來,執(zhí)法記錄儀隨著一些社會(huì)事件的發(fā)生而被越來越多的公安干警所使用?,F(xiàn)有的執(zhí)法記錄儀在對(duì)執(zhí)法現(xiàn)場(chǎng)進(jìn)行錄音、錄像時(shí),通過麥克風(fēng)和攝像頭采集到的音頻數(shù)據(jù)和視頻數(shù)據(jù)有三種處理方式:
其一,先將現(xiàn)場(chǎng)采集到的音視頻數(shù)據(jù)保存在本地,即保存在執(zhí)法記錄儀中,等回到單位后再同步到云端進(jìn)行備份;
其二,將現(xiàn)場(chǎng)采集到的音視頻數(shù)據(jù)實(shí)時(shí)上傳到指揮中心,使指揮中心可以同步觀看到現(xiàn)場(chǎng)情況;
其三,將現(xiàn)場(chǎng)采集到的音視頻數(shù)據(jù)實(shí)時(shí)上傳到指揮中心,指揮中心在同步觀看現(xiàn)場(chǎng)情況的同時(shí),利用NVR或者DVR錄像機(jī)對(duì)接收到的音視頻數(shù)據(jù)進(jìn)行備份。
也就是說,現(xiàn)有的執(zhí)法記錄儀要么將采集到的音視頻數(shù)據(jù)保存在本地,要么直接推送到遠(yuǎn)程的指揮中心(本地不保存),無法實(shí)現(xiàn)本地保存與遠(yuǎn)程推送的同步進(jìn)行。究其原因,是因?yàn)楝F(xiàn)有的執(zhí)法記錄儀基本上都是基于安卓Android平臺(tái)開發(fā)的。在Android系統(tǒng)中,麥克風(fēng)在同一時(shí)刻只能被Android系統(tǒng)的一個(gè)應(yīng)用所占用,當(dāng)使用MediaRecoder應(yīng)用進(jìn)行錄像時(shí),MediaRecoder應(yīng)用會(huì)獨(dú)占麥克風(fēng),并將麥克風(fēng)采集到的音頻數(shù)據(jù)進(jìn)行本地保存。此時(shí),由于麥克風(fēng)已被MediaRecoder應(yīng)用所占用,因此其他的應(yīng)用將無法使用麥克風(fēng)獲取其輸出的音頻數(shù)據(jù),因而也就無法將音頻數(shù)據(jù)推送到遠(yuǎn)程的指揮中心,實(shí)現(xiàn)本地保存與遠(yuǎn)程推送同步進(jìn)行的功能。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明基于現(xiàn)有執(zhí)法記錄儀所存在的上述問題,提出了一種基于安卓平臺(tái)的錄像本地保存與遠(yuǎn)程同步推送的實(shí)現(xiàn)方法,規(guī)避了Android平臺(tái)上麥克風(fēng)的獨(dú)占問題。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):
一方面,本發(fā)明提出了一種基于安卓平臺(tái)的本地錄像與同步推送的方法,在啟用錄像功能時(shí),在Android系統(tǒng)的應(yīng)用層直接獲取攝像頭輸出的原始視頻數(shù)據(jù)和麥克風(fēng)輸出的原始音頻數(shù)據(jù);創(chuàng)建視頻預(yù)處理模塊和音頻預(yù)處理模塊,分別對(duì)獲取到的所述原始視頻數(shù)據(jù)和原始音頻數(shù)據(jù)統(tǒng)一進(jìn)行預(yù)編譯;創(chuàng)建視頻編碼器和音頻編碼器,分別對(duì)預(yù)編譯后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行編碼;創(chuàng)建視頻分流器和音頻分流器,分別將編碼后的視頻數(shù)據(jù)和音頻數(shù)據(jù)分成兩路,將其中一路編碼后的視頻數(shù)據(jù)和其中一路編碼后的音頻數(shù)據(jù)傳送至RTP通信模塊進(jìn)行打包封裝,并向遠(yuǎn)程實(shí)時(shí)推送;將另外一路編碼后的視頻數(shù)據(jù)和另外一路編碼后的音頻數(shù)據(jù)發(fā)送至媒體混合器MediaMuxer進(jìn)行音視頻混合處理后,進(jìn)行本地保存。
優(yōu)選的,所述原始視頻數(shù)據(jù)可以通過攝像頭的Preview接口回調(diào)獲取;所述原始音頻數(shù)據(jù)可以通過Android系統(tǒng)的AudioRecoder接口獲取。
由于音視頻數(shù)據(jù)在分發(fā)前的預(yù)編譯需要統(tǒng)一,如果按照Android系統(tǒng)常規(guī)的處理方式在native層做視頻數(shù)據(jù)的預(yù)編譯,那么在應(yīng)用層還需做RTP前的預(yù)編譯,導(dǎo)致數(shù)據(jù)處理不統(tǒng)一、繁瑣。為了解決此問題,本發(fā)明在Android系統(tǒng)的應(yīng)用層創(chuàng)建所述的視頻預(yù)處理模塊和所述的音頻預(yù)處理模塊,在Android系統(tǒng)的應(yīng)用層完成對(duì)所述原始視頻數(shù)據(jù)和原始音頻數(shù)據(jù)的預(yù)編譯,以統(tǒng)一數(shù)據(jù)來源,便于數(shù)據(jù)的統(tǒng)一處理。
優(yōu)選的,本發(fā)明優(yōu)選在Android系統(tǒng)的應(yīng)用層利用標(biāo)準(zhǔn)API的MediaCodec編碼接口創(chuàng)建所述的視頻編碼器和音頻編碼器,在Android系統(tǒng)的應(yīng)用層完成對(duì)所述預(yù)編譯后的視頻數(shù)據(jù)和音頻數(shù)據(jù)的編碼處理。
優(yōu)選的,本發(fā)明優(yōu)選在Android系統(tǒng)的應(yīng)用層創(chuàng)建所述的視頻分流器和音頻分流器,分別對(duì)編碼后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行拷貝,以形成兩路編碼后的視頻數(shù)據(jù)和兩路編碼后的音頻數(shù)據(jù),并進(jìn)行分發(fā)。
另一方面,本發(fā)明基于上述本地錄像與同步推送的方法,還提出了一種執(zhí)法記錄儀,其系統(tǒng)軟件基于Android平臺(tái)開發(fā)設(shè)計(jì),包括攝像頭、麥克風(fēng)、視頻數(shù)據(jù)采集模塊、音頻數(shù)據(jù)采集模塊、視頻預(yù)處理模塊、音頻預(yù)處理模塊、視頻編碼器、音頻編碼器、視頻分流器、音頻分流器、RTP通信模塊和媒體混合器MediaMuxer;所述視頻數(shù)據(jù)采集模塊創(chuàng)建于Android系統(tǒng)的應(yīng)用層,在啟用錄像功能時(shí),采集所述攝像頭生成的原始視頻數(shù)據(jù);所述音頻數(shù)據(jù)采集模塊創(chuàng)建于Android系統(tǒng)的應(yīng)用層,在啟用錄像功能時(shí),采集所述麥克風(fēng)生成的原始音頻數(shù)據(jù);所述視頻預(yù)處理模塊對(duì)所述視頻數(shù)據(jù)采集模塊采集到的原始視頻數(shù)據(jù)進(jìn)行預(yù)編譯;所述音頻預(yù)處理模塊對(duì)所述音頻數(shù)據(jù)采集模塊采集到的原始音頻數(shù)據(jù)進(jìn)行預(yù)編譯;所述視頻編碼器對(duì)所述視頻預(yù)處理模塊編譯輸出的視頻數(shù)據(jù)進(jìn)行編碼;所述音頻編碼器對(duì)所述音頻預(yù)處理模塊編譯輸出的音頻數(shù)據(jù)進(jìn)行編碼;所述視頻分流器將所述視頻編碼器編碼輸出的視頻數(shù)據(jù)分成兩路,一路發(fā)送至RTP通信模塊,另一路發(fā)送至媒體混合器MediaMuxer;所述音頻分流器將所述音頻編碼器編碼輸出的音頻數(shù)據(jù)分成兩路,一路發(fā)送至RTP通信模塊,另一路發(fā)送至媒體混合器MediaMuxer;所述RTP通信模塊將接收到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行打包封裝,并向遠(yuǎn)程的指揮中心實(shí)時(shí)推送;所述媒體混合器MediaMuxer將接收到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行音視頻混合處理,并保存在所述執(zhí)法記錄儀內(nèi)部的存儲(chǔ)器中。
優(yōu)選的,所述視頻數(shù)據(jù)采集模塊優(yōu)選通過攝像頭的Preview接口回調(diào)獲取所述的原始視頻數(shù)據(jù);所述音頻數(shù)據(jù)采集模塊優(yōu)選通過Android系統(tǒng)的AudioRecoder接口獲取所述麥克風(fēng)輸出的原始音頻數(shù)據(jù)。
為了避免視頻數(shù)據(jù)在不同層進(jìn)行兩次編譯處理,本發(fā)明在Android系統(tǒng)的應(yīng)用層創(chuàng)建所述的視頻預(yù)處理模塊和所述的音頻預(yù)處理模塊,在Android系統(tǒng)的應(yīng)用層完成對(duì)所述原始視頻數(shù)據(jù)和原始音頻數(shù)據(jù)的預(yù)編譯,以統(tǒng)一數(shù)據(jù)來源,便于數(shù)據(jù)的統(tǒng)一處理。
優(yōu)選的,所述視頻編碼器和音頻編碼器可以在Android系統(tǒng)的應(yīng)用層利用標(biāo)準(zhǔn)API的MediaCodec編碼接口創(chuàng)建,利用所述視頻編碼器和音頻編碼器在Android系統(tǒng)的應(yīng)用層完成對(duì)預(yù)編譯后的視頻數(shù)據(jù)和音頻數(shù)據(jù)的編碼處理。
優(yōu)選的,所述視頻分流器和音頻分流器優(yōu)選在Android系統(tǒng)的應(yīng)用層創(chuàng)建,分別對(duì)所述編碼后的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行拷貝,以形成兩路編碼后的視頻數(shù)據(jù)和兩路編碼后的音頻數(shù)據(jù),并進(jìn)行分發(fā)。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)和積極效果是:本發(fā)明針對(duì)Android系統(tǒng)的麥克風(fēng)和攝像頭,采用在應(yīng)用層單獨(dú)創(chuàng)建音頻數(shù)據(jù)采集模塊和視頻數(shù)據(jù)采集模塊的方式,在應(yīng)用層直接獲取麥克風(fēng)采集輸出的原始音頻數(shù)據(jù)和攝像頭采集輸出的原始視頻數(shù)據(jù),自行進(jìn)行預(yù)編譯、編碼和封裝處理,由此可以規(guī)避麥克風(fēng)在啟用錄像功能時(shí)因被Android系統(tǒng)的MediaRecoder應(yīng)用所獨(dú)占,而導(dǎo)致其他應(yīng)用獲取不到音頻信號(hào)的問題。在啟用錄像功能時(shí),本發(fā)明通過自行獲取原始音視頻數(shù)據(jù),并利用自行創(chuàng)建的音視頻預(yù)處理模塊、音視頻編碼器以及音視頻分流器對(duì)獲取到的音頻數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行預(yù)編譯、編碼和分流處理,從而可以生成兩路完全同步的音視頻數(shù)據(jù)流,一路用于遠(yuǎn)程的實(shí)時(shí)傳送,另一路用于本地保存,由此解決了本地錄像與音視頻流同步推送的問題。將其應(yīng)用于執(zhí)法記錄儀中,公安干警在執(zhí)法過程中不僅可以將現(xiàn)場(chǎng)錄制的音視頻數(shù)據(jù)保存在執(zhí)法記錄儀中,而且還可以將現(xiàn)場(chǎng)錄制的音視頻數(shù)據(jù)同步上傳至遠(yuǎn)程的指揮中心,以便于指揮中心指揮和協(xié)助警務(wù)人員的執(zhí)法過程。指揮中心在同步觀看現(xiàn)場(chǎng)情況的同時(shí),還可以通過錄像機(jī)進(jìn)行錄像備份,以滿足多種應(yīng)用需求。
結(jié)合附圖閱讀本發(fā)明實(shí)施方式的詳細(xì)描述后,本發(fā)明的其他特點(diǎn)和優(yōu)點(diǎn)將變得更加清楚。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是現(xiàn)有Android平臺(tái)的系統(tǒng)架構(gòu)圖;
圖2是本發(fā)明所提出的執(zhí)法記錄儀改進(jìn)后的Android平臺(tái)的一種實(shí)施例的系統(tǒng)架構(gòu)圖;
圖3是圖2所示的執(zhí)法記錄儀為實(shí)現(xiàn)本地錄像與同步推送而設(shè)計(jì)的一種實(shí)施例的數(shù)據(jù)處理流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)地說明。
Android平臺(tái)采用層次化的系統(tǒng)架構(gòu),從上層到下層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層(native層)、系統(tǒng)運(yùn)行庫層以及Linux內(nèi)核層,如圖1所示。對(duì)于執(zhí)法記錄儀中的Android平臺(tái),根據(jù)其應(yīng)用需要,在其應(yīng)用程序?qū)釉O(shè)置有攝像頭、麥克風(fēng)、通話器、報(bào)警器、時(shí)鐘、日歷、媒體播放器等應(yīng)用模塊,以滿足執(zhí)法記錄儀的錄音、錄像、對(duì)講、報(bào)警、日期時(shí)間顯示以及音視頻媒體播放功能等。
對(duì)于執(zhí)法記錄儀中設(shè)置的麥克風(fēng),由于受Android系統(tǒng)編程的限制,在同一時(shí)刻只能被一個(gè)應(yīng)用所占用,即存在麥克風(fēng)獨(dú)占的問題,因此,在啟用執(zhí)法記錄儀的錄像功能錄制執(zhí)法現(xiàn)場(chǎng)的音視頻信號(hào)時(shí),若需要本地保存,則Android系統(tǒng)將自動(dòng)調(diào)用其MediaRecoder應(yīng)用讀取攝像頭采集到的視頻數(shù)據(jù)和麥克風(fēng)采集到的音頻數(shù)據(jù),并在native層對(duì)讀取到的音頻數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行編譯、編碼、音視頻混合等一系列處理后,生成本地音視頻數(shù)據(jù)流,保存到執(zhí)法記錄儀內(nèi)部的存儲(chǔ)器中。由于麥克風(fēng)被MediaRecoder應(yīng)用所占用,因此,在錄像過程中其他應(yīng)用將無法使用該麥克風(fēng)獲取其采集到的音頻數(shù)據(jù),從而也就無法將錄制的音視頻數(shù)據(jù)進(jìn)行RTP封裝,實(shí)時(shí)地向指揮中心進(jìn)行遠(yuǎn)程傳送。也就是說,指揮中心無法同步地觀看到執(zhí)法現(xiàn)場(chǎng)的實(shí)時(shí)狀況。
為了規(guī)避 Android系統(tǒng)中麥克風(fēng)的獨(dú)占問題,實(shí)現(xiàn)錄像數(shù)據(jù)的本地保護(hù)和遠(yuǎn)程同步推送的功能,本實(shí)施例提出了一種在Android系統(tǒng)的應(yīng)用層自行獲取麥克風(fēng)和攝像頭的原始音視頻數(shù)據(jù),并對(duì)獲取到的原始音視頻數(shù)據(jù)進(jìn)行自行處理、自行封裝和分發(fā)的設(shè)計(jì)思想,使得執(zhí)法記錄儀在錄制現(xiàn)場(chǎng)的過程中既可以將錄制到的現(xiàn)場(chǎng)音視頻數(shù)據(jù)保存到執(zhí)法記錄儀內(nèi)部的存儲(chǔ)器中,實(shí)現(xiàn)本地保存,又可以同步推送到遠(yuǎn)程的指揮中心,使遠(yuǎn)程的指揮中心可以觀看到現(xiàn)場(chǎng)的實(shí)時(shí)狀況。
基于上述設(shè)計(jì)思想,本實(shí)施例首先在Android系統(tǒng)的應(yīng)用層單獨(dú)創(chuàng)建音頻數(shù)據(jù)采集模塊和視頻數(shù)據(jù)采集模塊,如圖2所示,在執(zhí)法記錄儀啟用錄像功能時(shí),分別獲取麥克風(fēng)采集輸出的原始音頻數(shù)據(jù)和攝像頭采集輸出的原始視頻數(shù)據(jù),并通過在Android系統(tǒng)中單獨(dú)創(chuàng)建音頻預(yù)處理模塊、視頻預(yù)處理模塊、音頻編碼器、視頻編碼器、音頻分流器和視頻分流器,自行對(duì)獲取到的原始音、視頻數(shù)據(jù)進(jìn)行預(yù)編譯、編碼和分發(fā)處理,繼而可以形成兩路音視頻信號(hào),一路分發(fā)到Android系統(tǒng)的RTP通信模塊進(jìn)行封裝,以用于向遠(yuǎn)程的指揮中心傳送,另一路分發(fā)到Android系統(tǒng)的媒體混合器MediaMuxer,進(jìn)行音視頻數(shù)據(jù)的混合處理,以用于本地保存,由此便可以規(guī)避麥克風(fēng)被Android系統(tǒng)的MediaRecoder應(yīng)用所獨(dú)占的問題,實(shí)現(xiàn)錄像本地保存和遠(yuǎn)程同步推送的功能。
在本實(shí)施例中,所述音頻數(shù)據(jù)采集模塊可以通過Android系統(tǒng)封裝的標(biāo)準(zhǔn)接口的AudioRecoder獲取所述麥克風(fēng)輸出的原始音頻數(shù)據(jù),例如PCM數(shù)據(jù);所述視頻數(shù)據(jù)采集模塊可以通過攝像頭的Preview接口采用回調(diào)的方式獲取其輸出的原始視頻數(shù)據(jù),例如YUV數(shù)據(jù)。
對(duì)于獲取到的原始音頻數(shù)據(jù)和原始視頻數(shù)據(jù)在分發(fā)封裝前需要進(jìn)行預(yù)編譯和編碼處理,為此,本實(shí)施例分別在Android系統(tǒng)的應(yīng)用層創(chuàng)建音頻預(yù)處理模塊和視頻預(yù)處理模塊,如圖2所示,在應(yīng)用層完成對(duì)原始音、視頻數(shù)據(jù)的預(yù)編譯處理,例如,在視頻圖像上添加水?。ɡ缇瘶?biāo)、時(shí)間、GPS定位坐標(biāo)等)等。當(dāng)然,在視頻圖像上添加水印也可以在Android系統(tǒng)的native層完成,并且按照Android系統(tǒng)的常規(guī)處理方式,對(duì)于原始視頻數(shù)據(jù)的預(yù)編譯過程通常都是在native層進(jìn)行的。本實(shí)施例之所以將原始音、視頻數(shù)據(jù)的預(yù)編譯過程統(tǒng)一放到Android系統(tǒng)的應(yīng)用層完成,主要是考慮音、視頻數(shù)據(jù)在后面要經(jīng)過分流器進(jìn)行分發(fā),分發(fā)前的預(yù)編譯必須是統(tǒng)一的,如果在native層做視頻數(shù)據(jù)的預(yù)編譯,那么在應(yīng)用層還需做RTP封裝前的預(yù)編譯。本實(shí)施例將音頻預(yù)處理模塊和視頻預(yù)處理模塊創(chuàng)建在應(yīng)用層,可以統(tǒng)一數(shù)據(jù)來源,便于數(shù)據(jù)的統(tǒng)一處理。此外,本實(shí)施例將獲取到的原始音視頻數(shù)據(jù)放到應(yīng)用層做數(shù)據(jù)的編譯和分發(fā)處理,相比放到native層,可以處理更加復(fù)雜的業(yè)務(wù)場(chǎng)景或者滿足并發(fā)的業(yè)務(wù)場(chǎng)景需求。例如可以滿足本實(shí)施例所提出的同時(shí)錄像和發(fā)送RTP數(shù)據(jù)包至流媒體服務(wù)器的設(shè)計(jì)需求等。
將通過所述音頻預(yù)處理模塊編譯輸出的音頻數(shù)據(jù)和視頻預(yù)處理模塊編譯輸出的視頻數(shù)據(jù)分別傳輸至音頻編碼器和視頻編碼器,如圖3所示,以進(jìn)行音頻數(shù)據(jù)和視頻數(shù)據(jù)的編碼處理。在本實(shí)施例中,所述音頻編碼器和視頻編碼器優(yōu)選創(chuàng)建在Android系統(tǒng)的應(yīng)用層,結(jié)合圖2所示,具體可以利用Android系統(tǒng)標(biāo)準(zhǔn)API的MediaCodec編碼接口來創(chuàng)建,以對(duì)預(yù)編譯后的音頻數(shù)據(jù)和視頻數(shù)據(jù)進(jìn)行壓縮、格式轉(zhuǎn)換等一系列的編碼處理。
將通過音頻編碼器編碼輸出的音頻數(shù)據(jù)傳輸至音頻分流器,利用音頻分流器對(duì)編碼后的音頻數(shù)據(jù)進(jìn)行拷貝,以生成兩路相同的音頻數(shù)據(jù)進(jìn)行分發(fā),如圖3所示。同理,將通過視頻編碼器編碼輸出的視頻數(shù)據(jù)傳輸至視頻分流器,利用視頻分流器對(duì)編碼后的視頻數(shù)據(jù)進(jìn)行拷貝,以生成兩路相同的視頻數(shù)據(jù)進(jìn)行分發(fā)。在本實(shí)施例中,所述音頻分流器和視頻分流器也優(yōu)選創(chuàng)建在Android系統(tǒng)的應(yīng)用層,結(jié)合圖2所示,以便于數(shù)據(jù)的統(tǒng)一處理。
本實(shí)施例將通過所述音頻分流器拷貝生成的兩路音頻信號(hào)進(jìn)行分發(fā),一路傳送至Android系統(tǒng)的RTP通信模塊 (PRT,Real-time Transport Protocol, 實(shí)時(shí)傳輸協(xié)議),用于數(shù)據(jù)的遠(yuǎn)程實(shí)時(shí)傳送;另一路傳送至Android系統(tǒng)的媒體混合器MediaMuxer,以用于本地保存,如圖3所示。同理,將通過所述視頻分流器拷貝生成的兩路視頻信號(hào)進(jìn)行分發(fā),一路傳送至所述的RTP通信模塊,用于數(shù)據(jù)的遠(yuǎn)程實(shí)時(shí)傳送;另一路傳送至所述的媒體混合器MediaMuxer,用于本地保存。
所述RTP通信模塊將接收到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行打包封裝,上傳至流媒體服務(wù)器,以實(shí)現(xiàn)向遠(yuǎn)程指揮中心的實(shí)時(shí)推送,完成流媒體數(shù)據(jù)的同步推送功能。指揮中心通過接收到的音視頻數(shù)據(jù)觀看到執(zhí)法現(xiàn)場(chǎng)的實(shí)時(shí)狀況,以便開展監(jiān)督、指揮和部署等工作。此外,指揮中心在同步觀看現(xiàn)場(chǎng)的實(shí)時(shí)狀況的同時(shí),還可以利用指揮中心的NVR或者DVR錄像機(jī)進(jìn)行錄像備份,以滿足不同的應(yīng)用需求。
所述媒體混合器MediaMuxer對(duì)接收到的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行音視頻混合處理,進(jìn)而生成本地音視頻數(shù)據(jù),保存在執(zhí)法記錄儀內(nèi)部的存儲(chǔ)器中,以實(shí)現(xiàn)錄像數(shù)據(jù)的本地保存,便于現(xiàn)場(chǎng)的警務(wù)人員調(diào)取回放。
本實(shí)施例通過對(duì)執(zhí)法記錄儀中的Android系統(tǒng)的應(yīng)用層進(jìn)行改進(jìn),解決了麥克風(fēng)的獨(dú)占問題,實(shí)現(xiàn)了錄像數(shù)據(jù)本地保存以及遠(yuǎn)程同步推送的功能,且同步效率高,實(shí)時(shí)性強(qiáng),極大方便了警務(wù)人員的執(zhí)法工作。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。