专栏首页技术的专栏opencv cudacodec VideoReader 报错
原创

opencv cudacodec VideoReader 报错

#include <opencv2\cudacodec.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
  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
  2. Link CUDA library to your project
    • CMake

    include_directories(${CUDA_INCLUDE_DIRS}) target_link_libraries(project_name cuda)

    • gcc

    -lcuda

  3. Include CUDA headers in your project
#include <dynlink_nvcuvid.h>
#include <dynlink_cuviddec.h>
  1. 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.

转到了 NVIDIA Video Codec SDK.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • vue填坑记录:axios 返回中文乱码问题

    以前接口都是php写的,echo 出 json 串给页面jQuery ajax用的。

    shirishiyue
  • mod_rewrite: Could not set permissions on rewrite_log_lock

    [crit] (22)Invalid argument: mod_rewrite: Could not set permissions on rewrite_...

    shirishiyue
  • vue style 绑定问题

    shirishiyue
  • 那些年我们一起学XSS - 9. Dom Xss入门 [隐式输出]

    前注:1-4 是普通原理,没看明白的话,可以从5开始,结合实际例子看。 1. 本来是有另外一个例子的,不过不知道是腾讯已经给修复了,还是之前测试的时候人品好,偶...

    渗透攻击红队
  • CentOS6 Upgrade Python

    CentOS6 升级Python2.7.X和Python3.X ---- 简述 由于产品需要从裸机开始开发所以所有的配置和开发也是从零开始,这个导航是基于cen...

    BrianLv
  • 安装数据库很痛苦?试试这个SQL在线编辑器,省掉你的安装烦恼

    经常有小伙伴因为数据库安装报错给我私信。发给我的报错各式各样,有些我能解决,有些报错真的我也没见过,不知如何作答。这导致很多初学SQL的爱好者自信心受到打击。

    披头
  • 七情六欲聊运营----如何做更懂用户的产品运营【上篇】

    5月10日,由人人都是产品经理和腾讯大讲堂共同举办的2015中国产品经理大会全国巡回-广州站在华南理工大学举行,本篇是腾讯高级产品经理陈婷婷的《 七情六欲聊运营...

    腾讯大讲堂
  • PIKOCUBE:带 LED、陀螺仪,WiFi 控制的可编程骰子

    今天给大家带来一个非常好玩的项目,带有 54 颗 LED、陀螺仪,支持 WiFi 控制的可编程骰子。

    MCU起航
  • gitHub使用记录

    之前一直用的都是Bitbucket,虽然gitHub很早就开通了,但是一直没有用它,今天算是第一次用吧。在配置上遇到了一些问题,在这里记录下来和大家一起分享。

    明天依旧可好
  • 神威·太湖之光获戈登·贝尔奖,中国超算软硬兼施实现零的突破

    【新智元导读】北京时间今日凌晨 4:20 时许美国盐湖城 SC16大会上,我国自主研发的超算系统“神威·太湖之光”继日前蝉联TOP 500世界第一殊荣后,一举拿...

    新智元

扫码关注云+社区

领取腾讯云代金券