• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Android智能手機的遠程視頻監控的設計

    基于Android智能手機的遠程視頻監控的設計

    作者: 時間:2012-03-20 來源:網絡 收藏

    (1)在Linux 環境下安裝 原生開發工具包NDK.

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

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

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

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

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

    3. 2 OpenGL ES 繪圖

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

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

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

    3. 3多線程

    視頻數據的接收和解碼都是復雜、持續的過程,如果其中一個過程出現阻塞會影響整個程序的運行,因此,客戶端使用多線程實現數據接收和視頻解碼的并行處理。在整個程序運行過程中,主線程響應用戶操作,負責屏幕刷新工作,并創建兩個子線程:數據接收和視頻解碼子線程,處理過程如圖3 所示。

    圖3子線程處理流程

    圖3子線程處理流程。

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

    4 結束語

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

    圖4 監控客戶端

    圖4 監控客戶端

    隨著3G 時代的到來,數據傳輸速度有了大幅提升,為移動實時視頻業務的實現創造更好的條件。

    用戶可以直接接入3G 網絡訪問服務器,實現移動在線的實時。由此可見,手機市場潛力巨大,具有很好的發展前景。

    c++相關文章:c++教程



    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 利辛县| 陵水| 兰西县| 临澧县| 绥德县| 麦盖提县| 岳阳市| 清水河县| 长沙县| 于田县| 定安县| 瑞昌市| 永兴县| 博白县| 宜城市| 天气| 温宿县| 新蔡县| 准格尔旗| 赞皇县| 安徽省| 波密县| 濉溪县| 喀喇| 临沂市| 昂仁县| 扎鲁特旗| 宝应县| 云龙县| 南康市| 永嘉县| 板桥市| 河源市| 永丰县| 石渠县| 邹平县| 湄潭县| 博湖县| 财经| 白山市| 湟源县|