原版WPF MediaKit在捕获摄像头视频时,如果不使用640*480分分辨率输出,会出现NewVideoSample事件不被触发的问题。
经数日摸索,终于明白SetVideoCaptureParameters(graphBuilder, m_captureDevice, Guid.Empty);这行代码存在问题。使用默认的压缩类型可能因数据量过大而传输速度跟不上,经果就是ISampleGrabber丢弃回调。
对症下药,换成 SetVideoCaptureParameters(graphBuilder, m_captureDevice, MediaSubType.MJPG); // Change default compression to MJPG.
立马解决问题!
WPF MediaKit真的不错,困扰许久的视频问题有办法了。