分页: 1 / 1

ubuntu18.04一个摄像头在/dev下对应两个video怎么回事

发表于 : 2020-01-15 22:08
你好我叫椰子
如题,笔记本前置摄像头对应video0和video1,插一个usb摄像头多video2和video3,太遭心了 :Cry 有没有大佬能帮帮我

Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事

发表于 : 2020-01-16 9:49
astolia
正常现象。一个是图像/视频采集,一个是metadata采集
你用

代码: 全选

v4l2-ctl --device=/dev/video*
就应该能看到一个是Video Capture,一个是Metadata Capture

相关代码 https://git.kernel.org/pub/scm/linux/ke ... f66a86545a
相关文档 https://linuxtv.org/downloads/v4l-dvb-a ... -meta.html

Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事

发表于 : 2020-01-16 15:39
你好我叫椰子
那有没有能够屏蔽掉metadata capture的办法。我现在需要使用的是video capture,用udev去绑定新加入的usb设备后,绑定的是这两个之间的随机一个,这样绑定就没意义了

Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事

发表于 : 2020-01-16 17:30
astolia
本来可以直接给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

Re: ubuntu18.04一个摄像头在/dev下对应两个video怎么回事

发表于 : 2020-01-16 18:29
你好我叫椰子
:Smile 好吧谢谢大佬