目录

一、我的运行环境

二、问题描述

三、问题定位及分析

四、解决方案


一、我的运行环境

设备 NVIDIA Jetson Nano
处理器 ARMv8 Processor rev 1 (v8l) × 4 
GPU NVIDIA Tegra X1 (nvgpu)/integrated
操作系统 ubuntu 18.04 LTS
OpenCV版本 4.6.0
语言 C++

二、问题描述

之前一直用的OpenCV 3.4.10版本,因为项目改变,版本变为4.6.0。在项目程序运行测试过程中发现,之前正常运行的程序出现崩溃并报错:“段错误 (核心已转储)”

段错误 (核心已转储)

三、问题定位及分析

通过定位,问题出在之前基于OpenCV 3.4.10编译的一个动态库。

进一步定位发现,是因为OpenCV VideoCapture类无法打开指定路径mp4视频文件导致的问题。

于是单独对cv::VideoCapture 进行了测试,发现可以成功打开摄像头并抓取图像帧。但是无法打开mp4视频文件。

推敲原因应该是编译 OpenCV 4.6.0 时没有包含ffmpeg视频解码器或是包含了有问题的ffmpeg库。

于是重新对OpenCV进行编译。

四、解决方案

1. 首先需要安装ffmpeg,有两种方式:

(1)安装ffmpeg方案一:

sudo apt-get update
sudo apt-get install ffmpeg

安装的库路径默认在/usr/lib/aarch64-linux-gnu/(aarch64嵌入式设备的路径,x86_64的路径应该是/usr/lib/x86_64-linux-gnu)

(2)安装ffmpeg方案二:

自编译,默认安装库路径为/usr/local/lib/

2. 编译OpenCV及配置ffmpeg

由于之前项目需要用到ffmpeg视频编解码在Nano上硬件加速功能,需要自己编译ffmpeg。

于是在我系统中存在两个版本的ffmpeg。

在编译OpenCV 4.6.0 cmake-gui界面上进行配置时,我的ffmpeg库默认路径如下  

发现两种库都有调用,这或许就是之前编译的OpenCV 4.6.0无法打开视频文件的原因,于是做了以下两种调整。分别进行编译并测试。

方案一:

方案二:

测试结果表明,只有通过方案一编译的OpenCV 才可以成功无警告打开视频文件并抓取帧图像。视频打开模式可以选择cv::CAP_ANY(默认)及cv::CAP_FFMPEG。即:

cv::VideoCapture capture;
capture.open("test.mp4");
或
capture.open("test.mp4", cv::CAP_FFMPEG);

至此问题解决。

Ubuntu 系统 OpenCV 4 无法打开视频文件解决方案相关推荐

  1. Qt+OpenCV打开视频文件并在窗口界面上显示

    Qt+OpenCV打开视频文件并在窗口界面上显示 1.新建一个Qt Widgets Application,工程配置文件(.pro文件)内容如下: #------------------------- ...

  2. Python调用OpenCV接口播放本地视频文件、本地和网络摄像头

    1 前言 上篇文章介绍了在WIN10系统上, C++调用OpenCV接口,播放本地视频文件.本地和网络摄像头视频.本篇我们来看一下,Python如何调用OpenCV接口,做同样的事情. 序号 视频来源 ...

  3. ubuntu系统root权限登录下载系统内文件

    ubuntu系统root权限登录下载系统内文件 1.找到系统sshd_config   配置文件:/etc/ssh/ sshd_config ,使用vi  sshd_config命令进行编辑 2.重新 ...

  4. php让视频自动全屏播放,完美解码怎么设置打开视频文件就全屏

    想不想在电脑上实现打开视频文件就直接全屏播放,一般播放器做不到吧,完美解码这个万能的视频播放器就能实现,下面就教你如何设置. 软件名称:完美解码(PureCodec) 全能型影音解码包20200922 ...

  5. JAVA系统下的FLASH,FLV视频应用解决方案(转载)

    JAVA系统下的FLASH,FLV视频应用解决方案 2006年11月20日15:59星期一  [资料] 最近网络上FLV视频应用越来越多了.使用这种方案的好处是:一定程度上可以保护作品版权,易于视频作 ...

  6. 【嵌入式05】Ubuntu下opencv新手操作:(打开图片及视频)

    每一个程序背后都站着一堆优秀的代码库. 通过学习opencv图像库编程,了解如何借助第三方库函数完成一个综合程序设计. 一.关于opencv的安装 二.编写一个打开图片进行特效显示的代码 1.撰写代码 ...

  7. Ubuntu系统OpenCV安装及摄像头获取实例

    文章目录 一.OpenCV简介 二.安装OpenCV 1.安装准备 1.1安装cmake 1.2安装依赖库 1.3下载OpenCV安装包 2.安装 2.1解压 2.2新建 2.3cmake编译 2.4 ...

  8. Opencv4.5无法打开MP4等格式视频文件解决方案

    Windows 在build目录下有三个dll: opencv_world455.dll opencv_videoio_msmf455_64.dll opencv_videoio_ffmpeg455_ ...

  9. 用Python打开视频文件

    Python简介 Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品.Python提供了高效的高级数据结构,还能简单有效地面向对象编程.Py ...

最新文章

  1. 图片资源 php,php图片转为资源数据
  2. sqlanyshere转mysql_【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)
  3. 现代谱估计:多窗口谱
  4. matlab 最小二乘法拟合_计量与论文串讲:最小二乘法
  5. MSBuild编译扩展
  6. 手写数字识别中多元分类原理_广告行业中那些趣事系列:从理论到实战BERT知识蒸馏...
  7. 重庆邮电大学计算机科学与技术培养方案,重庆邮电大学计算机科学与技术学院.doc...
  8. 假如古代有了云计算,延禧攻略里的各位嫔妃要如何宫斗
  9. 706. 设计哈希映射
  10. 拓端tecdat|python缺失值处理案例分析:泰坦尼克数据
  11. 【雷达通信】基于matlab多普勒连续波测速【含Matlab源码 642期】
  12. 向量化回测系列2——全市场股票回测
  13. Badboy提示脚本错误解决方法
  14. 脱壳之aspack压缩壳
  15. Base64和Base64URL加解密
  16. Android开发之使用贝塞尔曲线实现黏性水珠下拉效果
  17. CSS diaplay=“grid“未生效与display:block
  18. 花氏族谱(花姓族谱)
  19. 微信公众号怎么集赞服务器,【微信点赞】_微信怎么点赞如何集赞微信点赞活动新手必备点赞教程...
  20. Windows11无法使用PIN码进入系统

热门文章

  1. 二,ESP8266 GPIO和SPI和定时器和串口
  2. Python 操作 Excel,从 xlwings 模块开始
  3. SQL SERVER 获取差值最小的数据
  4. 山东科技大学计算机专硕复试录取比,山东科技大学图书情报(专硕)专业考研录取分数线-研究生分数线-历年分数线...
  5. 如何选择漏电保护器规格型号_如何选择漏电保护器型号?漏电保护器的选型原则...
  6. 巧用这几种文本检索工具,节省 80% 的时间
  7. python编程与t5哪个难_R和Python谁更好?这次让你「鱼与熊掌」兼得
  8. 开始java的第一堂课~
  9. 校企合作计算机专业共建协议书,校企合作共建实训基地的协议书
  10. 微信如何一键转发朋友圈?