AVCodec * codec = avcodec_find_encoder_by_name("nvenc_h264");
如果是默认的ffmpeg库,返回结果是NULL,看来是不带有硬编码功能的,重新编译分支ffnvcodec,不到半个小时编译完成,返回值终于ok了(^-^),继续编写代码:
AVCodecContext *avctx = avcodec_alloc_context3(codec);
int ret = avcodec_open2(avctx, codec, 0);
返回值-40(-_-)(ENOSYS),跟踪调试,在“nvenc.c ”文件中函数nvenc_load_libraries中判断版本处失败返回,
err = dl_fn->nvenc_dl->NvEncodeAPIGetMaxSupportedVersion(&nvenc_max_ver);
if (err != NV_ENC_SUCCESS)
return nvenc_print_error(avctx, err, "Failed to query nvenc max version");
av_log(avctx, AV_LOG_VERBOSE, "Loaded Nvenc version %d.%d\n", nvenc_max_ver >> 4, nvenc_max_ver & 0xf);
if ((NVENCAPI_MAJOR_VERSION << 4 | NVENCAPI_MINOR_VERSION) > nvenc_max_ver) {
av_log(avctx, AV_LOG_ERROR, "Driver does n