我遇到了一个奇怪的行为,试图在 ME 模式下初始化 NVENC。OpenEncodeSessionEx()
总是以 #15 失败 -"This indicates that an invalid struct version was used by the client."
参数结构如下:
NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS session_params = {
.version = NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS_VER,
.deviceType = NV_ENC_DEVICE_TYPE_CUDA,
.device = ctx,
.reserved = 0,
.apiVersion = NVENCAPI_VERSION,
.reserved1 = 0,
.reserved2 = NULL
};
int ret = encOpenEncodeSessionEx(&session_params, &encoder->enc);
我试图从不同的 C 和 Golang 环境中调用它,但无论我做什么,我都会得到那个错误。NVENC 样本的编码器刚刚崩溃(段错误)。解码器可以完美运行,而编码器则不能。
有谁知道,什么确切的条件可能会导致错误 #15 - NV_ENC_ERR_INVALID_VERSION
?
我使用 440.82 驱动程序将 Cuda 升级到 10.2 - 不走运。试图降级到 Cuda 10.0 - 还是一样。我使用1060ti
GPU。
请任何人帮助我))