在Ubuntu16.04上编译安装opencv2.1.13全过程(附资源)

        目前在做一个python-opencv读取RTSP流视频的项目,此行为需要得到有FFmepg库支持的opencv库,因此需要在ubuntu下安装opencv环境。在安装过程中有几个坑总结一下,避免大家入坑,最后在文末附上我的安装资源链接,希望小伙伴能积极点赞。

            首先环境配置:

            Ubuntu16.04(这个官网下比较好),ffmpeg2.4.14(切记不要用高版本3.*),opencv2.4.13,xvidcore1.3.2

            首先,如果系统是新安装上的,建议先换上阿里的源更新一下。为了避免后续编译找不到库,可以先安装一些支持库。

apt-get update
 
apt-get install build-essential 
apt-get install cmake git libgtk2.0-dev pkg-config 
apt-get install libavcodec-dev libavformat-dev libswscale-dev 
apt-get install python-dev python-numpy libtbb2 libtbb-dev 
apt-get install libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev libx264-dev 
apt-get install libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev  libswscale-dev  libv4l-dev 
apt-get install yasm
            然后解压xvidcore包,在命令行里进入相应路径比如我的是
cd /home/m/beifen/xvidcore-1.3.2/build/generic
然后依次执行
./configure  --prefix=/usr
make
make install
接下来进入ffmepg目录下:
cd /home/m/beifen/ffmpeg-2.4.14
执行:
./configure  --prefix=/usr/local/ffmpeg/  --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
然后依次执行(make过程有点慢,可以添加-j(CPU核数*2)加快速度,比如我的是 make -j8)
make  
make install
修改/etc/profile文件,在末尾加上
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib/"
保存后执行
source /etc/profile
在/etc/ld.so.conf.d目录下新建ffmepg.conf文件,写入/usr/local/ffmpeg保存后执行
ldconfig

接下来在opencv相应目录下执行:

 cd /home/m/beifen/opencv-2.4.13
mkdir build
cd build

再执行:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_TIFF=ON -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON  --WITHFFMPEG  ..
make
make install
至此所有的环境都已完成,如果出现了opencv版本使用冲突,就/etc/ld.so.conf.d目录下新建libopencv.conf文件,写入
/usr/local/lib

执行 ldconfig。在完成编译后记得在python里面查看一下版本:

import cv2
print cv2.__version__  //out 2.4.13
接下来就可以尝试提取RTSP视频了:
import cv2
cap = cv2.VideoCapture("rtsp://admin:[email protected]/h264/ch1/main/av_stream ")
ret = True
while ret:
    ret,frame = cap.read()
    cv2.imshow("frame",frame)
    cv2.waitKey(1)
cv2.destroyAllWindow()
百度云地址: 点击这里

密码:c3k2













猜你喜欢

转载自blog.csdn.net/qq_36243399/article/details/79768903
今日推荐