decode MPEG1/2 video with Media Foundation

前提是你 提交于 2019-12-21 22:09:51

问题


I am using Media Foundation to play videos. On windows 7 some videos encoded with Mpeg1/Mpeg2 PS and Windows Media Player can play them, but Media Foundation does not(I tried to register a stub MPEG1Source but it still does not work). I noticed some of these files could be played with directshow but not Media foundation(can not be open at all). I guess "media player" does not use Media Foundation only?

Is it possible to use Media Foundation to play these file? If it is not, how does Media player work? Thanks a lot.

P.S. I have read the windows SDK and I registered a "fake" mpeg1 decode and it shows a blank frame with no time code. Why we need a fake mpeg1 decoder if windows media player can decode it?

This topic is relative to best way to build graph for MPEG2 transport stream


回答1:


Media Foundation does not have inbox support for MPEG-1 or MPEG-2. See: http://msdn.microsoft.com/en-us/library/dd757927(v=VS.85).aspx

Windows Media Player uses various code paths, including DShow, Media Foundation, and Windows Media Format SDK, depending on the source content.




回答2:


I have found some information about this question and set up a MPEG1 source with the fake decoder. The failure I've been through is because bugs in SDK's code. About the MPEG1 decoder, I guess I have to use DShow's decoder in MF. Still have no idea about how MediaPlayer works.




回答3:


In your Microsoft SDK installation directory, go to Microsoft SDKs -> Windows v7.0 -> Samples -> multimedia -> mediafoundation -> Decoder which contains an example MPEG-1 Decoder MFT. You might find it helpful.




回答4:


There is new MPEG-2 Video Decoder MF filter at Windows 8. http://msdn.microsoft.com/en-us/library/windows/desktop/hh162909(v=vs.85).aspx



来源:https://stackoverflow.com/questions/5495490/decode-mpeg1-2-video-with-media-foundation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!