本想直接将opencv 交叉编译移植到zedboard上,但是一直不成功。所以决定先在PC下尝试。
之前运行opencv应用程序file.cpp,运行到函数capture = cvCaptureFromAAVI()AVIfile;时总是获取不到视频,返回NULL
原因也很简单,没有安装ffmpeg
ffmpeg简单的说就是视频编解码的工具,里面包含有视频音频处理库
包含的库有
libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能
libavcodec:用于各种类型声音/图像编解码
libavutil :包含一些公共的工具函数
libswscale:用于视频场景比例缩放、色彩映射转换
libpostproc:用于后期效果处理
ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等
ffsever:一个 HTTP 多媒体即时广播串流服务器
ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示。ffplay命令依赖与SDL库,所以没有SDL库或者ffplay无法使用的需要先安装SDL库
安装ffmpeg
源码目录下
./configure --enable-shared --enable-gpl --enable-swscale --disable-yasm
尽量不要添加用户安装目录--prefix=xxxx
因为自己添加的库以及头文件目录opencv编译不一定能找到,虽然我也在/etc/ld.so.config.conf中添加目录,但出错还是显示动态链接库没有找到,需要用pkg-config来