我使用Media Foundation API编写了一个程序,该程序采用AVI文件并将其视频样本解码为未压缩的RGB帧。
最近,我发现了一个包含音频和视频曲目的AVI文件,但Windows Media Player没有播放视频曲目(正在播放音频)。
我尝试用另一个播放器(Gom播放器)打开文件,它建议我下载额外的编解码器包:LEAD MJPG/MCMP Video Codec。安装后,WMP开始解码并播放视频轨道。但之后我再次无法使用MF API解码文件。
我的猜测是Media Foundation仅限于Windows发布的内容。是吗?
另外,是一种告诉Media Foundation使用外部安装的编解码器进行解码的方法吗?
答案 0 :(得分:2)
Media Foundation API提供可扩展性,但Media Foundation可接受的编解码器需要提供相应的格式:它们应该可用并注册为Media Foundation转换。这是一种罕见的情况,因为Media Foundation总体上不受欢迎,并且大多数可下载的编解码器都具有DirectShow API接口或Video For Windows API接口,但不适用于Media Foundation。
如果您有合适的编解码器,Media Foundation就会选择它。
Windows Media Player尝试通过Media Foundation播放,或者在失败的情况下,会回退到DirectShow。这解释了为什么可下载的编解码器修复了Windows Media Player而不是Media Foundation。