Media Foundation:无需容器即可解码和显示H264帧
-
29-10-2019 - |
题
情况是这样的:我的Windows客户端应用以自定义方式(专有协议)从网络源获取H264编码的帧,而没有容器。帧的格式是已知的。我需要解码帧并显示视频。要求播放在高清流媒体中无瑕疵,但对于其他情况,可以选择低延迟。
当前,我使用ffmpeg的libavcodec解码帧,然后使用StretchBlt在屏幕上手动显示它们。我们正在考虑迁移到Media Foundation,但对我来说尚不清楚-是否有可能不使用容器的来源?如果是这样,我需要创建一个自定义的吗?
也欢迎使用Media Foundation的替代方法。我目前使用的方法的主要问题是性能不够好,尤其是对于高清视频。
解决方案
我看不到您提到您特别需要的或什么Media Foundation
API,所以我建议您使用DirectShow
,您可以通过以下方式做到这一点:
- 自定义来源,请参见推送源过滤器示例
- H.264解码器,带有Windows 7(类似于Media Foundation)或第三方(有少量选择)的库存
- 视频渲染器,例如EVR(与Media Foundation共享)或更旧的版本
不隶属于 StackOverflow