Media Foundation 为您提供处理压缩的H.264 视频编码器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。后者基本上假设您使用的是拓扑而不是单个组件。
因此,您的选择是 (a) 实现要插入拓扑的自定义视频源节点,并构建编码拓扑以通过 H.264 编码器将数据路由到 MPEG-4 文件接收器,或者 (b) 实例化独立的视频编码器和文件接收器分开,并在拓扑之外使用它们设置它们并在它们之间传递数据。或者,另一个选项 (c) 是使用 Media Foundation Sink Writer API,它与提到的后者大致相同,重点是易用性而不是灵活性和对细节的控制。
根据媒体基金会的文件,它应该提供直接展览提供的所有设施。
不,它不应该也不应该。Microsoft 仅通过 Windows 7+ 中的 Media Foundation 提供 MPEG-4 视频编码器和多路复用器,并且根本不使它们可用于 DirectShow(除非通过 MF 组件的包装器),但是 MF 在许多方面不如 DS:支持在较旧的操作系统中,功能集、可扩展性和开销 - 仅举几例。