MFFrameRateToAverageTimePerFrame 函数 (mfapi.h)
将视频帧速率转换为帧持续时间。
语法
HRESULT MFFrameRateToAverageTimePerFrame(
[in] UINT32 unNumerator,
[in] UINT32 unDenominator,
[out] UINT64 *punAverageTimePerFrame
);
parameters
[in] unNumerator
帧速率的分子。
[in] unDenominator
帧速率的分母。
[out] punAverageTimePerFrame
接收视频帧的平均持续时间(以 100 纳秒为单位)。
返回值
如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
在给定帧速率的情况下,此函数可用于计算样本的时间戳。
此外,在较旧的 VIDEOINFOHEADER 和 VIDEOINFOHEADER2 格式结构中使用每帧的平均时间。 此函数提供标准转换,以便管道中的所有组件都可以使用一致的值,前提是它们需要在旧格式结构和媒体基础中使用的媒体类型属性之间进行转换。
对于某些常见的帧速率, 函数从查找表中获取帧持续时间:
浮点) (每秒帧数 | (小数) 每秒帧数 | 每帧的平均时间 |
---|---|---|
59.94 | 60000/1001 | 166833 |
29.97 | 30000/1001 | 333667 |
23.976 | 24000/1001 | 417188 |
60 | 60/1 | 166667 |
30 | 30/1 | 333333 |
50 | 50/1 | 200000 |
25 | 25/1 | 400000 |
24 | 24/1 | 416667 |
大多数视频内容使用此处列出的帧速率之一。 对于其他帧速率, 函数计算持续时间。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfapi.h |
Library | Mfplat.lib |
DLL | Mfplat.dll |