【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" ..
复制代码
相关推荐
Ysn07198 分钟前
YOLO-Master工程:experts.py 专家结构详解与目标检测专家设计启发
人工智能·yolo·目标检测
BingoGo10 分钟前
使用 GPT-6 Astra 模型 请立刻更新你的 Skill 与提示词
人工智能
香菜+14 分钟前
端侧视频分析 · 架构笔记
人工智能
s1ckrain16 分钟前
【论文阅读】A Survey on Vision–Language–Action Models for Embodied AI
论文阅读·人工智能·多模态·具身智能
深圳雨林凯AI34 分钟前
图案裂变的“风格归一化“设计思路:主体保得住,画风才拉得齐|雨林凯AI技术笔记
人工智能·笔记
DevNo43 分钟前
英文会议转中文纪要,三款AI工具实测体验
人工智能
深小乐1 小时前
AI 说话越来越难懂?Anthropic 员工都在用 ELI5 这个图解 Skill
人工智能
问天_观心1 小时前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
甲维斯1 小时前
我要吹爆GPT6了!实测3列惊为天人!
人工智能
pnoker1 小时前
IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
java·人工智能·物联网·iot·dc3