ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
-
- 帖子: 3
- 注册时间: 2020-01-11 17:28
- 系统: 18.04
ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
如题,笔记本前置摄像头对应video0和video1,插一个usb摄像头多video2和video3,太遭心了 有没有大佬能帮帮我
- astolia
- 论坛版主
- 帖子: 6445
- 注册时间: 2008-09-18 13:11
Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
正常现象。一个是图像/视频采集,一个是metadata采集
你用
就应该能看到一个是Video Capture,一个是Metadata Capture
相关代码 https://git.kernel.org/pub/scm/linux/ke ... f66a86545a
相关文档 https://linuxtv.org/downloads/v4l-dvb-a ... -meta.html
你用
代码: 全选
v4l2-ctl --device=/dev/video*
相关代码 https://git.kernel.org/pub/scm/linux/ke ... f66a86545a
相关文档 https://linuxtv.org/downloads/v4l-dvb-a ... -meta.html
-
- 帖子: 3
- 注册时间: 2020-01-11 17:28
- 系统: 18.04
Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
那有没有能够屏蔽掉metadata capture的办法。我现在需要使用的是video capture,用udev去绑定新加入的usb设备后,绑定的是这两个之间的随机一个,这样绑定就没意义了
- astolia
- 论坛版主
- 帖子: 6445
- 注册时间: 2008-09-18 13:11
Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
本来可以直接给udev规则里加个条件限制,要求ID_V4L_CAPABILITIES属性里面必须要有:capture:,就可以不让它去处理metadata设备。但是18.04里面的udev相关代码有个bug,导致分不出来 https://github.com/systemd/systemd/comm ... adf1d096fd
要么自己写个程序用ioctl向设备发送VIDIOC_QUERYCAP控制码,检查设备是V4L2_CAP_VIDEO_CAPTURE、V4L2_CAP_VIDEO_CAPTURE_MPLANE还是V4L2_CAP_META_CAPTURE,参考上面链接v4l_id的源码和 /lib/udev/rules.d/60-persistent-v4l.rules 中对v4l_id的调用,给设备加上个属性。
也可以把最新的v4l_id代码自己编译一下,替换掉存在bug的/lib/udev/v4l_id
要么自己写个程序用ioctl向设备发送VIDIOC_QUERYCAP控制码,检查设备是V4L2_CAP_VIDEO_CAPTURE、V4L2_CAP_VIDEO_CAPTURE_MPLANE还是V4L2_CAP_META_CAPTURE,参考上面链接v4l_id的源码和 /lib/udev/rules.d/60-persistent-v4l.rules 中对v4l_id的调用,给设备加上个属性。
也可以把最新的v4l_id代码自己编译一下,替换掉存在bug的/lib/udev/v4l_id
-
- 帖子: 3
- 注册时间: 2020-01-11 17:28
- 系统: 18.04
-
- 帖子: 2
- 注册时间: 2021-09-15 20:18
- 系统: ubuntu18.04
Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
你好,我在编译v4l_id的时候一直无法找到fd-util.h和util.h
- astolia
- 论坛版主
- 帖子: 6445
- 注册时间: 2008-09-18 13:11
Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
这些都是systemd代码的一部分,把整个systemd的代码下载下来,src/basic里面就有
https://github.com/systemd/systemd/tree/main/src/basic
-
- 帖子: 2
- 注册时间: 2021-09-15 20:18
- 系统: ubuntu18.04
Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事
好的,谢谢,我尝试一下