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

问题描述 投票:0回答:1

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

其他页面描述了如何使用centOS og rpm包进入工作安装。我们需要一个没有yum / rpm交叉的干净安装。

opencv amazon-ec2 libav
1个回答
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 thing-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 libav可用性

pkg-config --list-all
and check that the libavcodec, libavformat, libav... etc. packages are listed.

此时,可以使用默认工具构建和安装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是否已列出。

完成

© www.soinside.com 2019 - 2024. All rights reserved.