windows-10 - 4K MJPEG 相机视频预览延迟(在 Windows 10 上)
问题描述
我正在尝试在我的应用程序中预览来自 4K 相机 (Brio) 的视频流。该应用程序使用 DirectShow 打开相机并接收帧。过滤器配置如下图所示。
问题在于高分辨率(即 4096x2160)。使用 4096x2160 分辨率,当我预览视频流时,GraphEdit 和我的应用程序都有延迟。我正在 Windows 10 上对此进行测试。请注意,Windows 10 预装的相机应用程序在此分辨率下完美运行。我也使用 MediaCapture Api 对 UWP 示例进行了同样的尝试,但问题是一样的。
我错过了什么?
解决方案
Windows 10 预装的 Camera 应用程序不使用 DirectShow,使用基于 Media Foundation API 的完全不同的代码路径,特别是在 JPEG 解压缩方面整体效率更高。也就是说,您无法直接将基于 DirectShow 的图表与 Windows Store Camera 应用程序正在执行的操作进行比较。
在您的情况下, MJPEG Decompressor Filter是一个过时的软件,与此分辨率不兼容,是一个瓶颈。另外对于直播视频 DirectShow 图形需要有Smart Tee Filter。
性能方面,我建议在 Media Foundation 上构建媒体管道,尽管它更困难并且文档和示例更少。
推荐阅读
- html - 修复与标题高度重叠的菜单项
- python - python bokeh保存问题和标签消失,并显示问题
- java - 谷歌地图片段滚动和拖动生涩
- matlab - 在 Matlab 中对 y 轴标签进行分组
- visual-studio - LuaRock Visual Studio 命令提示错误
- ajax - 即使使用 Ajax Listener 也提交了整个表单
- r - 手动创建ggplot图例
- sidekiq - Rails 和 ActiveJobs - 我可以像线程一样“加入”它们吗?
- php - 使用 ajax 将 data-attr 值发布到 php 发布空数据
- c++ - Days.obj 中已经定义了奇怪的错误“float percentOfOres”(?percentOfOres@@3MA)