Raspberry Pi 4B编译opencv-4.5.0
编译平台RPI4B 2G版本,系统版本:“Linux raspberrypi 5.4.73-v8+ #1360 SMP PREEMPT Thu Oct 29 16:00:37 GMT 2020 aarch64 GNU/Linux”
准备编译的目标是opencv最新的4.5.0.如果不到gstreamer和ffmpeg安装,在处理视频流时很难用硬件加速来编解码。所以最好的办法时安装这两个工具。其中gstreamer在nvidia jetson平台上也被经常使用。所以在RPI4B上尽量安装
部分参考Install OpenCV 4.3.0 on Raspberry 64 OS,非常感谢。
提前准备
当然一切开始之前要:
sudo apt update
sudo apt upgrade
1. 安装和编译ffmpeg
这一步最复杂。需要先安装和编译很多依赖库,但也是所有可以成功的前提。
1.1 安装依赖项
sudo apt-get -y install \
autoconf \
automake \
build-essential \
cmake \
doxygen \
git \
graphviz \
imagemagick \
libasound2-dev \
libass-dev \
libavcodec-dev \
libavdevice-dev \
libavfilter-dev \
libavformat-dev \
libavutil-dev \
libfreetype6-dev \
libgmp-dev \
libmp3lame-dev \
libopencore-amrnb-dev \
libopencore-amrwb-dev \
libopus-dev \
librtmp-dev \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-net-dev \
libsdl2-ttf-dev \
libsnappy-dev \
libsoxr-dev \
libssh-dev \
libssl-dev \
libtool \
libv4l-dev \
libva-dev \
libvdpau-dev \
libvo-amrwbenc-dev \
libvorbis-dev \
libwebp-dev \
libx264-dev \
libx265-dev \
libxcb-shape0-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
libxcb1-dev \
libxml2-dev \
lzma-dev \
meson \
nasm \
pkg-config \
python3-dev \
python3-pip \
texinfo \
wget \
yasm \
zlib1g-dev
1.2 安装和编译fdk-aac,dav1d,kvazaar,libvpx,aom,zimg
这几个库的作用自己查找,其实我也不太懂。这几个库我自己不太建议用git clone的方式。
原因是会下载很多其他版本的源文件。最重要的是,你可以通过自己的PC使用vpn之后下载这几个库,成功率比较高。否则,在没有配置vpn的情况下。很可能卡在这一步很长时间。
注意以下操作步骤都在假定你已经解压了下载的文件(解压命令很简单 tar -xzvf *.tar.bz),并且已经进入了解压之后的目录里面。
下文全用make -j2,其实可以用j4但是为了稳健。
1.2.1 #AAC: fdk-aac
地址:https://github.com/mstorsjo/fdk-aac
编译步骤// 先configure,然后make,最后安装:
autoreconf -fiv
./configure
make -j2
sudo make install
1.2.2 #AV1: dav1d
地址:https://code.videolan.org/videolan/dav1d
编译步骤// 建目录,meson配置,ninja编译,安装:
mkdir build && cd build
meson ..
ninja