基于OS的硬件加速

Windows

参考[2],基于windows的硬件加速都是基于DirectX API,我们可以用ffmpeg -hwaccels查看当前环境支持的硬件加速接口,如下为windows上的执行ffmpeg –hwaccels的结果。

在linux上执行ffmpeg -hwaccels的结果如下:

可以看到windows上支持的硬件加速接口比较多,其中dxva2,d3d11va都为DirectX的硬件加速接口,由于微软的多媒体框架的进化,现在存在两种接口来支持硬件加速,分别为Direct3D 9 DXVA2和Direct3D 11 VideoAPI,分别对标dxva2和d3d11va。
在ffmpeg命令中,-hwaccel 后面跟所用的硬件接口,如下为在windows环境下,AMD,Intel,NVIDIA GPU使用DXVA2和D3D11VA编码的例子。

AMD AMF

ffmpeg -hwaccel dxva2 -hwaccel_output_format dxva2_vld -i