您的位置:首頁>科技>正文

「精品博文」Video4linux 下視頻程式設計的流程

最近一直在忙基金申報, 今天終於順利提交了, 剩下的就看緣分啦。 今天有時間寫寫Video4linux 下視頻程式設計的流程。

Video4linux 支援的主要資料結構

video_capability

包含設備的基本資訊, 包含的成員:

name[32]; 設備名稱

type; 是否能capture, 彩色還是黑白, 是否能裁剪等等。 值如 VID_TYPE_CAPTURE 等

channels; 信號源個數

audios; 音訊設備數目

maxwidth; 支援視頻顯示的寬度上限

maxheight; 視頻顯示的高度上限

minwidth;

minheight;

video_picture

設備採集的圖像的各種屬性, 在應用程式中使用VIDIOCSPICT ioctl 來改變設備的此種屬性。 包含的成員:

brightness 亮度 0~65535

hue 色調

colour 顏色(彩色模式)

contrast 對比度

whiteness 白色度(灰度級模式)

depth 捕獲深度(配合顯示緩衝區的色彩深度)

palette 調色板資訊

video_channel

關於各個信號源的屬性,

每種video4linux 視頻或者音訊設備可以從一個或者多個信號源捕獲資料。 調用的ioctl 介面是VDIOCGCHAN。 調用前必須設置信號源的各個通道域。 包含的成員:

channel 信號源的標號

name 信號源名稱

tuners tuners 的數目

flags tuner 的屬性

type 輸入類型

norm 制式

video_mbuf

利用mmap 進行映射的幀的資訊。 系統調用syscall 時會從設備返回下一個可用的影像。 而調用者

首先要設置獲取圖像的大小和格式。 通過調用ioctl 介面 VDIOCGCHAN 實現。 注意並不是所有的設備

都支援此種操作:

size 幀大小

frames 最多支援的幀數

offsets[VIDEO_MAX_FRAME] 每幀相對基址的偏移

程式設計流程:

1、打開視頻設備:視頻設備是設備檔, 可以像訪問普通檔一樣對其進行讀寫, 在我們

的平臺上, 攝像頭設備是/dev/v4l/video0。

2、讀取設備資訊

3、更改設備當前的設置(如果有必要)

4.進行視頻採集,

視頻採集主要有兩種方法:

(1)記憶體映射(本實驗中採用)

(2)直接從設備讀取

5、對採集的視頻進行處理(本實驗中沒有做處理)

6、關閉視頻設備。

實驗步驟:

1、首先配置內核make menuconfig

(1)進入Multimedia devices ---> 選中video for Linux 後;

在video for Linux 選項展開中如下選中V4L information in proc filesystem

(2)進入USB Suppot, 在 ---USB Multimedia devices 中選中 USB OV511 Camera Support

後退出。

2、編譯內核make; make zImage;

3、燒錄kernel

4、啟動Linux, 之後插入USB 攝像頭設備, 顯示提示資訊:

5、編譯視頻採集應用程式v4lcap, 進入 /實驗目錄/v4lcap; make;

6、掛載nfs 檔案系統, 運行剛生成的v4lcap 程式

7、通過參數調整視頻輸出的尺寸,

#./v4lcap -s 320:240

8、若為中興微zx301 晶片的攝像頭, 把spca5xx.o 檔拷貝到開發板, 在開發板上插入

zx301 晶片的驅動spca5xx.o, 插入usb 攝像頭, 然後運行v4lcap 應用程式。

就寫這麼多吧, 很久沒來了, 謝謝大家一直關注我。

Next Article
喜欢就按个赞吧!!!
点击关闭提示