Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取视频文件的本机视频分辨率 我目前正在为一个媒体基金会玩家编写一些自定义EVR。_C++_Video_Directshow_Resolution_Ms Media Foundation - Fatal编程技术网

C++ 获取视频文件的本机视频分辨率 我目前正在为一个媒体基金会玩家编写一些自定义EVR。

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来获取媒体文件中流的信息,包括视频流的

到目前为止,一切正常,但我需要找到我正在渲染的视频文件的本机分辨率

我尝试使用IBasicFilter2接口来使用getVideoSize、get\u VideoHeight或其他get\u SourceWidth等。。。但它总是给我一个电子接口

那么,有没有人有办法获得视频文件的分辨率呢?即使它有一个很好的灯光库…只是大小没有别的…Windows设法在文件浏览器中找到它,但我完全无法从代码中获得它


谢谢

您可以在DirectShow中使用IMediaDet来获取媒体文件中流的信息,包括视频流的分辨率

不过也有一些警告,所以您可能需要一种备份方法

您需要注册合适的DirectShow筛选器,以了解正在检查的媒体文件。您安装的过滤器可能会产生错误的结果,例如,为忽略文件中任何视频流的媒体类型注册了仅音频过滤器

它目前已被弃用,MSDN参考页上没有说明是什么取代了此功能。由于头文件已从Windows SDK中删除,因此构建它也可能是一件痛苦的事情

这里有一个例子说明这种方法不起作用。。。

您是否希望在EVR的上下文中获得本机版本?如果是这样,这将是困难的,因为你现在知道什么过滤器之间你和解码视频信号。如果您的应用程序只需要它,请查看Media Foundation的源代码阅读器。