V4L2 摄像头应用

news2024/9/29 21:34:28

1.V4L2 是 Video for linux two 的简称,是 Linux 内核中视频类设备的一套驱动框架,为视频类设备驱动开发和应用层提供了一套统一的接口规范。

2.使用 V4L2 设备驱动框架注册的设备会在 Linux 系统/dev/目录下生成对应的设备节点文件,设备节点的名称通常为 videoX(X 标准一个数字编号, 0、 1、 2、 3……),每一个 videoX 设备文件就代表一个视频类设备。应用程序通过对 videoX 设备文件进行 I/O 操作来配置、使用设备类设备。

3.摄像头设备应用流程:

1) 首先是打开摄像头设备;

2) 查询设备的属性或功能;

3) 设置设备的参数,譬如像素格式、 帧大小、 帧率;

4) 申请帧缓冲、 内存映射;

5) 帧缓冲入队;

6) 开启视频采集;

7) 帧缓冲出队、对采集的数据进行处理;

8) 处理完后,再次将帧缓冲入队,往复;

9) 结束采集。

4.列出所有摄像头设备

使用v4l2-ctl --list-devices命令来获取当前开发板下都有哪些摄像头设备,以及设备节点名称,如下所示我们使用的是USB摄像头对应的设备节点为 /dev/video1

5.查看摄像头详细信息

使用 v4l2-ctl -L命令来列出摄像头设备的详细信息,使用-d /dev/video1来指定查看的摄像头设备为/dev/video1

6.查看摄像头支持的像素格式和分辨率

使用v4l2-ctl --list-formats-ext命令来获取列出摄像头支持的像素格式,分辨率大小,以及帧率都有哪些,使用 -d /dev/video1命令来指定获取的设备为/dev/video1。

7.使用mjpg_streamer预览摄像头数据

可选的-h查询帮助信息、-v查询版本信息、-b后台执行。

输入so插件包含:input_uvc.so、input_testpicture.so、(input_file.so、input_ptp2.so、input_http.so)

输出so插件包含:output_http.so、(output_file.so、output_udp.so、output_rtsp.so、output_viewer.so)

7.1)执行mjpg_streamer获取摄像头数据

如下所示我们使用:

-i参数指定输入的摄像头数据类型为uvc类型;

-d参数指定使用的摄像头设备为/dev/video1;

-r参数指定输入分辨率为640x480;

-q参数指定uvc数据质量为90;

-n参数说明不要初始化Linux-UVC驱动程序的dynctrls;

-o参数指定输出类型为http方式;

-w指定网站目录为 /usr/share/mjpg-streamer/www/

mjpg_streamer -i "/usr/lib/mjpg-streamer/input_uvc.so -d /dev/video1  -r 640x480 -f 30 -q 90 -n" -o "/usr/lib/mjpg-streamer/output_http.so -w /usr/share/mjpg-streamer/www/"

mjpg_streamer -i "/usr/lib/mjpg-streamer/input_uvc.so -d /dev/video1 -f 30 -q 90 -n" -o "/usr/lib/mjpg-streamer/output_http.so -w /usr/share/mjpg-streamer/www"

8.浏览器打开并查看摄像头数据

开发板IP地址为192.168.1.30 ,使用电脑浏览器打开如下地址即可预览摄像头数据。

192.168.1.30:8080

9.遇到问题:

使用Buildroot,配置选择MJPG-streamer,直接编译生成映象文件

cd Buildroot_2020.02.x/
make menuconfig  //图形界面
/mjpg            //搜索mjpg
选择y,保存,退出
make //进行编译

198M就可以比较流程的传输视频内容。

文件源码所在目录:

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

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

相关文章

前端HTML5

什么是HTML? 超文本标记语言,它是用来描述网页的一种语言HTML不是一种编程语言,而是一种标记语言标记语言是一种标记标签 浏览器内核 浏览器内核(渲染引擎):负责读取网页内容,整理讯息&#xf…

双方案-基于Mysql 与 ElasticSearch实现关键词提示搜索与全文检索

文章目录前言Mysql检索简述原理其他索引构建实例代码搜索流程搜索ElasticSearch 实现环境配置编码查询与插入前言 就喜欢搞这种不需要怎么费劲的东西,只需要把思路阐述清楚,随笔性质的博文,顺手啊,几乎不用改定就可以当博文发布出…

day19|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代…

生物信息【蛋白序列对比blosum】

参考学习:传统蛋白质序列比对算法 - 知乎 (zhihu.com) 一、蛋白序列同源、相似 同源”(homology)和“相似”(similarity): 同源是指有相同的祖先,在这个意义上,无所谓同源的程度&…

MybatisPlus学习笔记(二)

分页查询 分页在网站使用十分之多1.原始的limit进行分页2.pageHelper第三方插件3.MP内置的分页插件如何使用 1.配置拦截器组件 2.使用page对象 删除操作 逻辑删除 物理删除:从数据库中直接移除逻辑删除:在数据库中没有被删除,而是通…

