我正在开发一个USB重定向软件,该软件通过在客户端机器上添加虚拟USB设备来重定向网络上的USB设备。一切正常,但客户抱怨说,当他连接一个640X480分辨率的摄像头时,100 Mbps的网络卡住了。我已经在1Gbps适配器上测试了网络摄像头,它使用了大约16% (160 Mbps)的带宽。网络摄像头应该占用这么多带宽吗?无论如何,他希望网络使用率低于50 Mbps。
我尝试过对从DeviceIoControl获取的数据进行压缩,然后在将其传递给DeviceIoControl之前在客户端进行解压缩。适用于文件传输,但视频停止工作,带宽降至50 Mbps左右。我尝试在发送数据之前添加短暂的延迟,但这也会导致黑屏。现在,我正在考虑以某种方式强制将相机分辨率降低到320X240。我不确定是否有其他方法可以减少DeviceIoControl抛出的数据。
如果您能分享您的想法并将我引向正确的方向,我将不胜感激。提前谢谢。
编辑:
这是一个YUV2格式的摄像头。
有没有什么开源库可以用来降低windows平台上摄像头的帧率或分辨率?
发布于 2012-05-13 02:25:16
如果数据未压缩: 640 px/行×480行/帧×30帧/秒×24位/px≈211 Mbps
您可以查看网络摄像头的文档是否支持某种压缩或帧率控制。
https://stackoverflow.com/questions/10566275
复制相似问题