在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Android智能手機(jī)的遠(yuǎn)程視頻監(jiān)控的設(shè)計(jì)

            基于Android智能手機(jī)的遠(yuǎn)程視頻監(jiān)控的設(shè)計(jì)

            作者: 時(shí)間:2012-03-20 來源:網(wǎng)絡(luò) 收藏

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

            本文引用地址:http://www.biyoush.com/article/149383.htm

            (2) 創(chuàng)建jni 文件夾,將FFmpeg 工程復(fù)制到文件夾下。創(chuàng)建H264Decoder. c 源文件,提供程序使用的接口函數(shù),文件需要包括JNI 的操作頭文件jni. h >, 且函數(shù)名有固定的形式, 如com_ipcamera_PreView_H264Decoder 表示com_ipcamera包下面PreView 類中H264Decoder 函數(shù)。

            (3)創(chuàng)建. mk 文件,該文件包含正確構(gòu)建和命名庫的MakeFile 說明。分別在LOCAL_SRC_FILES 和LOCAL_C_INCLUDES 項(xiàng)中添加編譯模塊所需源文件和頭文件目錄。

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

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

            3. 2 OpenGL ES 繪圖

            為了提高繪圖的效率,客戶端使用OpenGL ES實(shí)現(xiàn)視頻圖像的顯示。OpenGL ES 是一個(gè)2D/3D輕量圖形庫,是跨平臺圖形庫OpenGL 的簡化版。

            OpenGL ES 專門針對、PDA 和游戲主機(jī)等嵌入式設(shè)備而,目的是為了充分利用硬件加速,適合復(fù)雜的、圖形密集的程序。

            Android 中使用GLSurfaceView 來顯示OpenGL視圖,該類繼承至SurfaceView 并包含了一個(gè)專門用于渲染3D 的接口Renderer,主要通過實(shí)現(xiàn)ON鄄DrawFrame、onSurfaceChanged 以及onSurfaceCreated等方法構(gòu)建所需的Renderer.解碼器解碼一幀圖像后,調(diào)用GLSurfaceView 的requeSTRender 方法通知OpenGL ES 完成視頻圖像的顯示。使用OpenGL 繪圖的核心代碼如下:

            3. 3多線程

            視頻數(shù)據(jù)的接收和解碼都是復(fù)雜、持續(xù)的過程,如果其中一個(gè)過程出現(xiàn)阻塞會影響整個(gè)程序的運(yùn)行,因此,客戶端使用多線程實(shí)現(xiàn)數(shù)據(jù)接收和視頻解碼的并行處理。在整個(gè)程序運(yùn)行過程中,主線程響應(yīng)用戶操作,負(fù)責(zé)屏幕刷新工作,并創(chuàng)建兩個(gè)子線程:數(shù)據(jù)接收和視頻解碼子線程,處理過程如圖3 所示。

            圖3子線程處理流程

            圖3子線程處理流程。

            在Java 中, 多線程的實(shí)現(xiàn)有兩種方式: 擴(kuò)展java. lang. Thread 類或?qū)崿F(xiàn)java. lang. Runnable 接口。這里通過繼承Thread 類并覆寫run()方法實(shí)現(xiàn)兩個(gè)子線程。在多線程的應(yīng)用中關(guān)鍵是處理好線程之間的同步問題,以解決對共享存儲區(qū)的訪問沖突,避免引起線程甚至整個(gè)系統(tǒng)的死鎖。Java 多線程主要利用synchronized 關(guān)鍵字和wait( )、notify( ) 等方法實(shí)現(xiàn)線程間的同步。

            4 結(jié)束語

            目前,該系統(tǒng)已經(jīng)在實(shí)驗(yàn)室進(jìn)行測試,服務(wù)器輸出15fps CIF 格式的H. 264 視頻數(shù)據(jù),客戶端安裝在Android 上,通過WIFI 接入無線局域網(wǎng)中與服務(wù)器建立連接,用戶界面如圖4 所示,可實(shí)現(xiàn)視頻預(yù)覽、云臺控制等操作。

            圖4 監(jiān)控客戶端

            圖4 監(jiān)控客戶端

            隨著3G 時(shí)代的到來,數(shù)據(jù)傳輸速度有了大幅提升,為移動實(shí)時(shí)視頻業(yè)務(wù)的實(shí)現(xiàn)創(chuàng)造更好的條件。

            用戶可以直接接入3G 網(wǎng)絡(luò)訪問服務(wù)器,實(shí)現(xiàn)移動在線的實(shí)時(shí)。由此可見,手機(jī)市場潛力巨大,具有很好的發(fā)展前景。

            c++相關(guān)文章:c++教程



            上一頁 1 2 下一頁

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