-hwaccel_output_format 的 FFMPEG Hwaccel 错误

FFMPEG Hwaccel error with -hwaccel_output_format

我有 Nvidia 1050Ti 显卡

我用cuda测试了ffmpeg

ffmpeg -hwaccel nvdec -hwaccel_output_format cuda  -i input.mp4 -y  \ 
-c:v h264_nvenc -c:a libmp3lame -b:v 3M \
-filter_complex hwdownload,scale=w=iw*min(1280/iw\,720/ih):h=ih*min(1280/iw\,720/ih),hwupload out.mp4

错误:

[hwupload @ 00000199b49c1080] A hardware device reference is required to upload frames to.
[Parsed_hwupload_2 @ 000001999ba8ee80] Query format failed for 'Parsed_hwupload_2': Invalid argument
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!

我想要完整的硬件转码而不使用 CPU。

NVIDIA FFMPEG TRANSCODE GUIDE

您可以按照它使用硬件 NVIDIA GPU 进行完整转码。

您需要手动编译启用了 CUDA 功能的 FFmpeg。因为scale是一个使用CPU资源的软件。另一方面是 scale_nppscale_cuda 使用 GPU 资源(有限的选项)。

hwdownload: frame down to ram, GPU VRAM -> RAM中的平均数据。

hwuploadhwdownload 的反转。注意:NVENC 仅适用于 GPU VRAM。