【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" ..
复制代码
相关推荐
摇滚侠8 小时前
AI 编程工具 《TRAE 官方手册》阅读笔记 AI 编程核心 上
人工智能·笔记
一个王同学9 小时前
从零到一 | CV转多模态大模型 | week19 | 基于 FastAPI 和 vLLM 的多模态大模型部署
人工智能·深度学习·计算机视觉·fastapi·改行学it·vllm
m沐沐9 小时前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
企业老板ai培训9 小时前
破解中小企业AI变现难:2026年企业AI培训与陪跑行业趋势深度报告,为何从‘陪跑’到‘变现’才是关键?
大数据·人工智能
神奇霸王龙10 小时前
国产音乐视频 Prompt 三段式屠夫榜:5 个国产视频模型实测对比
人工智能·ai·prompt·音视频·agent·ai编程·agi
OpenCSG11 小时前
Hugging Face遭遇AI Agent攻击:AI资产管理正在进入新阶段
人工智能·大模型
神奇霸王龙11 小时前
AI视频Prompt结构化实战指南:可灵/万相/豆包
人工智能·ai·prompt·aigc·音视频·ai编程
aax121345311 小时前
VOC 集群治理工程实操|美丽蓝天绿岛项目 RTO 工艺选型、管控方案与申报要
大数据·数据库·人工智能
Scott9999HH11 小时前
【工控选型破局】拒绝盲目溢价与低质陷阱:基于 Modbus-RTU 状态诊断与自适应滑动中值滤波的 C++ 实战,兼论“性价比高又好用的仪器仪表厂家”选型之道
人工智能
To_OC11 小时前
调了一上午 DeepSeek 参数,我终于摸透了 temperature 和 Top K 的真实作用
人工智能·llm·deepseek