Video4linux2(简称V4L2),是linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。

Video4linux2一般操作流程(视频设备):

1. 打开设备文件。 int fd=open(”/dev/video0″,O_RDWR);

2. 取得设备的capability,看看设备具有什么功能,比如是否具有视频输入等。VIDIOC_QUERYCAP,struct v4l2_capability

3. 选择视频输入,一个视频设备可以有多个视频输入。VIDIOC_S_INPUT,struct v4l2_input

4. 设置视频的制式和帧格式,制式包括PAL,NTSC,帧的格式个包括宽度和高度等。

VIDIOC_S_STD,VIDIOC_S_FMT,struct v4l2_std_id,struct v4l2_format

5. 向驱动申请帧缓冲,一般不超过5个。struct v4l2_requestbuffers

6. 将申请到的帧缓冲映射到用户空间,这样就可以直接操作采集到的帧了,而不必去复制。

7. 将申请到的帧缓冲全部入队列,以便存放采集到的数据.VIDIOC_QBUF,struct v4l2_buffer

8. 开始视频的采集。VIDIOC_STREAMON

9. 出队列以取得已采集数据的帧缓冲,取得原始采集数据。VIDIOC_DQBUF

10. 将缓冲重新入队列尾,这样可以循环采集。VIDIOC_QBUF

11. 停止视频的采集。VIDIOC_STREAMOFF

12. 关闭视频设备。close(fd);

常用的结构

linux video属性_Video4linux2一般操作流程相关推荐

  1. linux video属性_Linux 下Video 的制作方法

    1.这里我用的内核是linux-2.6.32.59 版本的,首先在www.kernel.com中下载这个内核 2.下载完毕之后拷贝到Linux中进行解压,tar jxvf linux-2.6.32.5 ...

  2. linux video属性_linux查询video设备类型

    想查询 dev/video的类型,找不到命令,闲的蛋疼留个模版 用的时候把video列表写进solve前的 dev_list即可 #include #include #include #include ...

  3. Linux网络属性配置相关命令

    Linux网络属性配置相关命令: 前言: Linux属性配置可以分为两类.一类通过命令配置,另一类通过修改配置文件配置. Linux属性配置的相关命令可以分为三大类: 一.ifcfg命令家族:①ifc ...

  4. linux网络属性配置

    linux网络属性配置分动态分配和静态指定 动态分配主要依靠DHCP服务器 静态指定需要命令手动分配 静态指定命令三家族 ifcfg家族 iproute2家族 nm家族 ifcfg家族: ifconf ...

  5. Linux档案属性与目录配置

    Linux 档案属性 嗯! 既然要让你了解 Linux 的档案属性, 那么有个重要的也是常用的指令就必须要先跟你说啰! 那一个?! 就是『 ls 』这一个 list 档案的指令啰!在你以 root 的 ...

  6. video 属性和事件用法大全

    (1) video属性 <!-- video 不支持 IE8及以下版本浏览器,支持三种视频格式:MP4,WebM 和 Ogg --><video src="test.mp4 ...

  7. Linux线程属性及优先级设置

    Linux线程属性及优先级设置 [原文引自]http://hikesoso2010.spaces.eepw.com.cn/articles/article/item/86413# 线程的属性由pthr ...

  8. 学习笔记之linux网络属性配置及其命令用法

    Linux网络属性配置 先来了解一点网络的基础知识:(这些只需记住) TCP/IP:协议栈(使用中的模型) ISO,OSI:协议栈(学习中的模型) MAC:Media Access Control(介 ...

  9. 解决移动端视频层级最高的问题,修改video属性

    解决移动端视频层级最高的问题,修改video属性 参考文章: (1)解决移动端视频层级最高的问题,修改video属性 (2)https://www.cnblogs.com/shimily/articl ...

最新文章

  1. Activity的setContentView的流程
  2. 阿里巴巴收购以色列VR公司,大厂死磕VR为哪般?
  3. 当前分支上有未提交的更改时签出另一个分支
  4. oracle 查看索引类别以及查看索引字段被引用的字段方法
  5. 游戏中常用的寻路算法的分享(4)处理移动中的障碍物
  6. 在html中控制自动换行
  7. P1551 亲戚题解
  8. Matlab运算之 norm,cross,makehgtform,asin(acos)
  9. 统计机器学习-1-统计机器学习基础
  10. 【BZOJ】2101: [Usaco2010 Dec]Treasure Chest 藏宝箱(dp)
  11. 入侵防御系统特征库升级
  12. springboot学习笔记11:分布式、微服务、springcloud概念区分
  13. mysql create database xx-xxx异常You have an error in your SQL syntax
  14. 从git下载代码到本地
  15. 需要跟前辈学习的博客
  16. RabbitMQ 客户端源码系列 - Channel
  17. 【小甲鱼Python】文件:因为懂你,所以永恒课后作业
  18. 商场/购物中心会员营销活动方案
  19. webmagic ajax,【WebMagic】抓取前端渲染的页面
  20. SQL server查询「李」姓老师的数量

热门文章

  1. redis源码笔记 - 刘浩de技术博客 - 博客园
  2. 线阵相机调帧率_工业相机参数之帧率相关知识详解:
  3. Large-Scale Multi-View Subspace Clustering in Linear Time
  4. R6025 pure virtual function call
  5. android ftp客户端简单实现
  6. Android FTP 客户端 上传/下载 带进度条实战源码
  7. AutoSAR系列讲解(实践篇)12.1-Diagnostics简介
  8. 奇数层PCB板为何在PCB多层板中几乎没有见到呢?
  9. 计算机运行时删除桌面上的应用程序图标,删除windows桌面上某个应用程序的图标,意味着什么...
  10. 微软ERP Ax(Axapta) 3.0 sp4 安装过程演示