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 后;

206027184_1_20201031062021837

在video for Linux 选项展开中如下选中V4L information in proc filesystem

206027184_2_20201031062021978_wm

(2)进入USB Suppot, 在 ---USB Multimedia devices 中选中 USB OV511 Camera Support

后退出。

2、编译内核make; make zImage;

3、烧录kernel

4、启动Linux,之后插入USB 摄像头设备,显示提示信息:

206027184_3_20201031062022181_wm

5、编译视频采集应用程序v4lcap,进入 /实验目录/v4lcap; make;

6、挂载nfs 文件系统,运行刚生成的v4lcap 程序

206027184_4_20201031062022400

7、通过参数调整视频输出的尺寸,

[]#./v4lcap -s 320:240

8、若为中兴微zx301 芯片的摄像头,把spca5xx.o 文件拷贝到开发板,在开发板上插入

zx301 芯片的驱动spca5xx.o,插入usb 摄像头,然后运行v4lcap 应用程序。

就写这么多吧,很久没来了,谢谢大家一直关注我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

intellij IDEA--- 报inspects a maven model for resolution problems

解决方法是&#xff1a; 第一种&#xff1a; 找到pom.xml 右击 --> Maven --> reImport 第二种方法&#xff1a; 第三种 <properties><junit.version>4.11</junit.version><spring.version>4.3.14.RELEASE</spring.version></prop…

spring AOP自定义注解方式实现日志管理

转&#xff1a;spring AOP自定义注解方式实现日志管理 今天继续实现AOP&#xff0c;到这里我个人认为是最灵活&#xff0c;可扩展的方式了&#xff0c;就拿日志管理来说&#xff0c;用Spring AOP 自定义注解形式实现日志管理。废话不多说&#xff0c;直接开始&#xff01;&…

GPG96244QS1屏驱动难题

