在Windows下使用ffmpeg和AMD GPU进行硬编解码的方法

在Windows下使用ffmpeg和AMD GPU进行硬编解码的方法

185264646关注

2020.10.03 10:12:39字数 305阅读 4,119

前言

因为某些原因需要在Windows上进行大量的视频合并操作,最终选择了ffmpeg进行。ffmpeg的二进制是在官网上下载的。

初步尝试

最开始直接使用默认的编解码器:ffmpeg -i xx -i xx xx,结果发现ffmpeg根本就不调用GPU,纯用CPU进行软解,导致速度慢的出奇。因此想办法调用GPU进行硬解

调用硬解码器

百度后得到参数 -hwaccels dxva2,这样可以调用D3D进行硬解码,对于Windows平台应该是很合适的。

调用硬编码器

这里要注意参数所处的位置。在输出文件名前面加上 -c:v h264_amf 即可调用GPU进行硬编码,如果GPU支持,也可把h264换成hevc等,注意不能写成 -c h264_amf,因为只有图像流能够硬编码,音频流仍然得软编码。

总结

最终调用形式如下:ffmpeg -hwaccels dxva2 -i xx -i xx -c:v h264_amf xx。结果非常好,GPU虽然无法满载,但利用率相当好,同时速度也快了不少。

你可能感兴趣的:(h264,MP4BOx,网络协议,c++,音视频)