是否有为Media Foundation增强型视频渲染器编写自定义调音台的简单示例? 感谢。
答案 0 :(得分:2)
嗯,不完全像EVR Presenter插件那样完整的样本,但下面的页面似乎相对全面和有用:
Enhanced Video Renderer - Custom Mixers
本主题介绍如何为增强型视频渲染器(EVR)编写自定义混音器。您可以将自定义调音台与Media Foundation EVR媒体接收器或DirectShow EVR滤波器配合使用。有关混音器和演示者的详细信息,请参阅增强型视频渲染器。
事实上,我发现,所有Windows Media Foundation API都有很好的文档记录。太糟糕了,产品本身很难被采用。我猜DirectShow对于大多数任务来说都很好,所以事实证明它在过去的十年中很难被贬低。虽然我认识到COM是一个久经考验的主力,但是当它们在2006年以MF为基础时,它几乎不会成为一种未来主义选择。
还要注意普遍的"异步调用"要求MF暴露是严厉的和误导的,特别是考虑到今天成熟,轻量和优雅的基于任务的异步的后见之明。
当您的新API不与那些广泛的第三方生态系统向后兼容时,还存在鸡和蛋的问题,以及诸如缺乏第一方之类的混淆事实,以及该盒子支持MKV,FLV和WEBM播放等简单/基本功能;即使是现在,十年之后,任何人都没有合理的解决方案。 (微软自己的媒体播放器通常首先尝试MF,然后回到DirectShow以寻找失败的格式,这意味着他们必须在内部保持对这两个平台的完全支持)。
回到您的询问,一个相关的问题是EVR的标准混音器是否已经更新以支持异步MFT模式,微软在几年前悄然推出了这种模式。如果这样,那么可能会提供更好的机会来更灵活地使用它,而不是必须交换一个全新的自定义模块。
请记住,该混音器只是一个普通的MFT,因此您可以像查询任何其他变换一样查询其功能标志。当你了解它的同时,你也想看看它是否跟上了另一个最近的MF开发,即MFT,它可以协商与管道邻居共享D3D9硬件缓冲区(代替样本)传入系统内存)。我相信它们现在甚至可以使用Direct3D 11缓冲区。