GITHUB :源代码

其中uvc免驱设备可以是:usb摄像头、hdmi转usb视频采集卡 

v4l2的驱动过程:

视频设备获取-> 属性设定-> 采集方式设定-> 图像数据获取-> 视频设备关闭

v4l2开发中常用的命令标识符

VIDIOC_REQBUFS:分配内存
VIDIOC_QUERYBUF:把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址
VIDIOC_QUERYCAP:查询驱动功能
VIDIOC_ENUM_FMT:获取当前驱动支持的视频格式
VIDIOC_S_FMT:设置当前驱动的频捕获格式
VIDIOC_G_FMT:读取当前驱动的频捕获格式
VIDIOC_TRY_FMT:验证当前驱动的显示格式
VIDIOC_CROPCAP:查询驱动的修剪能力
VIDIOC_S_CROP:设置视频信号的边框
VIDIOC_G_CROP:读取视频信号的边框
VIDIOC_QBUF:把数据放回缓存队列
VIDIOC_DQBUF:把数据从缓存中读取出来
VIDIOC_STREAMON:开始视频显示函数
VIDIOC_STREAMOFF:结束视频显示函数

VIDIOC_QUERYSTD:检查当前视频设备支持的标准,例如PAL或NTSC

v4l2获取缓存数据过程

length: 614400 offset:          0     --
Buffer 0 mapped at address 0x7fffe05ba000.length: 614400 offset:     614400     --
Buffer 1 mapped at address 0x7fffe0524000.length: 614400 offset:    1228800     --
Buffer 2 mapped at address 0x7fffe048e000.length: 614400 offset:    1843200     --
Buffer 3 mapped at address 0x7fffe03f8000.length: 614400 offset:    2457600     --
Buffer 4 mapped at address 0x7fffe0362000.length: 614400 offset:    3072000     --
Buffer 5 mapped at address 0x7fffe02cc000.buffer 0 -> queued!
buffer 1 -> queued!
buffer 2 -> queued!
buffer 3 -> queued!
buffer 4 -> queued!
buffer 5 -> queued!

MainWindow窗口

//MainWindow CLASS:
connect(timer, SIGNAL(timeout()), this, SLOT(update())); //SLOT//data format
aa.append((const char *)&bf, 14);  //bi(BIT MAP FILE HEADER) 14bit address
aa.append((const char *)&bi, 40);  //bf(BIT MAP INFO HEADER) 40bit address
aa.append((const char *)rgb_frame_buffer, bi.biSizeImage);  //24bit image data// The QPixmap class is an off-screen image representation that can be used as a paint device
pix.loadFromData(aa); //QPixmap pix;
//a IMAGE display in ui.label
ui->label->setPixmap(pix);  //display

运行结果

uvc设备通过v4l2驱动( QT项目)相关推荐

  1. V4L2驱动详解 API翻译

    博主按:介绍V4L2基础的东西,不知道是哪位同志翻译的,莫名的感动啊.这个必须转! 另,对未翻译的部分博主加以补充.文中以蓝色字体表示,如果有错误请高手指正.还有些图片好像不能显示,我从原文复制过来了 ...

  2. v4l2驱动编写篇【转】

    转自:http://blog.csdn.net/michaelcao1980/article/details/53008418 大部分所需的信息都在这里.作为一个驱动作者,当挖掘头文件的时候,你可能也 ...

  3. V4L2驱动编写(转载)

    转自:http://blog.chinaunix.net/uid-11765716-id-196071.html 在转载过程中,图片 显示出错.请到原始连接进行查看原图. 正文: 博主按:介绍V4L2 ...

  4. usb设备驱动之uvc设备

    usb设备驱动之uvc设备 声明:涉及相关内容包括v4l2框架/drivers/media/v4l2-core/,usb设备控制器驱动/drivers/usb/dwc3/,usb composite驱 ...

  5. Linux V4l2驱动 -- 框架概述

    V4l2框架简述 1 硬件 常用的电脑摄像头是USB接口,主流的智能手机摄像头是MIPI接口,另外还有像树莓派等硬件使用的CSI接口的设备.常用的智能手机Camera采用的MIPI接口,电路框架以及电 ...

  6. 如何将你的Qt项目打包安装在MeeGo系统中

    简介 本文将教你怎样将你写的Qt项目打包并安装在MeeGo设备上运行.这里通过Qt示例中一个名叫"textures"的OpenGL项目来为例来讲述.这个原始项目是一个没有图标不能从 ...

  7. 领域驱动 开源项目_我如何在开源领域找到工作

    领域驱动 开源项目 开源的 招贤纳士 有关开源工作和职业的文章的集合 . 我从事计算机行业已有40多年的历史,但是最好的年份是使用Linux和开源软件的最后17年左右. 我无意间涉足计算机行业,但那完 ...

  8. V4L2 驱动层分析

    一.Camera V4L2 驱动层分析 Linux系统中视频输入设备主要包括以下四个部分: 1.字符设备驱动:V4L2本身就是一个字符设备,具有字符设备所有的特性,暴露接口给用户空间: 2.V4L2驱 ...

  9. 7.camera驱动06-自己实现v4l2驱动-虚拟摄像头

    1. 框架分层 实际上的v4l2框架: v4l2本质是还是一个字符设备驱动,有自己的fops. 每注册一个video_device都会以次设备号为下标放到v4l2层的一个数组里. 应用调用open函数 ...

最新文章

  1. 【小心勿喷,吃饭中的小朋友最好别看】史上最搞笑的前端vue文件命名,没有之一,呵呵哒
  2. 构建区块链数字货币交易平台服务器的选择
  3. 201521123017 《Java程序设计》第4周学习总结
  4. JS与APP原生控件交互
  5. smarty中英文多编码字符截取乱码问题
  6. SqlServer Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
  7. PIR 宣布被营利性机构收购,.org 顶级域名注册费用或上涨
  8. 8086汇编学习小记-1
  9. 音频测试方法(tiny)
  10. 实例:用C#.NET手把手教你做微信公众号开发(系列文章索引目录)
  11. php获取汉字的首字母,php获取汉字拼音首字母的函数(真正可以使用的)
  12. 1.一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。 这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?2.角谷定理。
  13. 服装系统mysql设计_服装行业ERP系统的设计与实现-店铺模块(SSH,MySQL)(含录像)
  14. Android数据持久化存储(一)
  15. python读取dat文件经纬度_自动提取kml文件中的经纬度
  16. 怎样使用JPQL查询出每个部门员工的平均工资和最高工资
  17. cesium去除控件及版权信息
  18. 在Xcode 中如何打包测试版 给测试工程师使用
  19. excel几个表合成一张_如何将几个excel文件合并_多个excel表合并成一个的方法
  20. gcc/g++ 编译C/C++代码

热门文章

  1. Java 反射获取Field
  2. 关于UsedRange方法选中了空区域的解决方案
  3. Html 播放 mp4格式视频提示 没有发现支持的视频格式和mime类型
  4. 线程池参数详解及其工作原理
  5. [0407学习]多个随机变量相加之后的分布
  6. 华为鸿蒙系统4月8日,华为终端:搭载鸿蒙系统伶俐屏旗舰将于4月8日宣布
  7. 怎么用蒙特卡洛模拟(monte carlo)
  8. python数组的定义和基本使用
  9. 获取硬盘信息失败,请谨慎操作 的解决方案
  10. python安装anaconda3_Anaconda3安装教程