# test **Repository Path**: liu-chaoyue/test ## Basic Information - **Project Name**: test - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-12-08 - **Last Updated**: 2021-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 安装ffmpeg+opencv **注1:本指导针对的是开发环境与运行环境不在同一服务器上的场景。** **注2:运行环境可以存在多种架构(如arm架构下的Centos系统、arm架构下的Euleros系统、x86架构下的Ubuntu系统等),本指导中以ai1s云端环境(x86架构下的Ubuntu系统)为例,故编译安装的opencv为x86版。** **注3:在安装opencv时,为了同时编译出python3-opencv,需要指定具体的python版本,由于难以源码编译出python3.7.5版本的opencv,本指导使用的python3版本为python3.6。** **以下操作在开发环境操作,本文以普通用户为 **HwHiAiUser** 为例,请根据实际情况进行修改。** 1. 用户权限配置 普通用户安装开发套件,需要有sudo权限,所以首先需要给普通用户配置权限。 切换为root用户 **su root** 给sudoer文件配置写权限,并打开该文件 **chmod u+w /etc/sudoers** **vi /etc/sudoers** 在该文件“ # User privilege specification”下面增加如下内容: **HwHiAiUser ALL=(ALL:ALL) ALL** ![输入图片说明](https://images.gitee.com/uploads/images/2020/1128/144046_7c02d0d0_7401379.png "屏幕截图.png") 完成后,执行以下命令取消“ /etc/sudoers”文件的写权限 **chmod u-w /etc/sudoers** 切换回普通用户 **exit** 2. apt源配置 由于安装过程中涉及很多apt依赖和pip依赖的安装,所以配置一个国内源是一个加快进度的好办法。 配置ubuntu18.04-x86的apt清华源 **sudo vi /etc/apt/sources.list** 将源文件内容替换为以下ubuntu18.04-x86的apt清华源 ``` # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse ``` 执行以下命令更新源 **apt-get update**

> **如果apt-get update失败,可以试用其他的国内源 https://www.cnblogs.com/dream4567/p/9690850.html** 3. pip源配置 创建并打开普通用户家目录下的.pip/pip.conf文件 **mkdir $HOME/.pip/** **vi $HOME/.pip/pip.conf** 将如下内容填写到pip.conf文件中 ``` [install] #可信主机,请根据实际情况进行替换。 trusted-host=cmc-cd-mirror.rnd.huawei.com [global] #可用的源,请根据实际情况进行替换。 index-url=http://cmc-cd-mirror.rnd.huawei.com/pypi/simple/ ``` 执行 **:wq!** 命令保存文件。 4. 安装相关依赖 在命令行中以普通用户执行以下命令,安装ffmpeg+opencv所需要的第三方依赖 **sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff5-dev libswscale-dev git cmake python3-setuptools python3-dev python3-pip pkg-config -y** **python3.6 -m pip install --upgrade pip** **python3.6 -m pip install Cython numpy --user** 5. 安装ffmpeg 1. 创建文件夹,用于存放编译后的文件 **mkdir -p $HOME/ascend_ddk/x86** 2. 下载ffmpeg **cd $HOME** **wget http://www.ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz** **tar -zxvf ffmpeg-4.1.3.tar.gz** **cd ffmpeg-4.1.3** 3. 安装ffmpeg **./configure --enable-shared --enable-pic --enable-static --disable-x86asm --prefix=/home/HwHiAiUser/ascend_ddk/x86** **make -j8** **make install** 4. 将ffmpeg添加到系统环境变量中,使得其他程序能够找到ffmpeg环境 切换为root用户 **su root** 打开conf配置文件 **vim /etc/ld.so.conf.d/ffmpeg.conf** 在末尾添加一行。 **/home/HwHiAiUser/ascend_ddk/x86/lib** 使配置生效 **ldconfig** 5. 配置profile系统文件 **vim /etc/profile** 在末尾添加一行 **export PATH=$PATH:/home/HwHiAiUser/ascend_ddk/x86/bin** 使配置文件生效 **source /etc/profile** 6. 使opencv能找到ffmpeg。 **cp /home/HwHiAiUser/ascend_ddk/x86/lib/pkgconfig/\* /usr/share/pkgconfig** 切换回普通用户 **exit** 6. 安装opencv 1. 下载opencv **cd \$HOME** **git clone -b 4.3.0 https://gitee.com/mirrors/opencv.git** **git clone -b 4.3.0 https://gitee.com/mirrors/opencv_contrib.git** **cd opencv** **mkdir build** **cd build** 2. 安装opencv ``` cmake -D BUILD_SHARED_LIBS=ON -D BUILD_opencv_python3=YES -D BUILD_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$HOME/ascend_ddk/x86 -D WITH_LIBV4L=ON -D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules -D PYTHON3_LIBRARIES=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/libpython3.6m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=$HOME/.local/lib/python3.6/site-packages/numpy/core/include/ -D OPENCV_SKIP_PYTHON_LOADER=ON -D CMAKE_INSTALL_PREFIX=$HOME/ascend_ddk/x86 .. ``` **make -j8** **make install** 3. 配置opencv 更新系统库 **sudo ldconfig** 7. 使python3.6-opencv生效 **sudo cp /home/HwHiAiUser/ascend_ddk/x86/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so /usr/lib/python3/dist-packages** 8. 修改环境变量 程序编译时会链接LD_LIBRARY_PATH环境变量地址中的库文件,所以要将ffmpeg和opencv安装的库文件地址加到环境变量中。 普通用户下执行以下命令进入配置文件 **vi ~/.bashrc** 在最后添加 ``` export LD_LIBRARY_PATH=${HOME}/ascend_ddk/x86/lib:${LD_LIBRARY_PATH} ``` 执行以下命令使环境变量生效。 **source ~/.bashrc** 9. 将开发环境安装的ffmpeg和opencv库导入运行环境中,以提供运行使用 **注意:以下操作在运行环境执行** 使用普通用户执行 **mkdir \$HOME/ascend_ddk** **scp -r HwHiAiUser@X.X.X.X:/home/HwHiAiUser/ascend_ddk/x86 \$HOME/ascend_ddk**

> **X.X.X.X请替换为开发环境的ip,HwHiAiUser请根据实际情况替换。** **sudo cp $HOME/ascend_ddk/x86/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so /usr/lib/python3/dist-packages**