Aforge VideoCapabilities列表 - 可能不完整吗?

时间:2016-02-24 07:46:01

标签: c# webcam tablet aforge

我在c#app中使用aForge.NET库来访问平板电脑Lenovo Yoga 2(内置摄像头)上的摄像头设备。

我正在尝试设置流的特定(最大可能)分辨率。为此,我正在使用VideoCaptureDevice对象的VideoCapabilities属性。 我相信VideoCapabilities列表并不完整。我的问题是“为什么?”是否有可能重新审视它们(VideoCapabilities)?

否则,如果没有办法获得更高的分辨率,如何检查并确保我的内置摄像头仅运行从VideoCapabilities属性中恢复的那些?

是什么让我相信我应该看到更多的结果:

  • 我已使用DirectShowCaptureCapabilities-Win32.exe应用程序检查了DirectShow功能。它给了我更多的能力。例如我正在尝试设置的1280x960。

  • 运行默认Windows应用程序(从平板电脑锁定屏幕)后,我看到更大分辨率的预览 - 可能是1280x960

  • 从2.2.5版本库中的示例aForge.NET应用程序(Snapshot Maker)运行代码我获得了5种不同的功能,同时使用2.2.0版本的库运行相同的代码,为我提供了10种不同的功能

代码是:

videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice );
...
videoDevice = new VideoCaptureDevice( videoDevices[devicesCombo.SelectedIndex].MonikerString );
videoCapabilities = videoDevice.VideoCapabilities;// that gives me not full list of capabilities
...
videoDevice.VideoResolution = videoCapabilities[videoResolutionsCombo.SelectedIndex];

1 个答案:

答案 0 :(得分:2)

经过一番发现,这就是我所取得的成就

Aforge开发者告诉我:

  

列表可能不完整。特别是在这些现代平板电脑上   倾向于提供高分辨率,但每像素值的位数很小。

     

首先,所有12个bpp分辨率都被忽略,因为导致问题   VideoCaptureDevice。在修复之前,这些决议被忽略了。   其次,从代码中可以看出,只有最高的BPP才是   报道。所以,如果你有两个分辨率,如640x480x32和   640x480x24,然后只显示x32。

这是code

此外,如果你们中的任何人有类似的问题 - 请注意,相机不仅通过流行的DirectShow界面,还有其他人或可能拥有自己的API来展示他们的功能。所以也试着看看这些。

我只想通过MediaCapture Api向我提供我想要实现的决议。但这专用于Windows Store Aps / UWP。 在Windows 8 / 8.1桌面应用程序中很容易找到使用它的方法。