我正在开发一个 USB 重定向软件,它通过在客户端机器上添加一个虚拟 USB 设备来重定向网络上的 USB 设备。一切正常,但客户抱怨说,当他连接分辨率为 640X480 的网络摄像头时,100 Mbps 网络阻塞。我已经在 1 Gbps 适配器上测试了网络摄像头,它使用了大约 16% (160 Mbps) 的带宽。网络摄像头应该占用这么多带宽吗?无论如何,他希望网络使用率低于 50 Mbps。
我尝试压缩从 DeviceIoControl 获得的数据,然后在客户端将其解压缩,然后再将其传递给 DeviceIoControl。适用于文件传输,但视频停止工作,带宽下降到 50 Mbps 左右。我曾尝试在发送数据之前添加短暂的延迟,但这也会导致黑屏。现在我正在考虑以某种方式将相机分辨率强制降低到 320X240。我不确定是否有任何其他方法可以减少 DeviceIoControl 抛出的数据。
如果您能分享您的想法并引导我朝着正确的方向前进,我将不胜感激。提前致谢。
编辑:
它是一个 YUV2 格式的网络摄像头。
是否有任何开源库可用于降低 Windows 平台上网络摄像头的帧速率或分辨率?