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
相关推荐
xcyxiner11 分钟前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz5 天前
QML Hello World 入门示例
qt
xcyxiner8 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner9 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner9 天前
DicomViewer (添加模型类)3
qt
xcyxiner10 天前
DicomViewer (目录调整) 2
qt
xcyxiner10 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
桥田智能12 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
森G12 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
森G12 天前
77、线程池原理和实现------服务器源码解析----云视频服务项目
服务器·c++·qt