gpt4 book ai didi

c++ - 高于 FullHD 分辨率的帧丢失。MediaFoundation 中是否提供 AVI 解压缩器转换过滤器?

转载 作者:太空狗 更新时间:2023-10-29 21:35:40 26 4
gpt4 key购买 nike

我正在使用 SourceReader MediaFoundation 技术为桌面开发多媒体流应用程序。

我正在使用 USB 摄像头设备显示流媒体。相机支持两种视频格式:YUY2 和 MJPG

对于 1980x1080p YUY2 视频分辨率,60fps 仅接收 48fps。我从 MSDN 页面获取 YUY2-RGB32 转换并在我的应用程序中使用(注意:我没有使用任何转换过滤器进行颜色转换)。

对于MJPG 视频格式,我使用MJPEG Decoder MFT 转换MJPG - YUY2 - RGB32,然后使用Direct3D9 显示在窗口上。对于特定分辨率,我面临帧率从 60fps 下降到 30fps(Ex: 1920x1080 60fps 但仅绘制 30-33fps)。

两种方式,我在Graphedit中验证以确认过滤器:

  1. 添加了 MJPEG 解压缩器过滤器,并为 MJPG 视频格式构建图表以检查全高清分辨率的 fps 及其在 60fps 时显示 28fps。

  2. 添加了 AVI 解压缩器过滤器,并为 MJPG 视频格式构建了图表,以检查全高清分辨率的 fps 及其显示的 60fps。

我在很多网站上搜索过用于媒体基础的 AVI 解压器,但没有成功。

有人确认,MFT 中是否有可用的过滤器?

最佳答案

Microsoft 随 [最新版本的] Windows 提供库存 Motion JPEG 解码器:

据我所知,它们不共享代码库,但是两者都不是性能高效的解码器。

您使用 GraphEdit 意味着您正在尝试使用 DirectShow 解码器,而 AVI 解压器可能正在使用您未识别的另一个(Windows 视频)编解码器。

对于 Media Foundation,您可以使用 Intel Hardware M-JPEG Decoder MFT 或 NVIDIA MJPEG Video Decoder MFT,前提是您拥有各自的硬件和驱动程序。据推测,供应商特定的解码器提供更好的性能,并且与通用软件同行相比也具有更高的优先级。除此之外,对于 MFT 外形规范,您可能需要查看商业解码器和/或定制开发,因为 API 本身并不是很受欢迎,无法提供广泛的选项。

关于c++ - 高于 FullHD 分辨率的帧丢失。MediaFoundation 中是否提供 AVI 解压缩器转换过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41742064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com