2013-03-31 73 views
1

我想在Windows 7上将固定大小的原始像素帧编码为MPEG。我试图使用mediaaiton transofrmation来做到这一点。但媒体基金会不支持将原始帧直接转换为MPEG。相反,我必须使用媒体接收器将原始像素缓冲区转换为WMV3格式,然后使用转码拓扑将WMV转换为MPEG。媒体基础将原始像素帧转换为MPEG视频

媒体基础支持将帧缓冲区直接转换为MEPG吗?

此外,当我这样做时,我遇到了转码框架的麻烦,无法将单帧WMV视频转换为MEPG。不知道为什么,但它导致在单帧WMV馈送时创建空的MPEG文件。这是媒体基础的一个已知限制吗?

问候

GT

附:我不打算实施直接显示的过滤器图表来做到这一点。根据媒体发布的文件,它应该提供所有直播节目提供的设施。

回答

1

Media Foundation为您提供H.264 Video Encoder处理压缩的MFT/DMO。与DirectShow不同(它不想使用,但它为您提供了使用第三方编码器压缩到MPEG-4和MPEG-4 AVC的类似选项),与Media Foundation一起,您可以使用转换它自己的,而不是将其插入到全功能图形(拓扑)中。微软仅为您提供H.264编码器,仅从Windows 7开始(对您有好处)。

MFT的使用在MSDN文章中描述,并且一步一步地获得压缩的H.264(MPEG-4 AVC)NAL单元,但它们不完全是“文件”。 MPEG-4文件按照MPEG-4 Part 14规范格式化,Microsoft为其提供MPEG-4 File Sink。后者基本上假设您使用拓扑而不是单个组件。因此,您的选择是实现一个自定义视频源节点以插入到拓扑中,并构建编码拓扑以将数据通过H.264编码器路由到MPEG-4文件接收器,或分别实例化视频编码器和文件接收器,在拓扑设置之外使用它们并在它们之间传递数据。

根据媒体发现的文件,它应该提供所有直接显示提供的设施。

不是它不应该,它不。 Microsoft仅在Windows 7 +中通过Media Foundation提供MPEG-4视频编码器和多路复用器,并且根本不会将它们提供给DirectShow(除非通过MF组件封装),但MF在许多方面不如DS:支持在较老的操作系统中,功能集,可扩展性和开销 - 仅举几例。