linux下usb的热插拔监控,怎么linux下检测 usb摄像头热插拔事件
在linux下所有设备都是文件。所以对摄像头的操作其实就是对文件的操作。USB摄像头的设备文件就是在/dev目录下的video0(假如只有一个摄像头)。在linux下操作摄像头就是使用v4l2对摄像头进行视频的操作,操作步骤如下1. 打开设备文件。
int fd=open(”/dev/video0″,O_RDWR);
2. 取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。VIDIOC_QUERYCAP,struct v4l2_capability
1
2
3
4
5
6
7
8
9
10
v4l2_std_id std;
do {
ret= ioctl(fd, VIDIOC_QUERYSTD, &std);
} while (ret == -1 && errno == EAGAIN);
switch (std) {
case V4L2_STD_NTSC:
//……
case V4L2_STD_PAL:
//……
}
3. 选择视频输入,一个视频设备可以有多个视频输入。VIDIOC_S_INPUT,struct v4l2_input(可不要)
4. 设置视频的制式和帧格式,制式包括PAL,NTSC,帧的格式个包括宽度和高度等。
VIDIOC_S_STD,VIDIOC_S_FMT,struct v4l2_std_id,struct v4l2_format
1
2
3
4
5
6
7
8
9
10
11
struct v4l2_format fmt;
memset ( &fmt, 0, sizeof(fmt) );
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 320;
fmt.fmt.pix.height = 240;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_JPEG;
if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0)
{
printf("set format failed\n");
//return 0;
}
5. 向驱动申请帧缓冲,一般不超过5个。struct v4l2_requestbuffers
1
2
3
4
5
6
7
8
9
10
struct v4l2_requestbuffers req;
memset(&req, 0, sizeof (req));
req.count = 4;
req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
req.memory = V4L2_MEMORY_MMAP;
if (ioctl(fd,VIDIOC_REQBUFS,&req) == -1)
{
perror("VIDIOC_REQBUFS error \n");
//return -1;
}
6.申请物理内存
将申请到的帧缓冲映射到用户空间,这样就可以直接操作采集到的帧了,而不必去复制。将申请到的帧缓冲全部入队列,以便存放采集到的数据.VIDIOC_QBUF,struct v4l2_buffer
取消
评论
linux下usb的热插拔监控,怎么linux下检测 usb摄像头热插拔事件相关推荐
- linux 查看tdagent进程,Zabbix监控记录linux服务器近期的登录情况
通过zabbix自定义Items来监控服务器半年内的登录次数信息.开始配置之前,需要编写脚本,用于获取服务器的登录情况,脚本如下:[root@hm 09:14 AM ~ 1119]# cat logo ...
- Linux下自动检测USB热插拔
做嵌入式开发,尤其在网关.路由器或者其他支持USB设备的终端上,为了提高用户体验,我们常常需要支持自动识别并挂载USB设备功能.某些应用程序,在使用USB设备的过程中,也希望能够侦测到USB断开事件, ...
- linux的usb驱动失败,linux2.6.24下usb驱动完成情况及问题解决
1.在kernel启动是出现如下问题: mount: mounting tmpfs on /dev failed 解决方案如下, File systems --->Pseudo filesys ...
- linux下构建Zabbix网络监控平台
linux下构建Zabbix网络监控平台 由于图片过多,本人不想一张一张上传,请下载我的详细文章: linux下构建zabbix网络监控平台[技术文档](河南-清小小)-下载地址: http://do ...
- linux下进程监控6,Linux进程监控技术—精通软件性能测试与LoadRunner最佳实战(6)...
8.2.5 Linux操作系统进程监控技术 Linux在进程监控方面同样出色,不仅可以通过图形用户界面的管理工具,还可以用命令方式显示进程相关信息.像"Windows的任务管理器" ...
- linux下构建Smokeping网络监控平台
linux下构建Smokeping网络监控平台 一. Smokeping 简介 1.1 Smokeping简介: Smokeping 是rrdtool 的作者Tobi Oetiker 的作品,是用Pe ...
- linux安防监控,Linux平台下的安防监控系统设计与实现
摘要: 随着经济的飞速发展和科技进步,人们越来越关注居家安全,安防产品应运而生,其中安防监控系统更是备受关注.本文以提高安防系统的智能化水平为目标,设计和实现了一款Linux平台下的安全防范监控系统. ...
- linux 温度控制软件,linux下的cpu温度监控软件 lm-sensors
linux下的cpu温度监控软件 lm-sensors 发布时间:2008-09-05 00:27:46来源:红联作者:PCHCO 现在购买主机板时都会有厂商提供的监控软体可以使用,而最常使用到到功能 ...
- Linux下常用的系统监控软件
转载:http://blog.chinaunix.net/uid-25266990-id-3380929.html Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等 ...
最新文章
- Linux高性能网络:协程系列09-协程性能测试
- NDK相关概念与NDK开发步骤
- POI Excel表格合并,边框设置
- FFmpeg windows下载安装
- 【Java语法】关于使用new和不使用new的数组值传递还是引用传递的问题
- 状态管理工具vuex的基本使用(vuebus的理解)
- C#对用户密码使用MD5加密与解密
- python 按条件选择行和列数据_小白学数据结构-排序算法Python(冒泡、选择、快速、希尔等等)...
- 华为云实时数据处理“三剑客”
- Unity2D 小游戏之 RocketMouse
- PandasSQL数据处理对比
- 谷歌Cloud、Paly 中的XSS 漏洞可导致账户劫持
- 微信公众号注册已达上限怎么办?提升限额方法来了
- Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]
- unity调用高德地图
- 第一讲:计算机基本结构
- win10右键闪退到桌面_win10打开控制面板总闪退弹回桌面怎么办
- 用Python基本语法实现一个购物车功能
- 小雉配置--支持向上向下兼容的 配置文件 兼容性 设计
- 国产车规级MCU芯片又添一重量级成员,这次竟是国家队?稳了