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,一经查实,立即删除!

相关文章

TVP5150真正的驱动起来了

几个注意的地方: 1、驱动TVP5150所需要的是IIC来驱动、IIC的时序一定要搞清楚、还有IIC的读写时序、 刚开始的时候并尝试从里面读寄存器、没有成功、可能有些寄存器不能读、2、硬件一定要检查清楚,TVP5150用到的电源有3.3V 1.8V、用电压表测量好、3、检查…

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…

ERROR 2384 — [ main] o.s.boot.SpringApplication : Application run failed

springboot数据库建表运行后报错&#xff1a; ERROR 2384 — [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’ defined in class path res…

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

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

初识Paramiko

简介&#xff1a; paramiko是用python语言写的一个模块&#xff0c;遵循SSH2协议&#xff0c;支持以加密和认证的方式&#xff0c;进行远程服务器的连接。跟常用软件xshell 、xftp功能一样&#xff0c;但是可以连接多台服务器&#xff0c;进行复杂的操作。 安装 &#xff1a; p…

gpg96244qs1屏驱动起来了

驱动屏需要注意的地方&#xff1a; 1、首先一定要保证通信、当然电路图什么的肯定是确保是好的1.1 这个屏用的是SPI通信、验证通信的方法是读寄存器里面的一个默认值&#xff0c;如果读出来的是原来的默认值的话&#xff0c;就说明是正确的、用示波器看SPI线的数据线、有一个高…

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;智慧屏系…

010. 使用.net框架提供的属性

C#允许在类和类成员上声明特性(类), 可在运行时解释类和类的成员. 这个特性也称为属性, 使用Attribute.下面演示如何使用.net框架提供的属性. 1 using System; 2 using System.Reflection;3 public partial class _Default : System.Web.UI.Page 4 {5 //自定义属性类6 …

Pytorch出现RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)

这个问题的主要原因是输入的数据类型与网络参数的类型不符。 Input type为torch.cuda.FloatTensor&#xff08;GPU数据类型&#xff09;&#xff0c; weight type&#xff08;即net.parameters&#xff09;为torch.FloatTensor&#xff08;CPU数据类型&#xff09; 有以下两种…

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()…

【Pytorch神经网络实战案例】03 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-测试方法

import torch import torchvision from PIL import Image from torch import nnimage_path"./test_img/dog.png" imageImage.open(image_path)print(image) #size406x479 所以需要转换# png格式是四个通道&#xff0c;除了RGB三通道外&#xff0c;还有一个透明度通道…