我有五个USB相机,相同品牌,相同型号(Canyon CNR-FWC120H)。它们用于监视24/7的不同场景。我需要以某种方式从Linux(Debian)控制台或以编程方式(任何语言)确定哪个摄像机。
我尝试查看的输出lsusb -vvv
,iSerial
每个摄像机的字段应该有所不同,但是很遗憾,该制造商决定不打扰,并且所有摄像机在该位置都具有相同的序列号:200901010001
是否有其他方法可以独立于所连接的USB端口来确定哪个摄像机是哪个摄像机,因为不幸的是,在我的特定情况下,我不能依靠同一摄像机始终连接到同一端口这一事实。
更新经过评论中的讨论,我意识到这是不可能完成的任务。因此,请不要忘记最后一段,或者,如果您有一些巧妙的想法,欢迎您提出。我现在很想知道是否可以将设备连接到哪个USB端口;我使用主板上的内置USB端口和其他PCI USB控制器卡来容纳具有足够带宽的相机。我将需要唯一地标识端口,并且例如在计算机重新启动并且由于某种原因USB控制器以不同的顺序初始化时,端口号/标识不应更改。那可能吗?
更新2我在其中一台摄像机的日志中看到以下信息:
[Wed Apr 30 18:35:02 2014] uvcvideo: Found UVC 1.00 device FULL HD 1080P Webcam (0bda:58b0)
[Wed Apr 30 18:35:02 2014] input: FULL HD 1080P Webcam as /devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
使用该命令,我调用了以下命令:
udevadm info --query=all --path=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
并得到了:
P: /devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
E: DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
E: EV=3
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_MODEL=FULL_HD_1080P_Webcam
E: ID_MODEL_ENC=FULL\x20HD\x201080P\x20Webcam
E: ID_MODEL_ID=58b0
E: ID_PATH=pci-0000:01:00.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_01_00_0-usb-0_2_1_0
E: ID_REVISION=5801
E: ID_SERIAL=Generic_FULL_HD_1080P_Webcam_200901010001
E: ID_SERIAL_SHORT=200901010001
E: ID_TYPE=video
E: ID_USB_DRIVER=uvcvideo
E: ID_USB_INTERFACES=:0e0100:0e0200:010100:010200:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=Generic
E: ID_VENDOR_ENC=Generic
E: ID_VENDOR_ID=0bda
E: KEY=100000 0 0 0
E: MODALIAS=input:b0003v0BDAp58B0e5801-e0,1,kD4,ramlsfw
E: NAME="FULL HD 1080P Webcam"
E: PHYS="usb-0000:01:00.0-2/button"
E: PRODUCT=3/bda/58b0/5801
E: PROP=0
E: SUBSYSTEM=input
E: UDEV_LOG=3
E: USEC_INITIALIZED=41090223
该相机之间不同的事情是DEVPATH
,ID_PATH
,ID_PATH_TAG
,PHYS
和(最有趣的)USEC_INITIALIZED
。现在,前四个元素可能与USB端口有关,但最后一个USEC_INITIALIZED
看起来像某种序列号。我找不到任何有关其实际代表的信息。有人知道吗?我认为这可能是相机初始化的时间(以微秒为单位),但是在此之后初始化的相机具有USEC_INITIALIZED=17919751
,然后是之后的那一秒,USEC_INITIALIZED=25609278
因此似乎相当随机。我将尝试重新启动系统,然后查看,但是我需要等待方便的时间才能这样做。
而且,如果有人想知道为什么我不只是尝试重新连接相机,看看是否仍然如此。答案是,我正在远程操作这台PC,并且正在调查所有这些信息,以使系统在将来可能发生的任何潜在事件中实现完全自治。例如,这可能包括从USB端口断开相机的连接。