ffmpeg的aarch64-linux-gnu交叉编译

本文所在系统环境ubuntu18.04

交叉编译工具链gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu

ffmpeg版本5.0.1

1.下载源码

ffmpeg官网:https://ffmpeg.org/download.html#build-linux

下载完解压

2.安装依赖

sudo apt-get install libmp3lame-dev libx264-dev libxvidcore-dev
sudo apt-get update && sudo apt-get -y install \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libgnutls28-dev \
  libmp3lame-dev \
  libsdl2-dev \
  libtool \
  libva-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  meson \
  ninja-build \
  pkg-config \
  texinfo \
  wget \
  yasm \
  zlib1g-dev \
  libunistring-dev

3.生成

进入ffmpeg源码文件中打开终端,记得修改最终生成路径--prefix,交叉编译工具链路径--cross-prefix,以及aarch64-linux-gnu-gcc与aarch64-linux-gnu-g++所在路径--cc、--cxx

chmod +x configure
./configure --enable-cross-compile --target-os=linux --arch=arm64 \
--cross-prefix=/home/fy/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \
--cc=/home/fy/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \
--cxx=/home/fy/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \
--prefix=/home/fy/LIBS/ffmpeg5.0.1_linux_arm64 \
--disable-asm  --enable-parsers --disable-decoders --enable-decoder=h264 --enable-decoder=aac --disable-debug --enable-ffmpeg --enable-shared --disable-static --disable-stripping --disable-doc

4.编译

需要sudo自己加

make -j$(nproc)

如果出现xxx权限不够,使用chmod加执行权限

sudo chmod -R 777 ./

5.安装

需要sudo自己加

 make install

 6.交叉编译带libx264的ffmpeg库(可选,结合上面的步骤看)

下载libx264,x264, the best H.264/AVC encoder - VideoLAN

 在ubuntu解压,编译方法为

./configure --cross-prefix=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \
--host=aarch64-linux \
--prefix=/home/fy/x264lib \
--enable-shared --disable-asm 
make -j$(nproc)
make install

注意修改自己交叉编译链路径--cross-prefix,目标路径--prefix,--host

再编译ffmpeg的选项如下

./configure --enable-cross-compile --target-os=linux --arch=aarch64 \
--cross-prefix=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \
--cc=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \
--cxx=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \
--prefix=/home/fy/ffmpeg5.0.1_build \
--disable-asm  --enable-parsers --enable-decoder=h264 --enable-decoder=aac --disable-debug --enable-ffmpeg --enable-shared --disable-static --disable-stripping --disable-doc --enable-gpl --enable-swresample --enable-libx264 \
--extra-libs=-ldl \
--extra-cflags="-I/home/fy/ffmpeg5.0.1/x264lib/include" \
--extra-ldflags="-L/home/fy/ffmpeg5.0.1/x264lib/lib"

这个警告提示缺少 aarch64-linux-gnu-pkg-config 工具,这可能会导致某些库的检测失败。pkg-config 是一个用于管理编译时依赖库信息的工具,它可以帮助编译器定位和链接所需的库文件。 为了解决这个问题,你可以尝试以下方法: 1. 安装 aarch64-linux-gnu-pkg-config 工具 你可以通过命令行安装 aarch64-linux-gnu-pkg-config 工具,例如: ``` sudo apt-get install pkg-config-aarch64-linux-gnu ``` 这将安装适用于 arm64 架构的 pkg-config 工具,并将其命名为 aarch64-linux-gnu-pkg-config。 2. 手动指定 pkg-config 路径 如果无法安装 aarch64-linux-gnu-pkg-config 工具,你可以手动指定 pkg-config 路径。在编译 FFmpeg 时,使用 PKG_CONFIG_PATH 环境变量来指定 pkg-config 的搜索路径,例如: ``` export PKG_CONFIG_PATH=/usr/local/arm64/lib/pkgconfig ``` 这将告诉编译器在 /usr/local/arm64/lib/pkgconfig 目录下搜索 pkg-config 配置文件,以便正确定位和链接库文件。 3. 确认库文件是否正确安装 如果以上方法仍然无法解决问题,你可以确认所需的库文件是否正确安装,并且在系统和环境变量中正确配置了库文件搜索路径。你可以尝试使用 ldconfig -p 命令来列出当前系统中可用的共享库文件和路径。 总之,pkg-config 是编译过程中需要的一个重要工具,缺少它可能会导致编译错误或运行时错误。你需要确保已正确安装所需的工具和库文件,并在编译选项中正确指定和配置它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值