Extrenal网络摄像头显示黑屏与WPFMediaKit

时间:2015-06-07 12:31:03

标签: c# wpf webcam directshow wpf-mediakit

我使用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();

1 个答案:

答案 0 :(得分:0)

此主题概述了WPFMediaKit和YUV-only相机的问题:

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

此主题概述了Windows Update从Lifecam Studio驱动程序中删除RGB24选项的问题:

DirectShow - Microsoft LifeCam Studio - RBG24 format lost

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

  

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