亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的音視頻監(jiān)控軟件的設(shè)計

        2012-11-26 09:01:28章堅武

        鮑 軒,章堅武

        (杭州電子科技大學通信工程學院,浙江杭州310018)

        0 引言

        目前,國內(nèi)外眾多IT公司在移動視頻監(jiān)控領(lǐng)域,投入了大規(guī)模的人力物力進行項目研究與開發(fā)。移動視頻相關(guān)技術(shù)也已經(jīng)成為國內(nèi)各高校和研究所的研究熱點?;跓o線網(wǎng)絡(luò)將是今后監(jiān)控設(shè)備的必然選擇,移動智能終端是監(jiān)控應(yīng)用的最佳平臺,隨著3G成熟,LTE網(wǎng)絡(luò)商用時代的到來,移動視頻監(jiān)控技術(shù)將逐步走向成熟與穩(wěn)定[1]。本文介紹一種以Android智能手機為終端的音視頻監(jiān)控系統(tǒng),該系統(tǒng)把網(wǎng)絡(luò)視頻監(jiān)控和智能移動終端相結(jié)合,不僅克服了普通網(wǎng)絡(luò)視頻監(jiān)控對監(jiān)控客戶端地點上的限制,還進一步縮短了處理緊急情況的反映時間。

        1 Android開發(fā)介紹

        Android是基于Linux開放性內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機操作系統(tǒng),Android采用軟件堆層的架構(gòu),主要為3部分:底層以Linux核心為基礎(chǔ),提供基本功能;中間層包括函數(shù)庫和虛擬機;最上層是各種應(yīng)用軟件[2]。

        Android應(yīng)用程序用Java語言編寫,每個應(yīng)用程序都擁有一個獨立的Dalvik虛擬機實例,這個實例駐留在一個由Linux內(nèi)核管理的進程中。Dalvik支持Java Native Interface(JNI)編程方式,Android應(yīng)用程序可以通過JNI調(diào)用C/C++開發(fā)的共享庫,實現(xiàn)“JAVA+C”的編程方式。開發(fā)Android應(yīng)用程序最簡捷的方式是安裝Android SDK和Eclipse IDE。

        Eclipse提供了一個豐富的Java環(huán)境,Java代碼通過編譯后,Android Developer Tools會將它打包,用于安裝。

        2 音視頻監(jiān)控系統(tǒng)框架

        網(wǎng)絡(luò)監(jiān)控系統(tǒng)由服務(wù)器端(視頻采集端)、網(wǎng)絡(luò)和客戶端(視頻播放端)組成。服務(wù)器端將流媒體數(shù)據(jù)經(jīng)過編碼處理通過網(wǎng)絡(luò)傳輸?shù)娇蛻舳???蛻舳丝梢酝ㄟ^一系列的處理恢復原始流媒體數(shù)據(jù),也可以根據(jù)用戶需求發(fā)送控制命令,實現(xiàn)對前端設(shè)備的控制操作,如云臺控制等[3]。如圖1所示。

        圖1 音視頻監(jiān)控系統(tǒng)

        服務(wù)器端包括4個模塊,它們是數(shù)據(jù)采集,數(shù)據(jù)壓縮,數(shù)據(jù)打包和RTP包發(fā)送。數(shù)據(jù)采集模塊負責將音視頻模擬信號轉(zhuǎn)化為數(shù)字信號。為了減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量和提高傳輸效率從采集模塊得到的數(shù)據(jù)必須通過壓縮模塊進行處理。音視頻分別選用了G.711和H.264壓縮標準。數(shù)據(jù)打包模塊負責將數(shù)據(jù)添加一些必要包頭信息(如數(shù)據(jù)類型,時間信息,序列號等),在客戶端通過包頭中的信息來實現(xiàn)音視頻同步。RTP包發(fā)送模塊的作用是將已經(jīng)打包好的數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到客戶端。

        客戶端的各個模塊是服務(wù)器端的逆過程,在網(wǎng)絡(luò)傳輸過程中由于網(wǎng)絡(luò)延遲等原因會導致接收到的RTP數(shù)據(jù)包順序打亂,數(shù)據(jù)緩存模塊是用于恢復數(shù)據(jù)包的正常順序,從緩存模塊出來的數(shù)據(jù)傳入同步調(diào)整模塊,最后將同步調(diào)整后的數(shù)據(jù)包傳入數(shù)據(jù)解壓模塊和播放模塊。

        3 監(jiān)控客戶端的程序設(shè)計

        3.1 音視頻數(shù)據(jù)同步的原理

        對于網(wǎng)絡(luò)監(jiān)控系統(tǒng)來說,如果音視頻不同步,那么監(jiān)控對象的真實情況就無法正確反映,將會給監(jiān)控人員帶來不便。本文提出了一種解決音視頻不同步的有效方法。在服務(wù)器利用RTP包中的時間戳來標記每幀音視頻數(shù)據(jù)的時間信息,然后再將打上時間戳的音視頻流通過網(wǎng)絡(luò)發(fā)送給客戶端。在客戶端用一個緩存來消除數(shù)據(jù)流中的延時時延和恢復數(shù)據(jù)包的順序。最后將數(shù)據(jù)流送入音視頻同步調(diào)整模塊進行同步播放。在同步調(diào)整模塊中,利用時間戳進行同步調(diào)整時需要在客戶端設(shè)計一個參考時鐘,依據(jù)接收到音視頻時間戳和參考時間之間的關(guān)系來判斷當前音視頻數(shù)據(jù)是立即播放還是延時播放甚至是之間丟棄。視頻信息中有關(guān)鍵幀的判斷,所以這里的參考時鐘主要以視頻為主。

        同步調(diào)整算法如下:將接收到音視頻數(shù)據(jù)分別放到各自的緩存中,當緩存存到一定數(shù)量時,開始播放,同時進行同步調(diào)整[4]。當音頻時間戳大于視頻時間戳一定值時,說明音頻落后于視頻,需要等待。當音頻時間戳小于視頻時間戳一定值時,說明音頻超前于視頻,需要加快播放,這里采取的是丟棄音頻包,來達到加快播放的速度。

        3.2 音頻播放和視頻播放線程設(shè)計

        音視頻播放的線程設(shè)計如圖2所示,在接收視頻數(shù)據(jù)時,由于首幀進入解碼器的不是關(guān)鍵幀,會導致解碼器崩潰,所以把視頻數(shù)據(jù)寫入緩存前先要進行一個關(guān)鍵幀的判斷。當緩存區(qū)寫入一定數(shù)量數(shù)據(jù)時,才開始讀數(shù)據(jù)。再獲取各自的時間戳信息,在音視頻播放前進行同步調(diào)整,最后達到同步播放的效果。

        圖2 音視頻播放的線程設(shè)計

        3.3 H.264視頻解碼器的實現(xiàn)

        在監(jiān)控系統(tǒng)中,視頻的編碼壓縮是十分關(guān)鍵的工作。H.264是目前最先進的視頻壓縮算法,它是由視頻編碼層VLC和網(wǎng)絡(luò)提取層NAL兩部分組成[4]。H.264標準對編碼效率和圖像質(zhì)量進行了諸多改進,且抗丟包性能和抗誤碼性能好,適應(yīng)各種網(wǎng)絡(luò)環(huán)境,非常適合于對壓縮率要求高,網(wǎng)絡(luò)環(huán)境復雜的移動視頻監(jiān)控。

        客戶端接收的數(shù)據(jù)是經(jīng)過H.264編碼壓縮后的數(shù)據(jù),需要經(jīng)過H.264解碼還原視頻圖像后才能夠顯示,因此,H.264解碼器是客戶端的關(guān)鍵部分。這里移植了開源的音視頻解碼庫FFmpeg進行H.264解碼[5]。在Android應(yīng)用程序中使用FFmpeg的步驟如下:

        (1)在Linux環(huán)境下安裝Android原生開發(fā)工具包NDK;

        (2)創(chuàng)建jni文件夾,將FFmpeg工程復制到文件夾下;

        (3)創(chuàng)建Android.mk文件,分別在LOCAL_SRC_FILES和LOCAL_C_INCLUDES項中添加編譯模塊所需源文件和頭文件目錄;

        (4)執(zhí)行NDK開發(fā)包中的build腳本,生成對應(yīng)的.so共享庫,并復制到Android工程下的libs/armeabi目錄下;

        (5)在Android程序中通過System.loadLibrary(“H.264Android”)加載所需要的庫,加載成功后,應(yīng)用程序就可以使用H264Decoder函數(shù)進行H.264的解碼。

        4 實驗結(jié)果

        通過實驗室的測試,服務(wù)器端發(fā)送H.264視頻數(shù)據(jù)和G.711音頻數(shù)據(jù),客戶端安裝在Android手機上,通過WIFI接入無線網(wǎng)絡(luò)與服務(wù)器建立連接??蓪崿F(xiàn)云臺控制,設(shè)防報警等操作。視頻畫面質(zhì)量主要是受碼率(數(shù)據(jù)傳輸時單位時間傳輸?shù)臄?shù)據(jù)位數(shù))和幀率(每秒顯示圖片數(shù))的影響,碼率越大畫面越清晰,幀率越大畫面越流暢。如圖3所示,左圖顯示的是幀率為10fps,碼率300kbps時視頻效果。右圖顯示的是幀率為15fps,碼率在300kbps時視頻效果。而在音視頻同步方面,感受不到音視頻不同步的感覺。

        圖3 監(jiān)控客戶端畫面

        5 結(jié)束語

        隨著3G時代,數(shù)據(jù)傳輸速度有了大幅提升,為移動實時視頻業(yè)務(wù)的實現(xiàn)創(chuàng)造有利的條件,本文設(shè)計的這款基于android手機的音視頻監(jiān)控軟件,在實際應(yīng)用中具有較大的意義。

        [1] 田俊靜,張波,黃湘情.Android基礎(chǔ)教程[M].北京:人民郵電出版社,2010:25-31.

        [2] 郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010:21-27.

        [3] 吳靜,侯玉華.移動視頻監(jiān)控業(yè)務(wù)技術(shù)方案分析[J].信息通信技術(shù),2009,10(5):36-42.

        [4] 王慶娟.移動視頻監(jiān)控系統(tǒng)的研究與設(shè)計[D].廣州:華南理工大學,2009:57-62.

        [5] Butler,Margaret.Android:Changing the mobile landscape[J].IEEE Pervasive Computing,2011,10(1):4-7.

        日本三级片在线观看| 久久99国产亚洲高清观看首页| 日韩av中文字幕少妇精品| 视频在线观看免费一区二区| 国产香蕉国产精品偷在线| 亚洲国产精品一区二区第四页| 天堂网av在线| 久久久国产精品黄毛片| 精品视频无码一区二区三区| 九九热在线视频观看这里只有精品| 日本老年人精品久久中文字幕| 青青草免费手机直播视频| 日韩av无码中文无码电影| 国产精品后入内射日本在线观看 | 女人被狂躁到高潮视频免费网站| 精品五月天| 中文字幕久区久久中文字幕| 亚洲人成在久久综合网站 | 国产精品美女久久久久久久| 少妇高潮无码自拍| 中美日韩在线一区黄色大片| 在线观看热码亚洲av每日更新| 2021国产精品视频| 北岛玲亚洲一区二区三区| 国产色视频一区二区三区qq号| 欧美人妻精品一区二区三区 | 国产成人久久精品二区三区| 激情综合五月| 国产乱妇乱子在线视频| 四虎成人精品国产永久免费| 亚州终合人妖一区二区三区| 桃花影院理论片在线| 国产小屁孩cao大人| 中文字幕熟女激情50路| 丰满少妇a级毛片| 中国精品久久精品三级| 日韩极品免费在线观看| 免费观看国产短视频的方法| 久久精品人人爽人人爽| 中文字幕一区韩国三级| 亚洲天堂av中文字幕在线观看 |