-1

我有 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 的完整硬件转码。

4

1 回答 1

1

NVIDIA FFMPEG 转码指南

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

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

hwdownload: 帧到内存,它是 GPU VRAM -> RAM 中的平均数据。

hwupload: 反转hwdownload。注意:NVENC 仅适用于 GPU VRAM。

于 2020-10-29T02:34:55.537 回答