Centos 7升级系统内核版本

步骤一:检查内核版本 [rootmaster ~]# uname -rs Linux 3.10.0-1160.el7.x86_64 步骤二:升级内核 CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elr…

二叉树知识锦囊(二)

作者:爱塔居 专栏:数据结构 作者简介:大三学生,希望和大家一起进步! 文章目录 文章目录 一、二叉树的存储 二、二叉树的遍历(重点) 2.1 前序遍历 2.2 中序遍历 2.3 后序遍历 2.4 层序遍历 2.5 小…

AX7A200教程(2): DDR3仿真平台搭建(二)

本章主要新建ddr3工程,然后将官方的ddr3仿真文件加入到工程里进行仿真,开发环境2020.1。新建ddr3_test工程新建ddr3工程顶层新建的ddr3_top顶层文件,目前还是空白的调用mig控制器,请参考我上一个章节,这里不在具体写调…

搜索引擎——Elasticsearch

文章目录1.ElasticSearch简介2.基本概念3.Elasticsearch概念-倒排索引4.Elasticsearch和Kibana的安装5.Elasticsearch入门操作5.1_cat5.2PUT&POST新增数据5.3PUT&POST修改数据5.4GET查询数据5.5DELETE删除数据5.7bulk批量操作5.6乐观锁字段6.Elasticsearch进阶操作6.1批…

蓝桥杯重点(C/C++)(随时更新)

目录 1 重点 1.1 取消同步(节约时间,甚至能多骗点分,最好每个程序都写上) 1.2 万能库(可能会耽误编译时间,但是省脑子) 1.3 蓝桥杯return 0千万别忘了写!! 1.4 …

【nginx】Windows下的常见问题踩坑

▒ 目录 ▒🛫 导读需求1️⃣ 安装2️⃣ 中文路径3️⃣ alias指定目录错误及原因正确示例📖 参考资料🛫 导读 需求 最近写了一个前端应用,需要部署后,让别人能访问,想来想去,还是选择了目前最强…

TeeChart Pro VCL FMX 2022.36.220929 Crack

TeeChart Pro VCL FMX图表组件库提供数百种用于数据可视化的 2D 和 3D 图形样式、56 种数学、统计和财务函数供您选择,还有无限数量的轴和 30 个调色板组件。 快速浏览 跨平台的一个来源 针对 Windows、Web 和移动应用程序 Delphi VCL 图表组件 使用 Embarcadero 的…

elasticsearch搜索功能(二)

一、DSL查询文档(P100) 1. DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: (1)查询所有:查询出所有数据,一…

《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 9 章 答案

《Python程序设计(第3版)》[美] 约翰策勒(John Zelle) 第 9 章 答案 答案仅供参考,若有错误欢迎指正 判断对错 计算机可以生成真正的随机数。Python 的 random 函数返回伪随机整数。自顶向下的设计也称为逐步求精。…

Redis优惠券秒杀 | 黑马点评

目录 一、全局唯一ID 1、全局ID生成器 二、实现秒杀下单 1、基本的下单功能 2、超卖问题 3、乐观锁解决并发问题 三、实现一人一单 1、思路分析 2、代码初步实现 3、关于锁的范围 4、关于事务失效 5、集群下线程并发问题 一、全局唯一ID 订单如果用自增长会存在…

QT动画实例代码QPropertyAnimation的应用

用QT实现动画,我们必定用到QPropertyAnimation,这里我们介绍几种情形的动画实现。如直线动画,曲线动画,路径动画。 一、基础知识 1、QPropertyAnimation的初始化 我们首先必须在包涵QPropertyAnimation的头文件或者模块&#x…

Android之WorkManager处理后台定时任务

WorkManager和Service并不相同,也没有直接的联系。Service是Android系统四大组件之一,它没有被销毁的情况下是一直保持在后台运行的。而WorkManager只是一个处理定时任务的工具,它可以保证即使在应用退出甚至手机重启的情况下,之前…

动手深度学习-pytorch数据操作

N维数组是机器学习和神经网络的主要数据结构创建数组需要形状:如3*4的矩阵每个元素的类型:例如32位浮点数每个元素的值:例如全是0.或者随机数数据操作首先,导入torch张量表示一个数值组成的数组,这个数组可能有多个维度…

acwing基础课——欧拉函数

由数据范围反推算法复杂度以及算法内容 - AcWing 常用代码模板4——数学知识 - AcWing 基本思想: 这里我们了解一下欧拉函数是什么以及用筛法求欧拉函数,我们先给出欧拉函数的定义: 然后我们了解一下互质的概念,只要两数的公因…

连你女朋友都能看懂的分布式架构原理!

目录 从一个新闻门户网站案例引入推算一下你需要分析多少条数据?黄金搭档:分布式存储分布式计算 这篇文章聊一个话题:什么是分布式计算系统? 一、从一个新闻门户网站案例引入 现在很多同学经常会看到一些名词,比如分…