opencv cudacodec VideoReader 报错
#include <opencv2cudacodec.hpp>
这篇文章 https://blog.csdn.net/zijin0802034/article/details/83825081 提供了一个办法,复用例子里的代码,可以运行,但是测的性能还比不上cpu版本的!!
找了可能原因 : https://github.com/opencv/opencv/issues/10201
Hello, I've just walked through all the same issues and can share my experience.
Here is how I've successfully compiled my project with cv::cudacodec::VideoReader
My setup:
- Ubuntu 16.04
- OpenCV 3.4.1
- CUDA 9.1
- CMake 3.5.1
- Copy
dynlink_nvcuvid.cpp
somewhere inside your project. File itself located in/usr/local/cuda/samples/3_Imaging/cudaDecodeGL/dynlink_nvcuvid.cpp
if you've properly installed CUDA Toolkit - Link CUDA library to your project
- CMake
include_directories(${CUDA_INCLUDE_DIRS}) target_link_libraries(project_name cuda)
- gcc
-lcuda
- Include CUDA headers in your project
#include <dynlink_nvcuvid.h>
#include <dynlink_cuviddec.h>
- Init the device before using
cv::cuda
stuff
// Init CUDA
void* hHandleDriver = nullptr;
CUresult cuda_res = cuInit(0, __CUDA_API_VERSION, hHandleDriver);
if (cuda_res != CUDA_SUCCESS) {
throw exception();
}
cuda_res = cuvidInit(0);
if (cuda_res != CUDA_SUCCESS) {
throw exception();
}
std::cout << "CUDA init: SUCCESS" << endl;
cv::cuda::printCudaDeviceInfo(cv::cuda::getDevice());
但是去源码里搜一下,并没有 dynlink_nvcuvid 相关的文件。
看来需要重编一下?
NVCUVID was enabled in opencv cmake with-D WITH_NVCUVID=ON -D CUDA_nvcuvid_LIBRARY=/usr/lib/nvidia-384/libnvcuvid.so
但是cmake里没有 WITH_NVCUVID选项。。。。。
我用的CUDA11和opencv4.4,,,,
原来,新版本的去掉了这个功能。。。。https://github.com/opencv/opencv_contrib/issues/1786
Seems like cuda video decoder is deprecated.
https://docs.nvidia.com/cuda/video-decoder/index.html
That's why -DBUILD_opencv_cudacodec=OFF fixes the issue.
- React第三方组件6(状态管理之Mobx的使用③TodoList中)
- P1554 梦中的统计
- Word2Vec教程-Skip-Gram模型模型“伪”任务关于模型的更多细节隐藏层输出层
- React第三方组件6(状态管理之Mobx的使用②TodoList上)
- The 9th Zhejiang Provincial Collegiate Programming Contest
- P1789 【Mc生存】插火把
- FOJFOJ有奖月赛-2012年4月(校赛热身赛)-解题报告总结
- poj 1316 Self Numbers
- React第三方组件6(状态管理之Mobx的使用①简单使用)
- poj 1088 滑雪
- 八数码难题解法大全
- React第三方组件5(状态管理之Redux的使用⑥Redux DevTools)
- React第三方组件5(状态管理之Redux的使用⑤异步操作)
- HDU - 1846 Brave Game
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【奇技淫巧】-- 接雨水
- 【奇技淫巧】-- 最长连续序列
- 【redis】跟我一起动手玩玩redis主从复制和哨兵模式
- 【C++】八大排序算法 :GIF + 亲测代码 +专项练习平台
- 【C++】勉强能看的线程池详解
- 国密SSL协议之Java编程
- 7. Jackson用树模型处理JSON是必备技能,不信你看
- epoll,求知者离我近点
- SOCKET网络编程 (通俗易懂入门篇)
- 进程 · 全家桶
- Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝慢慢看(2)
- Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝里慢慢看 (1)
- 种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林
- 【Linux内核】进程管理
- Django后台管理界面修改(代码修改)