1

WPFMediaKit用来显示来自网络摄像头的实时流。我在 Surface Pro 3(具有 2 个集成摄像头 - 前后)上运行我的应用程序。

我正在尝试从外部网络摄像头(Microsoft LifeCam Studio)获取实时信息,但是当我将其更改VideoSource为外部网络摄像头时,我看到黑屏(摄像头已打开但没有信息源)。

其他内置摄像头运行良好,并且摄像头在其他应用程序(如Skype)上运行良好,所以我猜这是WpfMediaKit.

这是我的代码:

<WPFMediaKit:VideoCaptureElement x:Name="videoCapElement"
    DesiredPixelWidth="320"
    DesiredPixelHeight="240"                                 
    Stretch="Fill"
    HorizontalAlignment="Stretch"
    VerticalAlignment="Stretch"
    FPS="30" />  

videoCapElement.VideoCaptureSource = "Microsoft LifeCam Studio";
videoCapElement.Play();
4

1 回答 1

0

该线程概述了 WPFMediaKit 和 YUV-only 相机的问题:

https://wpfmediakit.codeplex.com/discussions/272676

此线程概述了 Windows 更新的问题,该更新从 Lifecam Studio 驱动程序中删除了 RGB24 选项:

DirectShow - Microsoft LifeCam Studio - RBG24 格式丢失

如果不复制您的设置,我将很难对此进行测试,但我认为您的 Lifecam Studio 已失去其 RGB24 选项是合理的。用户 pc25 在上面的 codeplex 线程中发布了一个响应(2014 年 5 月 9 日晚上 10:10),建议对 WPF MediaKit 的 VideoCapturePlayer.cs 进行更改,这应该可以解决问题。这些改动过于广泛,无法在此处完整发布,但 pc25 总结了他的方法:

原来我的相机无法以 rgb 流式传输(仅 yuv2 和其他一些格式)。在我的情况下,SampleGrabber 无法连接到相机的输出引脚,因为格式不匹配(SampleGrabber 需要 RGB24)。我的修改检测输出引脚上是否有 YUV2 格式,并在渲染器和 DirectShow 自动添加颜色空间转换块之前添加采样采集器。

于 2015-06-11T11:30:49.183 回答