带有libav的OpenCV用于Amazon EC2 AMI上的编解码器

时间:2019-03-30 00:59:13

标签: opencv amazon-ec2 libav

我们有一个需要使用opencv的最新版本的应用程序,并且具有pkg-config可见性和共享库。但是,我们要在其上部署的Amazon EC2 AMI实例不包括用于编解码器的yum软件包或opencv软件包。

其他页面介绍了如何使用centOS og rpm软件包进行有效安装。我们需要全新安装,且没有yum / rpm交叉。

1 个答案:

答案 0 :(得分:0)

这些步骤很可能是到达目标的较短路径之一。起始目录位置无关紧要,因为第一行可确保合理的(〜/ build)初始工作目录:

cd ~/ && mkdir build && cd build/
sudo yum install git cmake gcc-c++

为编解码器构建libav(-prefix选项可能不是必需的,但这是经过测试的有效版本)

wget https://libav.org/releases/libav-12.3.tar.xz
tar xzf libav-12.3.tar.gz
mkdir libav-12.3-build && cd libav-12.3-build
/home/ec2-user/build/libav-12.3/configure --prefix=/usr --enable-shared --disable-static
make && sudo make install

亚马逊默认的pkg-config something-a-magic不会查看所有标准路径,因此下几行将相关* .pc文件符号链接到pkg-config(opencv使用)可以找到它们的位置。

cd /usr/share/pkgconfig
for t in `find /usr -name "libav*.pc"`; do sudo ln -s $t .; done
cd ~/build

libav共享库也必须可供链接器使用

echo /usr/lib/ > libav.conf
sudo mv libav.conf /etc/ld.so.conf.d/
sudo ldconfig

通过命令

pkg-config --list-all
检查pkg-config libav的可用性,并检查是否列出了libavcodec,libavformat,libav ...等软件包。

此时,可以使用默认工具构建和安装opencv库

git clone https://github.com/Itseez/opencv.git
mv opencv opencv.git
cd opencv.git/
git branch -r
git checkout 3.4
cd .. && mkdir opencv && cd opencv
cmake ../opencv.git/ && make && sudo make install
cd ..

最后的二进制文件要求链接器路径包含'''/ usr / local / lib64'''路径。

echo /usr/local/lib64 > opencv.conf
sudo mv opencv.conf /etc/ld.so.conf.d/
sudo ldconfig

最后一个技巧是同时为opencv启用pkg-config

cd /usr/share/pkg-config && ln -s `find /usr/local/ -name "opencv.pc"` . && cd ~/build

通过命令检查pkg-config的可用性

pkg-config --list-all

并检查是否列出了opencv。

完成