video4linux 安装,【精品博文】Video4linux 下视频编程的流程
最近一直在忙基金申報,今天終于順利提交了,剩下的就看緣分啦。今天有時間寫寫Video4linux 下視頻編程的流程。
Video4linux(簡稱 V4L),是linux 中關于視頻設備的內核驅動。現在已有Video4linux2,還未加入linux 內核,使用的時候要自己下載補丁,今天就講講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 應用程序。
就寫這么多吧,很久沒來了,謝謝大家一直關注我。
總結
以上是生活随笔為你收集整理的video4linux 安装,【精品博文】Video4linux 下视频编程的流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌浏览器有哪些好看的主题_Kibou
- 下一篇: linux 其他常用命令