安装配置参考

#include <iostream>#include "opencv2/opencv_modules.hpp"#if defined(HAVE_OPENCV_CUDACODEC)#include <string>
#include <vector>
#include <algorithm>
#include <numeric>#include <opencv2/core.hpp>
#include <opencv2/core/opengl.hpp>
#include <opencv2/cudacodec.hpp>
#include <opencv2/highgui.hpp>int main(int argc, const char* argv[])
{if (argc != 2)return -1;const std::string fname(argv[1]);//显示视频//cv::namedWindow("CPU", cv::WINDOW_NORMAL);cv::namedWindow("GPU", cv::WINDOW_OPENGL);cv::cuda::setGlDevice();//cv::Mat frame;//cv::VideoCapture reader(fname);cv::cuda::GpuMat d_frame;cv::Ptr<cv::cudacodec::VideoReader> d_reader = cv::cudacodec::createVideoReader(fname);cv::TickMeter tm;std::vector<double> cpu_times;std::vector<double> gpu_times;int gpu_frame_count=0, cpu_frame_count=0;/*for (;;){tm.reset(); tm.start();if (!reader.read(frame))break;tm.stop();cpu_times.push_back(tm.getTimeMilli());cpu_frame_count++;cv::imshow("CPU", frame);if (cv::waitKey(3) > 0)break;}
*/for (;;){tm.reset(); tm.start();if (!d_reader->nextFrame(d_frame))break;tm.stop();gpu_times.push_back(tm.getTimeMilli());gpu_frame_count++;cv::imshow("GPU", d_frame);if (cv::waitKey(3) > 0)break;}if (!cpu_times.empty() || !gpu_times.empty()){std::cout << std::endl << "Results:" << std::endl;//std::sort(cpu_times.begin(), cpu_times.end());std::sort(gpu_times.begin(), gpu_times.end());//double cpu_avg = std::accumulate(cpu_times.begin(), cpu_times.end(), 0.0) / cpu_times.size();double gpu_avg = std::accumulate(gpu_times.begin(), gpu_times.end(), 0.0) / gpu_times.size();//std::cout << "CPU : Avg : " << cpu_avg << " ms FPS : " << 1000.0 / cpu_avg << " Frames " << cpu_frame_count << std::endl;std::cout << "GPU : Avg : " << gpu_avg << " ms FPS : " << 1000.0 / gpu_avg << " Frames " << gpu_frame_count << std::endl;}return 0;
}#elseint main()
{std::cout << "OpenCV was built without CUDA Video decoding support\n" << std::endl;return 0;
}#endif

makefile文件

opencv_cuda.o:opencv_cuda.cppg++ -std=c++11 -g -o main.out opencv_cuda.cpp `pkg-config opencv4 --cflags --libs` \-I/usr/local/opencv-4.2.0/include/opencv4/opencv2 \-I/usr/local/cuda/include \-L/usr/local/cuda/lib64 \-I/usr/include/eigen3 \-L/usr/lib/x86_64-linux-gnu -lcuda -ldl -lnvcuvidclean:rm *.o main.out

编译并运行

make
./main.out test.h264
# or
./main.out rtsp://admin:hk888888@10.171.1.233/h265/ch1/main/av_stream

参考文章

  • cuda+ffmpeg+opencv的编译安装

cuda10.2+ubuntu18.04+docker视频编解码相关推荐

  1. 04 ARM Mali-V VPU硬件视频编解码驱动介绍V61

    ARM Mali-V VPU硬件视频编解码驱动介绍V61 作者 将狼才鲸 创建日期 2022-12-13 CSDN文章地址:ARM Mali-V VPU硬件视频编解码驱动介绍V61 一.PC上的VPU ...

  2. 基于FFmpeg 实现RTSP, 音视频编解码,视频流添加文字,音视频合成MP4

    前言: 最近闲这没事,整理了一下之前开发过的音视频编解码库,主要基于ffmpeg,实现音视频的编解码.视频流添加文字,音视频同步到MP4等功能.有需要的小伙伴可以参考参考,如果写的有什么不对的地方,欢 ...

  3. 【ffmpeg for wince】音视频编解码多平台移植(for window/wince)

    from: http://www.cnblogs.com/windwithlife/archive/2009/05/31/1492728.html 终于完成了了第二个Client side原型(for ...

  4. chromium 33 视频编解码

    01 基本资料 官网关于视频编解码的文档, chromium/src/media: https://chromium.googlesource.com/chromium/src/media/ audi ...

  5. 53、RK3588测试视频编解码和 POE OAK Camera编码结合开发

    基本思想:一直想学rk3588的视频编解码,奈何没有设备,最近获得机会,利用空闲时间好好研究一番,正好手中的深度相机oak camera支持视频编码,逐想用软解编码和瑞芯微的mpp硬解码去走一波,本实 ...

  6. H.264/AVC视频编解码技术详解-殷汶杰-专题视频课程

    H.264/AVC视频编解码技术详解-46880人已学习 课程介绍         H.264/AVC是目前业界应用为广泛的视频压缩编码标准,包含了先进而且较为成熟的视频编码技术.本课程将从原理.标准 ...

  7. MPSOC VCU多路视频编解码(基于gstreamer)

    MPSOC VCU多路视频编解码 alvin.lu@avnet.com 2020.09.12 软件平台: Vivado 2019.1 PetaLinux 2019.1 Ubuntu16.04.6真机 ...

  8. 视频编解码之理论概述 和即时通信

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...

  9. 【H.264/AVC视频编解码技术详解】十九:熵编码算法(5)——H.264的CABAC(上):语法元素的二值化方法...

    <H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行 ...

  10. 视频编解码的理论和实践2:Ffmpeg视频编解码

    近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 &l ...

最新文章

  1. 建空列表list,数组array,矩阵matrix
  2. 如果给你500万,让你朝对象腿上开一枪,你愿意吗?
  3. 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用
  4. 农历控件源码(C#)
  5. Java与iOS对话:Java对象与Apple plist序列化
  6. robot连PCwifi、PC开Shell连robot
  7. 43 SD配置-销售凭证设置-定义状态管理授权码
  8. OSPF高级特性——LSA-3(Network Summary LSA)的过滤、路由协议——管理距离的修改、外部路由的metric值的修改
  9. linux内核arc4算法,linux内核中与进程相关的数据结构(基于linux-mainline-rc4)
  10. SQL2008R2 收缩数据库问题 - 日志文件不变小
  11. 搭建vue-cli脚手架
  12. ID为GUID类型时使用ObjectDataSource控件的时候的未找到DataObjectTypeName属性的解决方法...
  13. 微星笔记本安装Ubuntu桌面版
  14. 测试不同体重体型软件样子的,一种智能体型体重测量仪的设计
  15. 使用smbd实现windows和liunx的共享交互
  16. 计算机cpu最高温度,详解电脑cpu温度过高几种常用处理方法
  17. latex 矩阵分块(block matrix)
  18. 使用Cydia Impactor免越狱安装ipa
  19. bmp格式图片缩放(位图缩放)
  20. 联邦学习(Federated Learning)详解以及示例代码

热门文章

  1. 封装设计 SLC、MLC和TLC
  2. 高级web前端面试题
  3. 各种网线的分类和区别
  4. selenium安装和下载
  5. UML统一建模语言快速入门
  6. matlab iir滤波器参数,[Matlab]IIR滤波器参数
  7. banner设圆角_Banner设计技巧!
  8. 转-----EasyCHM制作教程
  9. 桥梁大师BridgeMaster2019带箱梁 USB加密狗发布
  10. 电梯仿真模拟,电梯模拟运行,电梯仿真运行,基于西门子博图S7-1200plc与触摸屏HMI的电梯模拟仿真控制系统设计