在 V4L2 中重命名设备?

在 V4L2 中重命名设备?

我有 4 个相同的 HDMI -> USB 3 捕获设备,用于直播。效果很好。在初始安装时经过一些一次性的反复试验后,广播制作软件总能将它们保持正确。

然而,我们有时会与同一个消息来源之一举行远程会议,当我开始会议时,我得到了以下信息:

在此处输入图片描述

经过更多的反复试验后,我才知道我总是想要列表中的第二个,但这是我想摆脱的一点部落知识。物理上重新排列 USB 插头(关闭电源时)不会重新排列显示的列表,但会弄乱广播软件。当我发现这一点时,捕获设备本身已经被绑定了,因此重新排列它们的输入有点困难。此外,如果其中一个需要更换,这也可能会打乱一个精心排序但仍自动的列表。

我可以在每个插槽中输入自定义名称,使其在重启后仍然有效,以便其他人可以看到他们实际选择的内容吗?
或者更好的是,这样 Web 浏览器就可以自动选择该源,因为它似乎是通过名称的第一个匹配项来完成的?


以下是广播软件向我显示的内容(请注意每个内容的附加标识符):

在此处输入图片描述

下面是输出lsusb

hrcc@hrcclivemedia:~$ lsusb
Bus 006 Device 002: ID 1bcf:2c99 Sunplus Innovation Technology Inc. FHD Capture
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 1bcf:2c99 Sunplus Innovation Technology Inc. FHD Capture
Bus 003 Device 003: ID 1bcf:2c99 Sunplus Innovation Technology Inc. FHD Capture
Bus 003 Device 002: ID 1bcf:2c99 Sunplus Innovation Technology Inc. FHD Capture
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 08bb:2902 Texas Instruments PCM2902 Audio Codec
Bus 001 Device 004: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
Bus 001 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 007: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 001 Device 006: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 001 Device 002: ID 0a05:7211 Unknown Manufacturer hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
hrcc@hrcclivemedia:~$ 

hrcc@hrcclivemedia:~$ lsusb -t
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 1: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 5000M
    |__ Port 1: Dev 2, If 3, Class=Audio, Driver=snd-usb-audio, 5000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 2: Dev 2, If 3, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 2: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 2: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 2: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 3: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 3: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 3: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 3: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 4: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 4: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 4: Dev 4, If 2, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 4: Dev 4, If 3, Class=Audio, Driver=snd-usb-audio, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 12M
        |__ Port 3: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 7, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=pl2303, 12M
    |__ Port 5: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 6: Dev 5, If 2, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 6: Dev 5, If 0, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 6: Dev 5, If 3, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 6: Dev 5, If 1, Class=Audio, Driver=snd-usb-audio, 12M
hrcc@hrcclivemedia:~$ 

答案1

实际上您无法更改它,因为您在列表中看到的是 USB 设备在其配置描述符中发送的名称。您可以破解内核来更改它。如果您是高级用户,您可以通过修改 USB 子系统源代码来破解内核,或者使用 eBPF(或 kprobes/kretprobes)来修改 USB 子系统。此外,您可以尝试破解 libusb,例如将序列号附加到设备名称后。

相关内容