我有一台 Radeon Vega 64,并AMDGPU
从官方网站安装,但我不知道下一步该怎么做。
我想使用硬件加速来转换视频FFmpeg
。相应的命令是什么FFmpeg
?我应该如何设置设备/驱动程序FFmpeg
?
答案1
由于您尚未指明您使用的是哪个平台,因此我将提供适用于 Windows 和 Linux 的说明。请使用适合您情况的这些说明。
如果您使用的是 Windows,则可以通过 AMF 访问相关的编码器(恰当地命名为h264_amf
和)hevc_amf
,可以通过以下方式查看其用法:
ffmpeg -h encoder=h264_amf
ffmpeg -h encoder=hevc_amf
您需要为 Windows 构建一个 FFmpeg 二进制文件,可以是本机的,也可以是推荐的交叉编译。这该项目对于该主题来说是一个很好的开始。
如果您使用交叉编译选项,请传递以下参数以进行具有您需要的功能的构建:
./cross_compile_ffmpeg.sh --gcc-cpu-count=12 --build-libmxf=n --disable-nonfree=n --prefer-stable=y --compiler-flavors=multi
请注意,上面的构建结果是不可再分配,仅供个人使用。
在 Linux 上,使用开源 mesa amdgpu 驱动程序(不是从 AMD 安装的专有包),您可以访问基于 VAAPI 的编码器,恰当地命名为 h264_vaapi 和 hevc_vaapi,其用法可以通过以下方式查看:
ffmpeg -h encoder=h264_vaapi
ffmpeg -h encoder=hevc_vaapi
据我所知(如果我错了请纠正我),VP8 和 VP9 编码不会通过 VAAPI 在 AMD 端公开。您可以通过运行以下命令来确认这一点:
vainfo | grep Slice
在您的系统上并确认支持哪些编码器。在 Ubuntu 等系统中,启用 VAAPI 的 FFmpeg 很可能是默认设置。但是,如果需要,您也可以从源代码构建副本。请参阅FFmpeg Wiki 上的编译指南并根据需要进行调整。您还可以找到帮助工具,例如这,有用。
基于 AMD AMF 的编码器最终可能会使用基于 Vulkan 的互操作性登陆 Linux。工作正在进行中。
答案2
在 MacOS Catalina 上,通过 Thunderbolt 3 使用外部 GPU,我成功使用了 flag
-hwaccel videotoolbox
通过默认 brew 安装的副本。然后我可以使用默认libx265
编码器,速度比通过 CPU 的编码器快 20 倍左右。
满的:
ffmpeg
-hwaccel videotoolbox -i 'Forget to fly.mkv' \
-c:v libx265 -preset medium -crf 28 \
-c:a copy \
'Forget to fly.x265.mkv'