当前位置: 首页 > news >正文

rv1126交叉编译opencv+ffmpeg+x264

文章目录

  • 🌕交叉编译x264
    • 🌙创建build_x264.sh(放在下载的x264目录下)
    • 🌙编译过程
    • 🌙查看编译后的so文件是否是arm版的
  • 🌕下载编译ffmpeg
    • 🌙下载ffmpeg
    • 🌙创建编译脚本
    • 🌙创建ffmpeg编译路径
    • 🌙编写脚本内容
    • 🌙验证是否编译成功
  • 🌕交叉编译opencv4.5.3
  • 🌕注意事项
  • 🌕参考博客

🌕交叉编译x264

git clone https://code.videolan.org/videolan/x264.git
cd x264

🌙创建build_x264.sh(放在下载的x264目录下)

#!/bin/bash
 
# 设置工具链路径
TOOLCHAIN_PATH=/bruce/RV1126/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
GCC_COMPILER=${TOOLCHAIN_PATH}/bin/arm-linux-gnueabihf
 
# 设置x264安装路径
X264_INSTALL_DIR=/bruce/software/rv1126_install/x264
 
# 配置交叉编译选项,直接指定 C 和 C++ 编译器
./configure --prefix=${X264_INSTALL_DIR} \
            --cross-prefix=${GCC_COMPILER}- \
            --cc=${GCC_COMPILER}-gcc \
            --cxx=${GCC_COMPILER}-g++ \
            --host=arm-linux \
            --enable-cross-compile \
            --enable-shared \
            --disable-static \
            --enable-pic \
            --extra-cflags="-g -I${TOOLCHAIN_PATH}/include" \
            --extra-ldflags="-L${TOOLCHAIN_PATH}/lib"
 
 
# 编译并安装x264
make -j$(nproc)
make install

🌙编译过程

在这里插入图片描述

🌙查看编译后的so文件是否是arm版的

# 进入安装路径的lib
cd /bruce/software/rv1126_install/x264/lib

在这里插入图片描述

# 输入
file libx264.so.157

在这里插入图片描述

🌕下载编译ffmpeg

🌙下载ffmpeg

由于后续编译安装的是opencv-4.5.3,为了使ffmpeg 和opencv版本匹配,选择ffmpeg-4.1.3进行交叉编译安装。

下载FFmpeg源码
FFMPEG_VERSION=4.1.3

wget https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2
tar -xjf ffmpeg-${FFMPEG_VERSION}.tar.bz2
cd ffmpeg-${FFMPEG_VERSION}

🌙创建编译脚本

cd /bruce/software/source/ffmpeg-4.1.3
touch build_ffmpeg.sh

🌙创建ffmpeg编译路径

/bruce/software/rv1126_install/ffmpeg

🌙编写脚本内容

#!/bin/bash
 
# 设置工具链路径
TOOLCHAIN_PATH=/bruce/RV1126/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
GCC_COMPILER=${TOOLCHAIN_PATH}/bin/arm-linux-gnueabihf

# 设置x264安装路径
X264_INSTALL_DIR=/bruce/software/rv1126_install/x264

# 设置FFmpeg安装路径
FFMPEG_INSTALL_DIR=/bruce/software/rv1126_install/ffmpeg
 
 
# 配置交叉编译选项,直接指定 C 和 C++ 编译器
./configure --prefix=${FFMPEG_INSTALL_DIR} \
            --cc=${GCC_COMPILER}-gcc \
            --cxx=${GCC_COMPILER}-g++ \
            --target-os=linux \
            --arch=arm \
            --enable-cross-compile \
            --enable-shared \
            --disable-static \
            --disable-debug \
            --disable-doc \
            --enable-gpl \
            --enable-libx264 \
            --enable-pic \
            --extra-cflags="-I${X264_INSTALL_DIR}/include -I${TOOLCHAIN_PATH}/include" \
            --extra-ldflags="-L${X264_INSTALL_DIR}/lib -L${TOOLCHAIN_PATH}/lib" \
            --strip=${GCC_COMPILER}-strip
 
# 编译并安装FFmpeg
make -j$(nproc)
make install
 
# 清理
# cd ..
# rm -rf ffmpeg-${FFMPEG_VERSION}
# rm ffmpeg-${FFMPEG_VERSION}.tar.bz2
 
echo "FFmpeg has been installed in ${FFMPEG_INSTALL_DIR}"

🌙验证是否编译成功

进入ffmpeg安装目录
cd uce/software/rv1126_install/ffmpeg/lib

在这里插入图片描述

验证得到的ffmpeg架构

file libavcodec.so.58.35.100

在这里插入图片描述

🌕交叉编译opencv4.5.3

opencv下载
可以去官网下载(或者采用git方法)opencv-4.5.3版本。

opencv_contrib下载
采用git方式下载opencv_contrib,后续需要进行一个版本验证。

#下载opencv_contrib
git clone https://github.com/opencv/opencv_contrib.git
#验证opencv_contrib对应的版本
git checkout 4.5.3

🌕注意事项

2025.1.23 编译带ffmpeg的Opencv一直失败
后来我退出docker,并把编译后的安装目录写为ffmpeg,而不是ffmpeg_4_5_3_rv1126,x264_rv1126。
然后就成功了。


在使用时可以在代码中添加如下代码,看看编译好的Opencv是否支持ffmpeg:
std::cout << "OpenCV FFmpeg support: " << cv::getBuildInformation() << std::endl;

🌕参考博客

RV1126编译opencv+ffmpeg+x264_rv1126 编译opencv ffmpeg-CSDN博客

rv1126 交叉编译opencv+ffmpeg+x264与简单demo测试

相关文章:

  • 【从零开始学习计算机科学】数字逻辑(七)触发器(FF)
  • RangeError: Radix must be an integer between 2 and 36
  • 生物信息学工作流(Bioinformatics Workflow):概念、历史、现状与展望?
  • ftp、sftp、tftp的区别
  • 【MySQL】第四章:数据类型
  • 【银河麒麟高级服务器操作系统实例】虚拟机桥接网络问题分析及处理
  • Biopython的基本使用步骤详解
  • qt creator示例空白
  • EasyRTC嵌入式音视频通话SDK:基于ICE与STUN/TURN的实时音视频通信解决方案
  • 操作系统 2.6-操作系统的初步实现
  • 【原创】springboot+vue核酸检测管理系统设计与实现
  • Kubernetes中的 iptables 规则介绍
  • educoder平台课-Python程序设计-2.数值类型与常用运算
  • 联合索引关于In和范围查询影响索引使用的情况分析
  • 解决开启Fiddle后,网页显示你的连接不是专用/私密连接
  • 使用服务器搭建无门槛ChatGPT WEB应用LobeChat
  • ​网络变压器的主要电性参数与测试方法(3)
  • 智慧消防新篇章:4G液位/压力传感器,筑牢安全防线!
  • 康托展开,逆康托展开,原理分析,题目练习
  • 那年周五放学
  • 有哪些官方网站做的比较好/深圳 网站制作
  • 打不开建设银行网站/seo网络优化招聘信息
  • 外国做动漫图片的网站叫什么/seo优化包括哪些内容
  • 做b612表情的素材网站/什么是sem和seo
  • 京东联盟网站怎么做/如何让自己的网站快速被百度收录
  • 丹徒网站建设价格/sem推广案例