void Gpg_Master(unsigned int Data) {unsigned int temp 0b1000000000000000;Master_SCK1;ENABLE_244QS1();//初始化前使能片选_delay(10);DISABLE_244QS1();Master_SCK0; //Generate SCK Clockdo{Master_SDI Data &temp;Master_SCK1; _delay(10); Master_SCK0; //Gener…

linux装机量,在没有盗版的世界 Linux桌面的装机量可能占比达到40%

近日&#xff0c;由奥斯陆大学经济学系博士生Arne Rogde Gramstad公布的“Software Piracy and Linux Adoption”研究报告&#xff0c;发现了Linux系统装机量和软件盗版之间的潜在关联。在这份报告中引用了商业软件联盟(BSA)自2012年以来从104 个国家收集的盗版软件信息&#x…

Spring.io本地服务器解决超时问题

建本地服务器的方法&#xff0c;详情参考官方说明&#xff1a;https://github.com/spring-io/initializr 打开一看是英文&#xff0c;而且你鼓捣半天不一定成功&#xff0c;没事&#xff0c;我已经搭建好了可执行jar包给你下载使用&#xff01;你只需要java -jar&#xff0c;如…

lgg6 android 9,LG G6的18:9屏幕用起来到底是什么样

前不久LG公布了全新18:9屏幕&#xff0c;据他们称这块屏幕是特意为智能手机而设计&#xff0c;如今传言也指向LG G6将会成为首款使用这块屏幕的旗舰&#xff0c;那么为何LG会放弃智能手机坚持的16:9转而使用18&#xff1a;9&#xff0c;体验又会是什么样呢&#xff1f;最近LG公…

屏上有一层紫色(正在找原因)

注&#xff1a; 1、这两天一直在找这个原因、5150控制成功、屏驱动成功、可是为什么屏上面有一层紫色的覆盖住了呢、非常的让我感到不解2、如果什么也不输入、解码出来的信号在TFT上显示是紫色、我现在是不怎么清楚是屏的原因还是解码的原因

Cadence PCB SI

Cadence PCB信号完整性 (SI) 和电源完整性技术(PI)提供了可调整、高性价比并且支持前仿真和后仿真的系统互联设计和分析环境。 Cadence PCB信号完整性 (SI) 和电源完整性技术(PI)提供了可调整、高性价比并且支持前仿真和后仿真的系统互联设计和分析环境。Cadence PCB SI和PI产品…

java1.8安装

简单说下&#xff0c;jdk1.8*的下载&#xff0c;见http://www.cnblogs.com/zlslch/p/5658383.html 双击jdk-8u60-windows-x64.exe运行程序 欢迎使用Java SE开发工具包8 Update 60的安装向导界面&#xff0c;点击“下一步” 选择安装可选功能界面&#xff0c;默认安装&#xff0…

图像正确(相当于这个小项目就要结尾了)

到这里这个小项目就要进入尾声了 1、在其中遇到了很多问题、也听了部门前辈的指点、有的人说的正确、有的人说的不沾边、这时候真的是需要自己去衡量哪个人说的才是自己所需要的、2、关于TVP5150的配置和GPGTFT的配置、刚开始的时候都不知道到底是哪一个配置会出了什么问题、后…

华为升级harmonyos的机型名单,华为智慧屏HarmonyOS 1.0.1.50更新机型和方法

华为智慧屏 V65/V65i/V65尊爵版/V75 新版本发布HarmonyOS 1.0.1.50一、 适配机型&#xff1a;华为智慧屏 V65 4G64G(HEGE-560)华为智慧屏 V65i 4G32G(HEGE-560B)华为智慧屏 V65尊爵版 4G128G(HEGE-560S)华为智慧屏 V75 4G64G(HEGE-570)二、 更新方式&#xff1a;智慧屏系…

LCD-DBI接口与DPI接口与DSI接口

&#xff08;1&#xff09;DBI接口 A&#xff0c;也就是通常所讲的MCU借口&#xff0c;俗称80 system接口。The lcd interface between host processor and LCM device list as below,The LCM driver will repeated update panel display。MCU借口通过并行接口传输控制命令和数…

ios截屏 u3d导出Xcode工程截屏

在ios原生程序里面 全屏截屏 UIWindow *window [[UIApplication sharedApplication] keyWindow];  //下边是经典的4步 UIGraphicsBeginImageContext(window.frame.size);  //打开画布&#xff0c;并设定大小 [window.layer renderInContext:UIGraphicsGetCurrentContext()…

linux我回来了

如题 我想说、linux我又要回来了、不是为了什么就是为了原先刚开始喜欢你的感情一样离开了这么久、学了几行JAVA、搞了一下安卓、不过我还是回到了linux庆幸的是、当初我把我的系统备份了下来、没有删除、所以一切都感觉很熟悉

logistic模型原理与推导过程分析(1)

从线性分类器谈起 给定一些数据集合&#xff0c;他们分别属于两个不同的类别。例如对于广告数据来说&#xff0c;是典型的二分类问题&#xff0c;一般将被点击的数据称为正样本&#xff0c;没被点击的数据称为负样本。现在我们要找到一个线性分类器&#xff0c;将这些数据分为两…

linux Hello World 模块编程

折腾了差不多一个晚上: 1、关于在前面加上TAB,这个是有必要的、 2、Makefile的编写也是有些差异的 3、关于内核的版本可以通过uname -r来查看一下 我

logistic模型原理与推导过程分析(2)

二项逻辑回归模型 既然logistic回归把结果压缩到连续的区间(0,1)&#xff0c;而不是离散的0或者1&#xff0c;然后我们可以取定一个阈值&#xff0c;通常以0.5为阈值&#xff0c;如果计算出来的概率大于0.5&#xff0c;则将结果归为一类&#xff08;1&#xff09;&#xff0c;…

linux下的字符设备驱动

Linux字符设备驱动程序的一个简单示例一.开发环境&#xff1a; 主 机&#xff1a;VMWare--Fedora 9 开发板&#xff1a;友善之臂mini2440--256MB Nandflash 编译器&#xff1a;arm-linux-gcc-4.3.2 二.驱动源码&#xff1a; 该源码很浅显易懂&#xff0c;非常适合初学者。 me…

logistic模型原理与推导过程分析(3)

附录&#xff1a;迭代公式向量化 θ相关的迭代公式为&#xff1a; ​ 如果按照此公式操作的话&#xff0c;每计算一个θ需要循环m次。为此&#xff0c;我们需要将迭代公式进行向量化。 首先我们将样本矩阵表示如下&#xff1a; 将要求的θ也表示成矩阵的形式&#xff1a; 将x…

计算机表示法是知识 表示法么,计算机三级考试关于IP地址知识点

计算机三级考试关于IP地址知识点IP地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xff0c;以此来屏蔽物理地址的差异&#xff0c;同时也是计算机三级考试的重要内容&#xff0c;小编整理了相关知识点&#xff0c;…