使用Media Foundation解码MPEG1 / 2视频

时间:2011-03-31 04:55:37

标签: directshow windows-media-player mpeg-2 ms-media-foundation

我正在使用Media Foundation播放视频。在Windows 7上,一些使用Mpeg1 / Mpeg2 PS和Windows Media Player编码的视频可以播放它们,但Media Foundation没有(我试图注册一个存根MPEG1Source,但它仍然不起作用)。我注意到其中一些文件可以使用directshow播放,但不能播放Media Foundation(根本无法打开)。我猜“媒体播放器”不仅仅使用Media Foundation?

是否可以使用Media Foundation播放这些文件?如果不是,媒体播放器如何工作?非常感谢。

P.S。我已经阅读了Windows SDK并且我注册了一个“假的”mpeg1解码,它显示了一个没有时间码的空白帧。为什么我们需要一个假的mpeg1解码器,如果Windows媒体播放器可以解码它?

这个主题是相对的 best way to build graph for MPEG2 transport stream

4 个答案:

答案 0 :(得分:2)

Media Foundation没有对MPEG-1或MPEG-2的收件箱支持。请参阅:http://msdn.microsoft.com/en-us/library/dd757927(v=VS.85).aspx

Windows Media Player使用各种代码路径,包括DShow,Media Foundation和Windows Media Format SDK,具体取决于源内容。

答案 1 :(得分:0)

我找到了有关此问题的一些信息,并使用假解码器设置了MPEG1源。我经历的失败是因为SDK代码中的错误。 关于MPEG1解码器,我想我必须在MF中使用DShow的解码器。 仍然不知道MediaPlayer的工作原理。

答案 2 :(得分:0)

在Microsoft SDK安装目录中,转到Microsoft SDKs -> Windows v7.0 -> Samples -> multimedia -> mediafoundation -> Decoder,其中包含示例MPEG-1解码器MFT。你可能会发现它很有帮助。

答案 3 :(得分:0)

Windows 8上有新的MPEG-2视频解码器MF滤镜。 http://msdn.microsoft.com/en-us/library/windows/desktop/hh162909(v=vs.85).aspx