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

当前,我使用ffmpeg的libavcodec解码帧,然后使用StretchBlt在屏幕上手动显示它们。我们正在考虑迁移到Media Foundation,但对我来说尚不清楚-是否有可能不使用容器的来源?如果是这样,我需要创建一个自定义的吗?

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

有帮助吗?

解决方案

我看不到您提到您特别需要的或什么Media Foundation API,所以我建议您使用DirectShow,您可以通过以下方式做到这一点:

  • 自定义来源,请参见推送源过滤器示例
  • H.264解码器,带有Windows 7(类似于Media Foundation)或第三方(有少量选择)的库存
  • 视频渲染器,例如EVR(与Media Foundation共享)或更旧的版本
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top