10、交叉编译ffmpeg----------Opencv移植Arm

交叉编译ffmpeg

交叉编译ffmpeg

  1. 安装必要依赖
bash 复制代码
sudo apt-get update
sudo apt-get install build-essential git yasm cmake libx264-dev libx265-dev libvpx-dev libfdk-aac-dev libmp3lame-dev libopus-dev
sudo apt-get install -y yasm pkg-config libx264-dev libxvidcore-dev

2.设置交叉编译工具环境变量

bash 复制代码
# 设置交叉编译工具链环境变量
export TOOLCHAIN_PREFIX=aarch64-linux-gnu-
export SYSROOT=/opt/arm-sysroot

3.下载FFmpeg 源代码

bash 复制代码
# 下载 FFmpeg 源代码
mkdir ~/ffmpeg_build && cd ~/ffmpeg_build
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
git checkout n4.4  # 或最新稳定版本

4.配置和编译

bash 复制代码
# 配置 FFmpeg

./configure \
  --prefix=/opt/arm-sysroot/usr/local \
  --enable-gpl \
  --enable-libx264 \
  --enable-libxvid \
  --enable-nonfree \
  --enable-avresample \
  --enable-shared \
  --arch=aarch64 \
  --cross-prefix=aarch64-linux-gnu- \
  --target-os=linux \
  --disable-static \
  --enable-pic \
  --extra-cflags="-I/opt/arm-sysroot/usr/local/include" \
  --extra-ldflags="-L/opt/arm-sysroot/usr/local/lib"


# 编译并安装
make -j$(nproc)
make install

编译jpeg库

先克隆OpenJPEG源码仓库或者取下载release版本

bash 复制代码
git clone https://github.com/uclouvain/openjpeg.git
cd openjpeg

创建构建目录

bash 复制代码
mkdir build && cd build

创建交叉编译工具链文件

bash 复制代码
# aarch64-gnu.toolchain.cmake

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR aarch64)

# 交叉编译器路径
SET(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
SET(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)

运行cmake配置

bash 复制代码
cmake .. \
    -DCMAKE_TOOLCHAIN_FILE=./aarch64-gnu.toolchain.cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/opt/arm-sysroot/usr/local

编译并安装OpenJPEG

bash 复制代码
make -j4
make install
相关推荐
小短腿的代码世界2 小时前
Qt Concurrent 深度解析:并发编程范式与源码级实现原理
qt·系统架构·lucene
Ulyanov5 小时前
《PySide6 GUI开发指南:QML核心与实践》 第一篇:GUI新纪元——QML与PySide6生态系统全景
开发语言·python·qt·qml·雷达电子对抗
Drone_xjw9 小时前
解决 Qt 程序在 Kylin(麒麟)系统下表头“白屏”的问题
开发语言·qt·kylin
米优11 小时前
qt+gstreamer实现播放功能
qt·gstreamer
zjun100111 小时前
QT:语言翻译
开发语言·qt
-凌凌漆-13 小时前
【Qt】const QString &与QString的区别
开发语言·qt
Drone_xjw13 小时前
Qt QTableView 表头变白问题(Kylin/UKUI系统)原因分析与解决方案
开发语言·qt·kylin
mabing99313 小时前
Qt 实现自定义分段控制器
开发语言·qt
誰能久伴不乏14 小时前
Qt 混合编程核心原理:C++ 与 QML 通信机制详解
linux·c++·qt·架构·状态模式
sycmancia14 小时前
Qt——文本编辑器中的数据存取
开发语言·qt