Ubuntu 系统 OpenCV 4 无法打开视频文件解决方案
目录
一、我的运行环境
二、问题描述
三、问题定位及分析
四、解决方案
一、我的运行环境
设备 | 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 无法打开视频文件解决方案相关推荐
- Qt+OpenCV打开视频文件并在窗口界面上显示
Qt+OpenCV打开视频文件并在窗口界面上显示 1.新建一个Qt Widgets Application,工程配置文件(.pro文件)内容如下: #------------------------- ...
- Python调用OpenCV接口播放本地视频文件、本地和网络摄像头
1 前言 上篇文章介绍了在WIN10系统上, C++调用OpenCV接口,播放本地视频文件.本地和网络摄像头视频.本篇我们来看一下,Python如何调用OpenCV接口,做同样的事情. 序号 视频来源 ...
- ubuntu系统root权限登录下载系统内文件
ubuntu系统root权限登录下载系统内文件 1.找到系统sshd_config 配置文件:/etc/ssh/ sshd_config ,使用vi sshd_config命令进行编辑 2.重新 ...
- php让视频自动全屏播放,完美解码怎么设置打开视频文件就全屏
想不想在电脑上实现打开视频文件就直接全屏播放,一般播放器做不到吧,完美解码这个万能的视频播放器就能实现,下面就教你如何设置. 软件名称:完美解码(PureCodec) 全能型影音解码包20200922 ...
- JAVA系统下的FLASH,FLV视频应用解决方案(转载)
JAVA系统下的FLASH,FLV视频应用解决方案 2006年11月20日15:59星期一 [资料] 最近网络上FLV视频应用越来越多了.使用这种方案的好处是:一定程度上可以保护作品版权,易于视频作 ...
- 【嵌入式05】Ubuntu下opencv新手操作:(打开图片及视频)
每一个程序背后都站着一堆优秀的代码库. 通过学习opencv图像库编程,了解如何借助第三方库函数完成一个综合程序设计. 一.关于opencv的安装 二.编写一个打开图片进行特效显示的代码 1.撰写代码 ...
- Ubuntu系统OpenCV安装及摄像头获取实例
文章目录 一.OpenCV简介 二.安装OpenCV 1.安装准备 1.1安装cmake 1.2安装依赖库 1.3下载OpenCV安装包 2.安装 2.1解压 2.2新建 2.3cmake编译 2.4 ...
- Opencv4.5无法打开MP4等格式视频文件解决方案
Windows 在build目录下有三个dll: opencv_world455.dll opencv_videoio_msmf455_64.dll opencv_videoio_ffmpeg455_ ...
- 用Python打开视频文件
Python简介 Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品.Python提供了高效的高级数据结构,还能简单有效地面向对象编程.Py ...
最新文章
- 图片资源 php,php图片转为资源数据
- sqlanyshere转mysql_【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)
- 现代谱估计:多窗口谱
- matlab 最小二乘法拟合_计量与论文串讲:最小二乘法
- MSBuild编译扩展
- 手写数字识别中多元分类原理_广告行业中那些趣事系列:从理论到实战BERT知识蒸馏...
- 重庆邮电大学计算机科学与技术培养方案,重庆邮电大学计算机科学与技术学院.doc...
- 假如古代有了云计算,延禧攻略里的各位嫔妃要如何宫斗
- 706. 设计哈希映射
- 拓端tecdat|python缺失值处理案例分析:泰坦尼克数据
- 【雷达通信】基于matlab多普勒连续波测速【含Matlab源码 642期】
- 向量化回测系列2——全市场股票回测
- Badboy提示脚本错误解决方法
- 脱壳之aspack压缩壳
- Base64和Base64URL加解密
- Android开发之使用贝塞尔曲线实现黏性水珠下拉效果
- CSS diaplay=“grid“未生效与display:block
- 花氏族谱(花姓族谱)
- 微信公众号怎么集赞服务器,【微信点赞】_微信怎么点赞如何集赞微信点赞活动新手必备点赞教程...
- Windows11无法使用PIN码进入系统
热门文章
- 二,ESP8266 GPIO和SPI和定时器和串口
- Python 操作 Excel,从 xlwings 模块开始
- SQL SERVER 获取差值最小的数据
- 山东科技大学计算机专硕复试录取比,山东科技大学图书情报(专硕)专业考研录取分数线-研究生分数线-历年分数线...
- 如何选择漏电保护器规格型号_如何选择漏电保护器型号?漏电保护器的选型原则...
- 巧用这几种文本检索工具,节省 80% 的时间
- python编程与t5哪个难_R和Python谁更好?这次让你「鱼与熊掌」兼得
- 开始java的第一堂课~
- 校企合作计算机专业共建协议书,校企合作共建实训基地的协议书
- 微信如何一键转发朋友圈?