如果驱动程序可用,我们可以设置 FFMPEG 硬件加速,否则使用默认值吗?

can we set FFMPEG hardware acceleration if driver available otherwise use default?

我需要设置 ffmpeg 代码,如果硬件加速可用,则应该使用它,否则使用可用的默认驱动程序。我正在使用用 Visual C++ 编程的屏幕录制软件。所以我需要实现硬件加速,如果它安装的计算机有 GPU, 否则使用 CPU.

ffmpeg -hwaccel cuda -f gdigrab -framerate 24 -probesize 42M -i desktop  -preset ultrafast -pix_fmt yuv420p camera1.mp4

我试过上面的代码,但它不起作用,因为我的电脑不支持 CUDA 或 GPU

列出可用的硬件加速方法

查看-hwaccels选项:

-hwaccels
List all hardware acceleration methods supported in this build of ffmpeg.

示例:

$ ffmpeg -v error -hwaccels
  Hardware acceleration methods:
  vdpau
  cuda
  vaapi
  qsv
  drm

或使用自动

自动select硬件加速方法:

ffmpeg -hwaccel auto -i input ... output