写这个笔记主要是记录配置编译opencv+cuda+cudacodec的过程核经历,这里面的坑实在太多。
参考文章:https://note.youdao.com/ynoteshare1/index.html?id=700052b0a49301059a34f20a00a830ca&type=note,但这份笔记很多东西没有讲清楚,导致我按照这个笔记配置编译opencv的时候,怎么弄都不能正确的编译处cudacodec,而我需要使用GPU实现编解码,必须得使用这个库。
简单记录过程如下。
基础环境:
1、硬件环境:GPU服务器8张Tesla V100,CPU是12个物理核心,48个逻辑核心
2、软件:docker+nvidia 440+cuda10.2+cudnn
一、基础包安装
按照以上笔记内容,安装好ffmpeg,并配置cuvid硬件编解码(参见我的另一篇文章,这里面也有很多坑)
按照以上笔记内容,配置好基础依赖包(不多说了)
二、配置cmake
根据以上笔记内容,配置好依赖包后执行cmake,在出来的报告中没有出现NVCUVID,只有CUFFT等内容。先没有在意,开始编译安装,结果运行cv2.cudacodec.createVideoReader()的时候,出现错误,提示没有安装nvcuvid相关的库。由于我是在docker中安装,按照上面笔记的内容,折腾了一番docker中的libnvcuvid.so,libnvidia-encode.so等库文件,重新编译安装,依然没有。
于是开始网上各种百度,csdn、知乎等到处找资料,所有内容都试过了,没有一个能解决问题,真是头大。冷静下来一想,配置中没有出现NVCUVID,是不是CMakeLists文件中哪里除了问题了?于是查看CMake的运行记录,发现里面果然有一个判断变量HAVE_NVCUVID,配置记录中显示的是0,也就是没有打开NVCUVID选项。可我配置的时候明明指定了 -D WITH_CUDA=ON -D WITH_NVCUVID=ON。 打开opencv的CMakeLists.txt文件,发现第262行有这么一句:
VERIFY HAVE_N
配置编译带cuda版本并支持cudacodec硬编解码opencv库笔记
最新推荐文章于 2026-06-09 12:16:45 发布
本文记录了作者在配置和编译OpenCV以利用CUDA和cudacodec进行GPU加速编解码过程中遇到的种种困难,包括CMake配置问题、库文件查找和链接错误,以及最终解决策略。

429

被折叠的 条评论
为什么被折叠?



