1

我正在测试如何使用 MS Media Foundation SDK 集成 libavcodec (http://en.wikipedia.org/wiki/Libavcodec),以便将 h264 无损格式视频解码为 YUV/RGB 原始数据

我有两个问题:

  1. 我在将使用 h264/AVC(常规,非无损格式)编码的 mp4 视频加载到 MFPlayer(从 MF SDK 示例在 VS2010 中编译)时遇到问题,错误代码是:坏字节流。当我尝试将相同的视频加载为流时,发生了同样的错误(源阅读器代码取自http://msdn.microsoft.com/en-us/library/dd389281%28v=VS.85%29.aspx)或作为使用转码示例的会话。可能有人可以分享如何使用 Media Foundation 加载 mp4-h264 视频的经验。

  2. 我应该将第三方编解码器集成到基于 Media Foundation 的解码中。根据 MSDN,Media Foundation 对第三方编解码器有一些支持,但是我没有找到使用第三方编解码器进行解码的示例。可能有人这样做?或者可以参考如何做到这一点的可用示例。

提前致谢, Ze'ev

4

1 回答 1

0

(2) 我应该将第三方编解码器集成到基于 Media Foundation 的解码中。根据 MSDN,Media Foundation 对第三方编解码器有一些支持,但是我没有找到使用第三方编解码器进行解码的示例。可能有人这样做?或者可以参考如何做到这一点的可用示例。

这个有可能。基本上,它涉及为第三方解码器编写媒体基础转换。查看您的 SDK 安装目录。去Microsoft SDKs -> v7.0 -> Samples -> Multimedia -> Mediafoundation -> Decoder。它包含一个示例 MPEG1 解码器 MFT。您需要做的是适当地继承IMFTransform接口并实现其方法。例如,媒体客户端将调用ProcessInput()方法为您的解码器 MFT 提供媒体样本。同样,它将调用ProcessOutput()以获取解码的输出。简而言之,MFT 充当第三方解码器的包装器。

于 2011-12-28T15:55:55.720 回答