无法通过 cuvidGetDecoderCaps CUDA SDK 获取解码功能

Unable to get Decoding Capabilities by cuvidGetDecoderCaps CUDA SDK

我有一台配备 Tesla T4 GPU 的服务器。我正在尝试在 GPU 上解码 H264 视频。我正在使用 Cuda SDK 获取 CUVIDDECODECAPS(GPU 的解码功能),但它向 MinWidth、MinHeight、MaxWidth、MaxHeight 返回 0,向“bIsSupported”返回 false。 IE。此硬件不支持 GPU 解码。但是根据this link T4确实支持视频解码。

下面是代码片段。

CUVIDDECODECAPS decodeCaps = {};
decodeCaps.eCodecType = _codec;
decodeCaps.eChromaFormat = _chromaFormat;
decodeCaps.nBitDepthMinus8 = videoFormat.nBitDepthMinus8;
cuSafeCall(cuCtxPushCurrent(ctx_));
cuSafeCall(cuvidGetDecoderCaps(&decodeCaps));

cuSafeCall(cuCtxPopCurrent(NULL));

下面是驱动和cuda版本

NVIDIA-SMI 440.118.02 驱动版本:440.118.02 CUDA版本:10.2 Nvidia Video codec SDK为11.0.10

有人知道我在这里做错了什么吗?

每个 Nvidia 视频 SDK 对 CUDA SDK 和图形 driver 版本都有最低要求。如果您打开 SDK 网页,您将找到以下信息:

NVIDIA Windows 显示器 driver 456.71 或更高版本 NVIDIA Linux 显示器 driver 455.28 或更高版本 DirectX SDK(仅限 Windows)CUDA 11.0 工具包

至少在 Linux 上,相关的 NVENC 和 NVDEC 库是 driver 发行版的一部分,因此最新的 SDK headers 无法与旧库一起使用(根据您的 driver版本)。如果您必须使用特定的 driver.

,您可以下载旧版本的视频 SDK