2012-05-12 200 views
1

我正在研究通过在客户机上添加虚拟USB设备来重定向网络上的USB设备的USB重定向软件。一切正常,但客户抱怨说,当他连接一个摄像头640X480分辨率,100 Mbps网络扼流圈。我已经在1 Gbps适配器上测试了网络摄像头,并使用了大约16%(160 Mbps)的带宽。网络摄像机是否需要这么多带宽?无论如何他希望网络使用率低于50 Mbps。通过C++中的套接字传输限制数据

我试过压缩数据,从DeviceIoControl获取,然后在将其传递到DeviceIoControl之前在客户端解压缩。适用于文件传输,但视频停止工作,带宽降至50 Mbps左右。我曾尝试在发送数据前添加短暂延迟,但这也会导致黑屏。现在我正在想方设法将相机分辨率降低到320X240。我不确定是否有其他方式减少DeviceIoControl抛出的数据。

如果你能分享你的想法并带领我走向正确的方向,我将非常感激。提前致谢。

编辑:

它是一个YUV2格式的网络摄像头。

是否有任何开源库可以用来降低Windows平台上的摄像头的帧率或分辨率?

+1

听起来像你想要实现更多的降低帧率。那么分辨率就不那么重要,分辨率更高,帧率更低。 –

+0

有没有办法降低摄像头的帧率?我可以使用哪些开源库与网络摄像头进行交互? – umair

回答

1

如果数据是未压缩的:640像素/线× 480行/帧× 30帧/秒× 24比特/像素≈ 211 Mbps的

可以检查网络摄像头的文档是否支持某种压缩或帧速率控制。

+0

它是一个YUV2格式的网络摄像头。 – umair

+0

@umair:什么是YUV2?那是12bpp吗?那么你有一半的速度。 –

+0

YUV2是16bpp,这意味着未压缩的数据大约是150 Mbps – umair