FFmpeg:如何使用 scale_vulkan 过滤器?

FFmpeg:如何使用 scale_vulkan 过滤器?

我谷歌了一下如何使用 scale_vulkan 过滤器以及关于 ffmpeg 上的 Vulkan 的信息,但似乎只有几个难以解读的支持线程,而且 FFmpeg 上的 Vulkan 文档也不多。无论如何,我尝试了两个不同的命令,希望过滤器能够正常工作:

  • ffmpeg -hide_banner -init_hw_device vulkan=gpu:0 -filter_hw_device gpu -i "input.mkv" -filter_complex "[0:V:0]hwupload,scale_vulkan=1920:1080:bilinear:yuv420p,hwdownload,format=yuv420p[out]" -map "[out]" "output.mkv" -y
  • ffmpeg -v verbose -init_hw_device vulkan=vul,linear_images=1 -i "input.mkv" -vf "hwupload,scale_vulkan=w=1920:h=1080:format=yuv420p,hwdownload,format=yuv420p" "output.mkv" -y

但我收到了同样的错误信息:

[AVHWDeviceContext @ 0000029c32857e80] No memory type found for flags 0x2
[hwupload @ 0000029c40ea5bc0] Failed to upload frame: -22.
Error while filtering: Invalid argument
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
[libvorbis @ 0000029c340afb40] 39 frames left in the queue on closing
Conversion failed!

此外,我真的不知道过滤器是如何工作的,或者是否需要任何特定的硬件(可能是某些 GPU)。

编辑:我的 Windows 笔记本电脑的规格包括支持h264_amfhevc_amf编码器的 AMD Ryzen 5 4500U 以及 Nvidia MX350(不支持 NVENC)。

相关内容