使用 Media Foundation .NET 从 MP4 获取帧速率

Posted

技术标签:

【中文标题】使用 Media Foundation .NET 从 MP4 获取帧速率【英文标题】:Obtain frame rate from MP4 with Media Foundation .NET 【发布时间】:2013-07-17 19:50:48 【问题描述】:

我想获取 MP4 视频文件的每秒帧数。由于 DirectShow 不支持 MP4,我正在寻找其他替代方案,例如 Media Foundation。问题是,经过数小时的谷歌搜索,我无法找到一个学习如何使用 MediaFoundation 的示例。我所发现的都是 C++,我使用 VB 或 C#,从来不知道如何完成这个简单的任务。

【问题讨论】:

您应该能够通过 Windows 7+ IPropertyStorePKEY_Video_FrameRate 获得此信息。 DirectShow 解决方案简单但涉及第三方组件。 您的解决方案帮了大忙,非常感谢! 【参考方案1】:

Windows 7(可能还有 Windows Vista)为您提供了 shell API 来访问媒体文件属性。这包括MPEG-4文件中视频流的帧率(.MP4),因此可以通过IPropertyStore接口访问属性存储中的PKEY_Video_FrameRate属性来获取帧率。

【讨论】:

以上是关于使用 Media Foundation .NET 从 MP4 获取帧速率的主要内容,如果未能解决你的问题,请参考以下文章

使用 Media Foundation SDK 进行直播

使用 Microsoft Media Foundation 从文件播放视频

Windows Media Foundation 枚举音频设备

如何使用 Media Foundation 从 IMFSourceReader 播放音频缓冲区

Media Foundation 捕获的视频是垂直镜像的

Media Foundation 将音频流添加到视频文件