目前在做一个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("你的地址 ")
ss = True
while ss:
ss,frame = cap.read()
cv2.imshow("frame",frame)
cv2.waitKey(1)
cv2.destroyAllWindow()
百度云地址:
点击这里
密码:c3k2