媒体基础将原始像素帧转换为mpeg视频

时间:2013-03-31 19:59:16

标签: video encoding ms-media-foundation mpeg-4

我想在Windows 7上将固定大小的原始像素帧编码为MPEG。我正在尝试使用media foundaiton transofrmation来执行此操作。但媒体基金会并不支持直接将原始帧转换为MPEG。相反,我必须使用媒体接收器将原始像素缓冲区转换为WMV3格式,然后使用转码拓扑将WMV转换为MPEG。

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

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

最好的问候

GT

P.S。我不打算为直接显示实现过滤器图表来执行此操作。根据媒体创建文件,它应该提供直接展示所提供的所有设施。

1 个答案:

答案 0 :(得分:1)

Media Foundation为您提供处理压缩的H.264 Video Encoder MFT / DMO。

与DirectShow(您不想使用它,但它为您提供使用第三方编码器压缩成MPEG-4和MPEG-4 AVC的可比选项)不同,使用Media Foundation,您可以使用它的变换拥有,而不插入全功能图(拓扑)。 Microsoft仅为您提供H.264编码器,仅适用于Windows 7(适合您)。

MSDN文章中描述了MFT的使用,并且一步一步地遵循它将获得压缩的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:支持在较旧的操作系统中,功能集,可扩展性和开销 - 仅举几例。