配置编译带cuda版本并支持cudacodec硬编解码opencv库笔记

本文记录了作者在配置和编译OpenCV以利用CUDA和cudacodec进行GPU加速编解码过程中遇到的种种困难,包括CMake配置问题、库文件查找和链接错误,以及最终解决策略。

写这个笔记主要是记录配置编译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

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值