所以,我只是在考虑一些事情: 理论上是否可以将诸如Switch与USB-C之类的东西连接到PC并执行类似于通过软件模拟捕获卡的操作。我对C型的规格做了一些阅读,我不确定这样的事情是否可行。我认为这样的事情也必须是相当低级的。
答案 0 :(得分:4)
USB协议按照设备类进行组织,即大容量存储设备类,通信设备类(CDC)以及 USB视频设备类(UVC)几乎所有现代相机设备都实现了此UVC类并且您可以使用vlc
https://en.wikipedia.org/wiki/USB_video_device_class
https://ubuntuforums.org/showthread.php?t=143732 - 如何:使用VLC将视频从网络摄像头捕获到文件
USB-C标准是连接器的物理布局,它不会改变USB标准的基本组织结构,例如它在设备类中的区别,因此有带USB-C连接器的UVC设备,搜索互联网即'网络摄像头USB-C'但USB-C 通过备用模式扩展端口的功能,因此也使用具有不同固件和内核模块的不同端口控制器
Alt Mode是USB-C的功能扩展,使USB连接能够承载非USB信号。
来源:https://blog.startech.com/post/tech-talk-using-usb-c-and-displayport-over-alt-mode/
https://en.wikipedia.org/wiki/USB-C
我不完全理解的是,如果您想通过USB + C通过 USB-C HDMI备用模式( https://en.wikipedia.org/wiki/HDMI#HDMI_Alternate_Mode_for_USB_Type-C )捕获HDMI流。在这种情况下,没有USB视频设备协议(HDMI是不同的协议),情况更复杂,请参阅https://superuser.com/questions/1218848/hdmi-input-through-usb-c和https://superuser.com/questions/1192638/whats-up-with-hdmi-and-displayport-over-usb-c
有活动的HDMI到USB视频采集卡,可将HDMI流转换为视频格式,然后通过USB视频类协议传输或直接传输到原始像素数据。此原始像素数据也包含在USB视频类协议(https://devtalk.nvidia.com/default/topic/970330/how-to-handle-raw-from-usb-cameras/?offset=2)中:
其他视频捕获解决方案将您的视频压缩到容器中 像H.264或Motion JPG ,所以它足够小,可以适应USB 2.0 总线(最大数据传输速率为60 MB / s的介质)。当它 到达您的计算机,CPU和/或GPU需要工作 解压缩此图像,然后使用您的编码设置重新编码。 使用这种类型的预压缩视频,它永远不可能获得 返回压缩中丢失的全部细节。
相比之下,我们的AV.io系列HDMI采集卡发送原始像素 通过USB 3.0将数据传输到您的计算机(最大传输速度为640 MB / s)。 当您的软件收到此流时,它不需要解码它, 所以没那么繁重。
来源:https://www.epiphan.com/blog/easiest-hdmi-to-usb-converter/
原始像素数据可以在HDMI备用模式下通过USB-C传输,可以直接从USB-C捕获HDMI流,但是存在一个主要缺点:
有问题的是,在USB(-C)协议中,机器可以是a 主机或设备或双重角色:
USB树中的设备可能是主机(DFP:面向下游的端口)或外围设备 (UFP:面向上游的端口)。有些手机,比如手机,可以拿走 两种角色取决于另一端检测到的类型。这些 端口类型称为双角色数据(DRD)端口,这是已知的 在之前的规范中作为USB On-The-Go。[12]
只能是一个主机,并且在大多数情况下,计算机作为主机担任此角色。 USB-C输入或显示器等外围设备处于设备或外围模式。如果您无法将计算机设置为设备或外围设备模式,则由于USB协议,您将无法通过USB-C捕获HDMI信号
关键是USB-C端口控制器的固件和内核模块/驱动程序
linux USB-C内核模块位于 https://github.com/torvalds/linux/blob/master/drivers/usb/host/xhci.c 和 https://cateee.net/lkddb/web-lkddb/TYPEC_TCPM.html 中,定义为USB-C host < / strong>或仅面向下游的端口,因此无法将其用作HDMI接收器或面向上游的端口,因此无法将其用作输入并从中捕获... < / p>
无法将USB-C端口设置为设备模式或面向上游的端口模式是必须使用外部适配器的原因 作为USB外设或面向上游的端口模式的USB-C设备的示例是https://9to5mac.com/2016/06/04/lg-27ud88-w-usb-c-4k-monitor-macbook-review/,因此在此设备中运行通过USB-C连接器处理HDMI流的固件,但是在USB协议中它实现了一个面向上游的端口,这是计算机或笔记本电脑由于其实现USB主机或面向下游的端口的硬件限制而无法实现的。