[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9

目录

一、适用软硬件环境

二、下载OpenCV、FFMPEG源码

三、设置交叉工具编译链接路径(重要)

三、交叉编译ffmpeg源码

五、交叉编译OpenCV源码

六、部署安装相关lib库

七、测试运行相关lib库


一、适用软硬件环境

软件虚拟机:Ubuntu 18.04 topeet(北京迅为搭建)

软件交叉编译工具链:/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu

硬件开发板:北京迅为3568开发板、Firefly ROC-RK3588S-PC开发板等

编译目的:读取JPG图片数据,读取MP4视频数据,暂不支持视频编码(没有交叉编译x264)

二、下载OpenCV、FFMPEG源码

OpenCV版本:opencv-3.4.3,FFMPEG下载官网:https://opencv.org/releases/,本文版本下载链接:https://github.com/opencv/opencv/archive/3.4.3.zip

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第1张图片

FFmpeg版本:ffmpeg-4.2.9,FFMPEG下载官网:http://ffmpeg.org/download.html#releases ,本文版本下载链接:http://ffmpeg.org/releases/ffmpeg-4.2.9.tar.gz

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第2张图片

三、增加交叉工具编译工具环境变量(重要)

设置环境变量PATH,增加后注意不要关闭控制台,否则需要重新设置环境变量,后续操作都在当前控制台。

export PATH="/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH"

echo $PATH

aarch64-linux-gnu-gcc -v

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第3张图片

三、交叉编译ffmpeg源码

(1)新建opcncv3_build文件夹,解压缩ffmpeg源码命令:tar -zxvf ./ffmpeg-4.2.9.tar.gz

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第4张图片

(2)新建opencv3_install文件夹,用于存储交叉编译结果:

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第5张图片

(3)进入./ffmpeg-4.2.9文件夹

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第6张图片

(4)开始交叉编译ffmpeg源代码

./configure \
--enable-cross-compile \
--prefix=/home/topeet/workspace/opencv3_build/opencv3_install \
--cross-prefix=/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \
--arch=arm64 \
--target-os=linux \
--enable-gpl \
--extra-cflags=-fPIC \
--disable-filters \
--disable-encoders \
--enable-decoder=h264 --enable-parser=h264 --enable-demuxer=h264 \
--disable-asm  --enable-parsers --disable-debug --enable-ffmpeg --enable-shared --disable-static --disable-stripping --disable-doc --disable-yasm --disable-libx264

make

make install

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第7张图片

make和make install成功后,编译的lib文件[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第8张图片

五、交叉编译OpenCV源码

注:请使用步骤4所在的终端,不要重新打开终端,否则需要配置步骤4中的环境变量

(1)解压缩:unzip ./opencv-3.4.3.zip

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第9张图片

(2)在opencv-3.4.3文件夹内,执行 mkdir arm64_install_opencv3创建文件夹,并进入

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第10张图片

(3)设置交叉编译环境变量PKG_CONFIG_PATH

cp -r /home/topeet/workspace/opencv3_build/opencv3_install/lib/* /usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib
#可以不用复制上述lib,待验证


export PKG_CONFIG_PATH=/home/topeet/workspace/opencv3_build/opencv3_install/lib/pkgconfig/

source /etc/profile
#特别重要

(4)执行CMAKE,并交叉编译

cmake -D CMAKE_BUILD_TYPE=RELEASE  \
             -D CMAKE_INSTALL_PREFIX=/home/topeet/workspace/opencv3_build/opencv3_install \
             -D CMAKE_C_COMPILER=aarch64-linux-gnu-gcc \
             -D CMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ \
             -D BUILD_SHARED_LIBS=ON \
             -D CMAKE_CXX_FLAGS=-fPIC \
             -D CMAKE_C_FLAGS=-fPIC \
             -D CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl \
             -D ENABLE_PIC=ON \
             -D WITH_1394=OFF \
             -D WITH_ARAVIS=OFF \
             -D WITH_ARITH_DEC=ON \
             -D WITH_ARITH_ENC=ON \
             -D WITH_CLP=OFF \
             -D WITH_CUBLAS=OFF \
             -D WITH_CUDA=OFF \
             -D WITH_CUFFT=OFF \
             -D WITH_FFMPEG=ON \
             -D WITH_GSTREAMER=ON \
             -D WITH_GSTREAMER_0_10=OFF \
             -D WITH_HALIDE=OFF \
             -D WITH_HPX=OFF \
             -D WITH_IMGCODEC_HDR=ON \
             -D WITH_IMGCODEC_PXM=ON \
             -D WITH_IMGCODEC_SUNRASTER=ON \
             -D WITH_INF_ENGINE=OFF \
             -D WITH_IPP=OFF \
             -D WITH_ITT=OFF \
             -D WITH_JASPER=ON \
             -D WITH_JPEG=ON \
             -D WITH_LAPACK=ON \
             -D WITH_LIBREALSENSE=OFF \
             -D WITH_NVCUVID=OFF \
             -D WITH_OPENCL=OFF \
             -D WITH_OPENCLAMDBLAS=OFF \
             -D WITH_OPENCLAMDFFT=OFF \
             -D WITH_OPENCL_SVM=OFF \
             -D WITH_OPENEXR=OFF \
             -D WITH_OPENGL=OFF \
             -D WITH_OPENMP=OFF \
             -D WITH_OPENNNI=OFF \
             -D WITH_OPENNNI2=OFF \
             -D WITH_OPENVX=OFF \
             -D WITH_PNG=OFF \
             -D WITH_PROTOBUF=OFF \
             -D WITH_PTHREADS_PF=ON \
             -D WITH_PVAPI=OFF \
             -D WITH_QT=OFF \
             -D WITH_QUIRC=OFF \
             -D WITH_TBB=OFF \
             -D WITH_TIFF=ON \
             -D WITH_VULKAN=OFF \
             -D WITH_WEBP=ON \
             -D WITH_XIMEA=OFF \
             -D WITH_GTK=OFF -D WITH_GTK_2_X=OFF  ..


make -j8

make install

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第11张图片CMAKE执行后可以显示版本号:

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第12张图片

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第13张图片

编译成功后的lib库文件和include头文件:

[RK3588]瑞芯微3588S/3568交叉编译OpenCV3.4.3+FFmpeg4.2.9_第14张图片

六、部署安装相关lib库

打包压缩编译出的相关文件:

tar -zcvf opencv3_install.tar.gz ./opencv3_install

将相关lib文件拷贝至嵌入式目录 /lib64 文件夹中,即可运行

本文相关源代码及编译结果:https://download.csdn.net/download/dashuo0501/88485322

七、测试运行相关lib库

你可能感兴趣的:(RK3588,opencv,ffmpeg,人工智能)