cvCreateFileCapture函数打开视频文件失败
来源:互联网 发布:mitek木结构设计软件 编辑:程序博客网 时间:2024/05/14 16:49
我的系统仍然是Ubuntu 12.04LTS(32bit)
RT 在敲OpenCV第二个例程的时候 (代码如下)
#include <highgui.h>int main(int argc, char **argv){cvNamedWindow("Example2",CV_WINDOW_AUTOSIZE);CvCapture * capture = cvCreateFileCapture("1.avi");IplImage * frame;while(1){frame = cvQueryFrame(capture);if(!frame) break;cvShowImage("Example2",frame);char c = cvWaitKey(33);if(c == 27) break;}cvReleaseCapture(& capture);cvDestroyWindow ("Example2");}这段代码的功能就是用OpenCV来一帧一帧地处理 1.avi(例程中那个汽车行驶的视频)并在 Example2窗口中显示
这段代码编译正确但却不能执行的原因就是 cvCreateFIleCapture 此函数一直返回空的指针NULL 所以在执行到 if(!frame)的时候 直接break掉循环 导致不能正常加载视频文件
根本原因:Opencv库使用多种其它开源库作为工具和扩展,在linux下,一般采取源代码编译的方式安装opencv,这就需要预先安装所需的工具库,
例如ffmpeg 提供各种视频编解码, Intel TBB 提供并行运算功能等等。
但这些库并不是必须的,如果没有安装,OpenCV一样可以正常编译并安装,这就导致了使用中的一些奇怪的问题,例如无法读写视频。
解决办法:网上搜了一大堆帖子 终于找到一个最靠谱的 具体如下:
步骤1:之前我们解压OpenCV的源码包后 ,得到这个文件夹 OpenCV-2.4.3 ,cd进去(命令 cd OpenCV-2.4.3)ls 一下(命令 ls)发现 里面 有一个文件叫做 CMakeLists.txt ,
执行如下命令 (cmake CMakeLists.txt) 一下 ,目的是查看一下 我们的OpenCV 是否支持 ffmpeg
执行命令后 找到 ffmpeg 那一行 发现 我们的 FFMPEG 竟然是no 这就是问题的关键所在了 那么我们怎么把它变成 YES 呢?
步骤2:很简单,手动安装ffmpeg ,去这里http://www.ffmpeg.org/download.html下一个 压缩包 ,鼠标往下拉 ,选一个你喜欢的版本开始下载(点击Download gzip tarball)这个选项 下载后解压
步骤3:cd 进去解压后的文件夹 执行make命令, 耐心等一段时间后 再执行 sudo make install 安装到本地环境中 安装好后 可以 执行命令 (ffplay 1.avi)如果成功显示视频的话 恭喜你 你的ffmpeg已经安装完毕
步骤4:ffpeg安好了 下一步就是要重新编译我们的OpenCV 进入 OpenCV源代码目录 重新cmake一下 这个时候再 cmake CMakeLists.txt 一下 就会发现 原本的 FFMPEG 那一行 变成 YES 了!!
然后 执行命令 sudo make install 安装到本地环境下
重新编译例程 就会发现可以运行了!!!
一切OK!!
欢迎支持我的点点和豆瓣:
http://www.diandian.com/dianlog/messiandzcy
http://www.douban.com/people/zhangchengyu/
- cvCreateFileCapture函数打开视频文件失败
- 关于cvCreateFileCapture()读取视频文件失败的解决记录
- 关于cvCreateFileCapture()读取视频文件失败的解决方案
- Linux OpenCV读取视频失败,cvCreateFileCapture失败的解决
- OpenCV中调用cvCreateFileCapture函数返回NULL
- cvCaptureFromFile读取视频文件失败
- Linux下OpenCV中cvCreateFileCapture读入视频失败的解决
- ffmpeg打开视频文件步骤
- 打开笔记本摄像头保存视频文件
- opencv 打开选择视频文件框
- potplayer打开多个视频文件
- Python OpenCV3 VideoCapture读取视频文件失败解决方案
- android ndk 中open函数打开文件失败
- FFmpeg avformat_open_input函数打开acc,h264失败的错误问题
- stagefright测试MP4_AVC_AAC视频文件 打开-d 选项
- OpenCV 无法打开视频文件的解决办法
- ffmpeg opencv 打开视频文件,并且播放
- opencv 读取视频、打开摄像头、写入视频文件
- 参数不足,期待是1
- http://acm.hdu.edu.cn/showproblem.php?pid=3308&&线段树之区间合并
- VC在内存DC中画图写字但无法改变颜色
- 最亲爱的爷爷每年农历十月初二过生日
- New Features in Spring 3.0
- cvCreateFileCapture函数打开视频文件失败
- static关键字与函数指针的用法
- (表-中)IOT日常维护
- VC6.0类视图中部分或全部类不显示
- Linux----远程管理
- restfull web service
- php常用开发工具和开源框架
- View的OnTouch和OnClick事件不能并存问题
- (表-下)IOT head table