Media Foundation:在没有容器的情况下解码和显示H264帧

时间:2011-12-07 14:42:29

标签: media directshow h.264 libavcodec ms-media-foundation

场景是这样的:我的Windows客户端应用程序以自定义方式(专有协议)从网络源获取H264编码的帧,没有容器。帧的格式是已知的。我需要解码帧并显示视频。要求在高清流媒体播放期间播放完美无瑕,但可以选择其他场景的低延迟。

目前,我使用ffmpeg的libavcodec对帧进行解码,然后使用StretchBlt在屏幕上手动显示它们。我们正在考虑转移到媒体基金会,但我不清楚 - 是否有可能拥有不使用容器的来源?如果是这样,我是否需要创建一个自定义的?

欢迎使用Media Foundation的替代方案。我目前使用的方法的主要问题是性能不够好,特别是对于高清视频。

1 个答案:

答案 0 :(得分:1)

我没有看到你提到你特别需要或Media Foundation API,所以我建议DirectShow,你可以这样做:

  • 自定义来源,请参阅Push Source Filters Sample
  • H.264解码器,Windows 7(类似于Media Foundation)或第三方(少数人之间的选择)
  • 视频渲染器,例如EVR(与Media Foundation共享)或旧版本