李国帅
2012年收集的资料,相隔数年,只做参考
在使用directshow的时候,解码自动选择的解码控件
编码格式 | 解码方式 | 解码控件 |
H264 | CUDA | CoreAvc(默认) |
H264 | DXVA | CoreAvc(需配置) |
H264 | NONE | CoreAvc(同上) |
H264 | DXVA1 | FFmpeg |
H264 | NONE | FFmpeg |
MP4V | DXVA1 | FFmpeg(不支持) |
MP4V | NONE | FFmpeg(默认) |
备注
CoreAvc(无法编程的方法选择,必须打开解码器属性页进行配置。没有开放接口)
CUDA的支持程度
显卡 | 解码方式 | 支持 |
N卡GF8以上 | CUDA | 支持 |
N卡GF8以下 | CUDA | 不支持 |
A卡 | CUDA | 不支持 |
集成显卡 | CUDA | 不支持 |
操作系统对Directx的支持
操作系统, | Directx | VisualStudio |
XP | 最高Dx9c | 2005最高支持到DXSDK_Feb10(2010年2月版本) |
WIn7 | 支持Dx11 |
显卡对硬解码的支持
显卡 | 解码方式 | 支持, | Mpeg4 | H264 |
N卡 | DXVA | 部分支持 | (很少) | win7系统支持 |
A卡 | DXVA | 部分支持 | ||
集成显卡 | DXVA1 | 部分支持 | (不支持) | Win7支持 |
集成显卡 | DXVA2 | 部分支持 | (intel集成显卡,XP系统的话是不提供硬解支持的) |
(显卡对硬解码的支持根据不同的硬件型号支持程度不同。)
DXVA对渲染技术的支持
编码格式, | Directshow | EVR | VMR |
DXVA1 | 支持 | 不支持 | 支持 |
DXVA2 | 支持 | 支持 | 不支持 |
建议
硬件解码已经很少去支持Mpeg4了,一般直接支持H264。所以建议如果遇到Mpeg4直接使用软解。
是否采用硬件加速关键还是要看应用,看硬件的能力。
如果不想配置解码器,简单实用directshow进行解码,那直接使用evr,让操作系统自己选择(自动调用dxva)吧,不过使用evr抓图就比较麻烦。