交叉编译ffmpeg
交叉编译ffmpeg
- 安装必要依赖
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