如何在IMFSinkWriter上获取ICodecAPI接口 [英] How to get ICodecAPI interface on IMFSinkWriter

查看:286
本文介绍了如何在IMFSinkWriter上获取ICodecAPI接口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用IMFSinkWriter在mp4容器中编码H.264格式的视频。

I am trying to use IMFSinkWriter to encode H.264 format video in mp4 container.

我可以设置几个属性,例如:帧速率,隔行扫描模式,配置文件等等。

I can set several attributes, ex: frame rate, interlace mode, profile...etc.

并且帧可以成功编码。

但是当我我试图设置B图片计数或GOP大小,我发现这需要ICodecAPI接口。

But when I tried to set B picture count or GOP size, I found this needs ICodecAPI interface.

我试图从IMFSinkWriter获取ICodecAPI接口,但我失败了。

I tried to get ICodecAPI interface from IMFSinkWriter, but I failed.

我看到msdn说"获取ICodecAPI接口指针,在MFT上调用QueryInterface"。

And I see the msdn said "to get a ICodecAPI interface pointer, call QueryInterface on the MFT".

http://msdn.microsoft.com/en-us/library/windows/desktop/dd797816(v=vs.85 ).aspx

这是否意味着IMFTransform支持ICodecAPI接口,而不是IMFSinkWriter?

Does this mean ICodecAPI interface supported on IMFTransform, not IMFSinkWriter?

是否有任何方法可以获取ICodecAPI接口指针来自  IMFSinkWriter?

Is there any method to get ICodecAPI interface pointer from IMFSinkWriter?

感谢您的帮助。

Thanks for your help.

推荐答案

调用IMFSinkWriter :: GetServiceForStream,将GUID_NULL传递给guidService参数,以便为该流使用QueryInterface。
Call IMFSinkWriter::GetServiceForStream, passing GUID_NULL to the guidService parameter to use QueryInterface for that stream.


这篇关于如何在IMFSinkWriter上获取ICodecAPI接口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