<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM11的無(wú)線(xiàn)視頻監控系統

基于A(yíng)RM11的無(wú)線(xiàn)視頻監控系統

作者: 時(shí)間:2015-04-24 來(lái)源:網(wǎng)絡(luò ) 收藏

  3 視頻數據采集和編碼設計

本文引用地址:http://dyxdggzs.com/article/273139.htm

  3.1 基于V4L2 視頻數據采集設計

  在Linux 系統下,對視頻設備的各種操作是通過(guò)Video4Linux2 實(shí)現的,簡(jiǎn)稱(chēng)V4L2.應用程序通過(guò)V4L2 提供的接口函數實(shí)現視頻設備的操作。整個(gè)視頻數據采集的過(guò)程如圖2 所示。

  ( 1) 打開(kāi)視頻設備, int open( const char *pathname, int flags)。調用該函數,若返回值為-1,表示打開(kāi)失敗,否則,表示所打開(kāi)設備的文件描述符。

  (2)取得設備信息。通過(guò)ioctl(cam_fp, VIDIOC_QUERYCAP, &cap)函數來(lái)取得設備文件的屬性參數并存儲于cap 結構中,其中cam_fp 指的是打開(kāi)的視頻設備的文件描述符。

  ( 3)選擇視頻輸入方式。通過(guò)ioctl(cam_fp,VIDIOC_ S_INPUT, &chan)函數設置視頻設備的輸入方式,其中chan 的數據結構類(lèi)型是v4l2_input,用來(lái)指定視頻的輸入方式。

  ( 4 ) 設置視頻幀格式。通過(guò)ioctl(cam_fp ,VIDIOC_S _FMT, &fmt)函數設置視頻的幀格式,其中fmt 的數據結構類(lèi)型是v4l2_format,用來(lái)指定視頻的寬度、高度、像素大小等。

  (5)讀取視頻數據。通過(guò)read(cam_fp, g_yuv,YUV_ SIZE)函數,把攝像頭一幀的數據存放到g_yuv中,其中YUV_ SIZE 指的是每幀數據的大小。

  (6)關(guān)閉視頻設備。通過(guò)close(cam_fp)函數來(lái)實(shí)現視頻設備的關(guān)閉。

  

 

  圖2 視頻數據采集流程框圖。

  3.2 視頻數據的H264 編碼

  為了提高視頻數據編碼速度,本系統采用的是H264 硬編碼方式,硬編碼具有不占用CPU 資源,運算速度快等優(yōu)點(diǎn),從而滿(mǎn)足視頻數據實(shí)時(shí)性的要求。

  具體編碼的過(guò)程如圖3 所示。

  (1)創(chuàng )建H264 編碼結構。調用SsbSipH264EncodeInit (width, height, frame_rate, bitrate, gop_num)函數實(shí)現的,其中width 表示圖像的寬度,height 表示圖像的高度,frame_rate 表示幀頻,bitrate 表示比特率或碼率,gop_num 表示兩個(gè)相離關(guān)鍵幀之間最多包含多少個(gè)幀(B 或P 幀)。

  (2)初始化H264 編碼結構,調用SsbSipH264Encode Exe (handle)函數。

  (3)獲取視頻輸入地址,SsbSipH264EncodeGetInBuf (handle, 0)函數來(lái)實(shí)現,該函數返回視頻輸入的首地址,存放在p_inbuf 中。

  (4)輸入視頻數據,調用memcpy(p_inbuf, yuv_buf, frame_size)函數實(shí)現,p_inbuf 存放需要編碼的數據,yuv_buf 存放原始視頻數據,frame_size 表示數據的大小。

  (5)編碼視頻數據,對p_inbuf 內容進(jìn)行H264編碼,調用SsbSipH264EncodeExe(handle)函數實(shí)現。

  (6)輸出已編碼的數據,SsbSipH264EncodeGetOutBuf (handle, size),該函數返回已編碼圖像的首地址,size 表示已編碼圖像的大小。

  (7)關(guān)閉硬編碼設備,調用SsbSipH264EncodeDeInit (handle)函數實(shí)現的。

  

 

  圖3 H264 編碼流程框圖。

  4 視頻數據的傳輸和顯示

  4.1 視頻數據傳輸模塊設計

  現代無(wú)線(xiàn)通信網(wǎng)絡(luò )標準主要有3G(第三代移動(dòng)通信),WI-FI,Bluetooth,Zigbee(紫蜂)等,具體詳見(jiàn)表1.

  表1 常用無(wú)線(xiàn)通信網(wǎng)絡(luò )標準的基本比較

  

 

  由于WI-FI 具有傳輸率高,支持的協(xié)議多,安裝及設置簡(jiǎn)單,成本低等優(yōu)點(diǎn),所以本系統采用的無(wú)線(xiàn)網(wǎng)絡(luò )標準是WI-FI.

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


攝像頭相關(guān)文章:攝像頭原理


關(guān)鍵詞: ARM11 視頻監控

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>