【RV1126B】opencv交叉编译with ffmepg

1. 交叉编译ffmpeg

bash 复制代码
(base) mahxn0@toy:~/workspace/rv1126B/FFmpeg-n7.0$ cat build.sh
export TOOLCHAIN=/opt/rv1126B/arm-rockchip1240-linux-gnueabihf
export SYSROOT=$TOOLCHAIN/arm-rockchip1240-linux-gnueabihf/sysroot
export CROSS_PREFIX=$TOOLCHAIN/bin/arm-rockchip1240-linux-gnueabihf-
export PREFIX=/opt/ffmpeg-arm32
#FOR STATIC
#./configure \
#    --prefix=$PREFIX \
#    --arch=arm \
#    --target-os=linux \
#    --cross-prefix=$CROSS_PREFIX \
#    --enable-cross-compile \
#    --enable-gpl \
#    --enable-nonfree \
#    --enable-pic \
#    --enable-static \
#    --disable-shared \
#    --disable-doc \
#    --disable-debug \
#    --enable-small \
#    --enable-neon \
#    --cpu=armv7-a \
#    --extra-cflags="-mfpu=neon -mfloat-abi=hard" \
#    --extra-ldflags="" \
#    --enable-asm

#FOR SHARED
./configure \
    --prefix=$PREFIX \
    --arch=arm \
    --cpu=armv7-a \
    --target-os=linux \
    --cross-prefix=$CROSS_PREFIX \
    --enable-cross-compile \
    --enable-shared \
    --disable-static \
    --enable-pic \
    --enable-gpl \
    --enable-nonfree \
    --enable-small \
    --enable-neon \
    --enable-asm \
    --disable-debug \
    --disable-doc \
    --extra-cflags="-mfpu=neon -mfloat-abi=hard --sysroot=$SYSROOT" \
    --extra-ldflags="--sysroot=$SYSROOT"

2. 交叉编译opencv

  1. 设置ffmpeg的环境变量

    bash 复制代码
    export PKG_CONFIG_PATH=/opt/ffmpeg-arm32/lib/pkgconfig:$PKG_CONFIG_PATH 
    export PKG_CONFIG_LIBDIR=/opt/ffmpeg-arm32/lib:$PKG_CONFIG_LIBDIR
    export LD_LIBRARY_PATH=/opt/ffmpeg-arm32/lib:$LD_LIBRARY_PATH 
  2. 生成tool_chain.cmake

    bash 复制代码
    SET(CMAKE_SYSTEM_NAME Linux)
    SET(CMAKE_SYSTEM_PROCESSOR armv7)
    
    #SET(CMAKE_SYSROOT /opt/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc)
    
    #SET(CMAKE_C_COMPILER /opt/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc)
    #SET(CMAKE_CXX_COMPILER /opt/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++)
    
    #FOR ARM
    
    SET(CMAKE_SYSROOT /opt/rv1126B/arm-rockchip1240-linux-gnueabihf/arm-rockchip1240-linux-gnueabihf/sysroot)
    SET(CMAKE_C_COMPILER /opt/rv1126B/arm-rockchip1240-linux-gnueabihf/bin/arm-rockchip1240-linux-gnueabihf-gcc)
    SET(CMAKE_CXX_COMPILER /opt/rv1126B/arm-rockchip1240-linux-gnueabihf/bin/arm-rockchip1240-linux-gnueabihf-g++)
    
    SET(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
    SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
  3. 编译

    bash 复制代码
    cmake -DCMAKE_INSTALL_PREFIX=../install -DENABLE_NEON=ON -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.12.0/modules -DWITH_FFMPEG=ON -DCMAKE_TOOLCHAIN_FILE=../tool_chain.cmake -DFFMPEG_INCLUDE_DIR=/opt/ffmpeg-arm32/include -DFFMPEG_LIB_DIR=/opt/ffmpeg-arm32/lib -DCMAKE_CXX_FLAGS="-march=armv7-a" -DCMAKE_C_FLAGS="-march=armv7-a" ..
复制代码
相关推荐
ar012313 小时前
AR汽车智能巡检-汽车运维的新技术变革
人工智能·ar
OpenMiniServer13 小时前
从大统一逻辑链到后大模型时代:AI系统意识的必然演化
人工智能
C系语言13 小时前
安装Python版本opencv命令
开发语言·python·opencv
福客AI智能客服13 小时前
体验突围:智能电商客服与AI客服软件重塑服务竞争新范式
人工智能
Maynor99613 小时前
CloudFlare:零成本搭建个人图床
人工智能
钮钴禄·爱因斯晨13 小时前
机器学习(二):KNN算法简介及API介绍(分类、回归)
人工智能·算法·机器学习·分类·回归
飞Link13 小时前
深度解析计算机视觉中的垂直与水平边缘检测
人工智能·计算机视觉
AC赳赳老秦13 小时前
Docker+DeepSeek:生成镜像优化Dockerfile与容器健康检查脚本
android·运维·人工智能·机器学习·docker·容器·deepseek
飞Link13 小时前
视觉领域的变革者:ViT (Vision Transformer) 深度解析与实战
人工智能·深度学习·transformer
一个帅气昵称啊13 小时前
AI搜索增强C#实现多平台联网搜索并且将HTML内容转换为结构化的Markdown格式并整合内容输出结果
人工智能·c#·html