【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" ..
复制代码
相关推荐
Zzj_tju3 分钟前
大语言模型技术指南:Transformer 为什么能成为基础架构?核心模块与参数怎么理解
人工智能·语言模型·transformer
gorgeous(๑>؂<๑)10 分钟前
【CVPR26-韩国科学技术院】令牌扭曲技术助力多模态大语言模型从邻近视角观察场景
人工智能·语言模型·自然语言处理
AC赳赳老秦24 分钟前
OpenClaw email技能:批量发送邮件、自动回复,高效处理工作邮件
运维·人工智能·python·django·自动化·deepseek·openclaw
用户78245208077943 分钟前
一些容易混淆的点(个人记录)
人工智能
胡志辉1 小时前
OpenClaw 教程:新 Mac 从 0 配到国产 AI、飞书微信和无人值守
人工智能·神经网络
机器之心1 小时前
全球第一,13个SOTA!我们找到了龙虾界掌管GUI的神
人工智能·openai
AI问答工程师1 小时前
Meta Muse Spark 的"思维压缩"到底是什么?我用 Python 复现了核心思路(附代码)
人工智能·python
机器之心1 小时前
大佬深度解析:Coding Agent的底层运行逻辑是什么?
人工智能·openai
爱吃的小肥羊1 小时前
Claude降智再被实锤!推理能力严重下滑,用户连夜跑路 Codex
人工智能·aigc·openai
MWWZ1 小时前
最近的一些软件更新
opencv·算法·计算机视觉