问题描述
我正在尝试在应用程序中预览来自4K摄像机(Brio)的视频流。该应用程序使用DirectShow打开相机并接收帧。过滤器配置如下图所示。
问题是高分辨率(即4096x2160)。分辨率为4096x2160时,当我预览视频流时,GraphEdit和我的应用程序都会延迟。 我正在Windows 10上对此进行测试。请注意,Windows 10预装的Camera应用程序可以在此分辨率下完美运行。我也使用MediaCapture Api对UWP示例进行了尝试,但是问题是相同的。
我想念什么?
解决方法
Windows 10预装的Camera应用程序不使用DirectShow,使用基于Media Foundation API的完全不同的代码路径,并且在JPEG解压缩方面特别有效。也就是说,您不能直接将基于DirectShow的图形与Windows Store Camera应用程序正在执行的操作进行比较。
在您的情况下,MJPEG Decompressor Filter是与该分辨率不兼容的过时软件,并且是瓶颈。同样对于直播视频,DirectShow图形也必须具有Smart Tee Filter。
从性能方面考虑,我建议在Media Foundation上建立媒体管道,尽管这比较困难且文档和样本较少。