C++ 获取视频文件的本机视频分辨率 我目前正在为一个媒体基金会玩家编写一些自定义EVR。
到目前为止,一切正常,但我需要找到我正在渲染的视频文件的本机分辨率 我尝试使用IBasicFilter2接口来使用getVideoSize、get\u VideoHeight或其他get\u SourceWidth等。。。但它总是给我一个电子接口 那么,有没有人有办法获得视频文件的分辨率呢?即使它有一个很好的灯光库…只是大小没有别的…Windows设法在文件浏览器中找到它,但我完全无法从代码中获得它C++ 获取视频文件的本机视频分辨率 我目前正在为一个媒体基金会玩家编写一些自定义EVR。,c++,video,directshow,resolution,ms-media-foundation,C++,Video,Directshow,Resolution,Ms Media Foundation,到目前为止,一切正常,但我需要找到我正在渲染的视频文件的本机分辨率 我尝试使用IBasicFilter2接口来使用getVideoSize、get\u VideoHeight或其他get\u SourceWidth等。。。但它总是给我一个电子接口 那么,有没有人有办法获得视频文件的分辨率呢?即使它有一个很好的灯光库…只是大小没有别的…Windows设法在文件浏览器中找到它,但我完全无法从代码中获得它 谢谢 您可以在DirectShow中使用IMediaDet来获取媒体文件中流的信息,包括视频流的
谢谢 您可以在DirectShow中使用IMediaDet来获取媒体文件中流的信息,包括视频流的分辨率 不过也有一些警告,所以您可能需要一种备份方法 您需要注册合适的DirectShow筛选器,以了解正在检查的媒体文件。您安装的过滤器可能会产生错误的结果,例如,为忽略文件中任何视频流的媒体类型注册了仅音频过滤器 它目前已被弃用,MSDN参考页上没有说明是什么取代了此功能。由于头文件已从Windows SDK中删除,因此构建它也可能是一件痛苦的事情 这里有一个例子说明这种方法不起作用。。。
您是否希望在EVR的上下文中获得本机版本?如果是这样,这将是困难的,因为你现在知道什么过滤器之间你和解码视频信号。如果您的应用程序只需要它,请查看Media Foundation的源代码阅读器。