1

我正在尝试在我的应用程序中预览来自 4K 相机 (Brio) 的视频流。该应用程序使用 DirectShow 打开相机并接收帧。过滤器配置如下图所示。

在此处输入图像描述

问题在于高分辨率(即 4096x2160)。使用 4096x2160 分辨率,当我预览视频流时,GraphEdit 和我的应用程序都有延迟。我正在 Windows 10 上对此进行测试。请注意,Windows 10 预装的相机应用程序在此分辨率下完美运行。我也使用 MediaCapture Api 对 UWP 示例进行了同样的尝试,但问题是一样的。

我错过了什么?

4

1 回答 1

1

Windows 10 预装的 Camera 应用程序不使用 DirectShow,使用基于 Media Foundation API 的完全不同的代码路径,特别是在 JPEG 解压缩方面整体效率更高。也就是说,您无法直接将基于 DirectShow 的图表与 Windows Store Camera 应用程序正在执行的操作进行比较。

在您的情况下, MJPEG Decompressor Filter是一个过时的软件,与此分辨率不兼容,是一个瓶颈。另外对于直播视频 DirectShow 图形需要有Smart Tee Filter

性能方面,我建议在 Media Foundation 上构建媒体管道,尽管它更困难并且文档和示例更少。

于 2020-08-13T20:48:34.367 回答