Len*_*ijn 7 directx video directshow dxva ms-media-foundation
我的任务是修改一个使用DirectShow进行视频渲染的应用程序.旧的应用程序工作正常,但它开始显示年龄.
由于我有游戏背景,我想我应该这样做.在使用不同的技术制作了一堆原型之后,我非常确定我可以提取视频到纹理的渲染并使用DirectX来满足所有客户的请求.
但是,我现在已经到了必须选择一种技术的地步,我不能再迷失了......
DirectShow显然是最古老的,但仍然运行良好,也主要是因为可用的大量编解码器.
媒体基金会已经推出了Windows Vista,直到Windows 8还有一个名为"媒体会话"的东西,之后他们推出了"媒体引擎".如果我是正确的编解码器被称为MFT?实际上有哪些网站可以像free-codecs.com一样提供这些网站?
除了这两种技术之外,还有DXVA,它允许您将视频解码卸载到GPU.目前,我遇到了3种不同的类型.DXVA1是自XP以来一直存在的实现,DXVA2是更新的API.但什么是DXVA-HD?它比DXVA2更新还是同等名称?
我真的想转向媒体基金会,开箱即用的编解码器非常适合客户想要使用的格式.我所关心的是为它获取编解码器是多么容易...... Windows 8+默认媒体播放器是否仍然具有DirectShow和MF渲染路径并且可以即时交换它们还是微软完全逐步淘汰DirectShow?
我也无法完全理解DXVA应该如何工作.鉴于我想基本上在游戏中渲染视频,只有让所有渲染实际发生在GPU上并将应用程序逻辑保留在CPU上才有意义,但我真的找不到任何关于如何使用Media的好例子基础.这主要是因为我不知道DXVA2和DXVA-HD之间的区别.Windows 7 SDK附带了所有3个实现的示例......
如果有人能够以粗体回答我的问题,请纠正我的错误信息,并指出我正确的方向(DirectX + Media Foundation + DXVA-无论如何),我将非常感激!它可以像"结合Windows 7 SDK的这3个示例来获得您想要的"一样简单.
整个任务的目标是再次获得顶级形式的应用程序,我想绝对肯定我会选择像DirectShow已经拥有的下一个十年的技术:P
如果我是正确的编解码器被称为MFT?实际上有哪些网站可以像free-codecs.com一样提供这些网站?
编解码器通常是软件项,可以从压缩格式解压缩到未压缩(解码器),反之亦然(编码器).这些API都没有精确编解码器,而是为具有输入和输出的组件定义通用接口,例如DirectShow中的过滤器,DirectX媒体对象(DMO)或其演进 - 媒体基础变换(MFT).
MFT是Media Foundation的基础组件:编码器,解码器,效果器,缩放器,视频捕获设备 - 内部都有MFT,而更高级别的API就建立在它之上.
由于对媒体基金会的兴趣有限,整体第三方MFT是一件罕见的事情.虽然您可以在DirectShow过滤器外形中找到几乎任何内容,但Media Foundation和MFT并非如此.
但什么是DXVA-HD?它比DXVA2更新还是同等名称?
DXVA-HD是DXVA 2.0系列API的一部分,涵盖硬件加速视频处理.作为公共低级接口提供,它还集成在DirectShow和Media Foundation库存组件中.
Windows 8+默认媒体播放器是否仍然具有DirectShow和MF渲染路径并在运行中交换它们还是Microsoft完全逐步淘汰DirectShow?
是的,WMP 12仍有两者.Windows 10电影和电视播放器仅限MF.
鉴于我想基本上在游戏中渲染视频,只有让所有渲染实际发生在GPU上并将应用程序逻辑保留在CPU上才有意义,但我真的找不到任何关于如何使用Media的好例子基础.
DirectShow和Media Foundation都提供支持DXVA的股票解码器(主要用于H.264但不仅仅是).我会说DirectShow实现相当不灵活,旨在与EVR一起使用.Media Foundation的实施更加灵活,可以在MF管道之外用作MFT.然而,两者都隐藏了所有复杂性并在幕后自动使用DXVA解码.
...我想绝对肯定我会选择像DirectShow已经拥有的将在未来十年持续的技术
DirectShow仍然是一个传统的API,在样本,代码,公共信息,文档,第三方可扩展性方面提供了更多的慷慨提供.媒体基金会是一个预期的替代品,它对它的兴趣非常有限.与DirectShow相比,它基本上没有提供太多东西,微软没有开发它以涵盖DirectShow的功能集 - 通常期望从更新的API,不提供有用的开发人员工具.看起来人们认为MF是一个更新的东西应该自己出售它,但最终它没有成功:
[...]
但请记住,即使是7年前,DirectShow已经有15年了.基类从一开始就以源代码形式发布.他们关心的程序员已经有超过20年的关注.这些问题很久以前就被解决了.
[...]
现在,说了这么多,Redmond的人确实认为DirectShow是一种死技术.他们已经转移到媒体基金会,原因完全让我失望.我已经找到了Media Foundation比DirectShow更好地解决的问题.其固有的局限性意味着它存在根本无法解决的问题.我永远不会理解为什么他们选择重新开始,而不是在DShow中修补他们不喜欢的东西.尽管词汇不同,但基本概念完全相同.这只是浪费资源.
归档时间: |
|
查看次数: |
1538 次 |
最近记录: |