ubuntu下交叉编译ffmpeg到目标架构为aarch架构的系统

Ubuntu下FFmpeg的aarch64-linux-gnu架构交叉编译教程

一、前言

有时候真的很想报警的,嵌入式算法部署花了好多时间了,RKNN 1808真是问题不少;甲方那边也是老是提新要求,真是受不了。

由于做目标检测,在C++代码中有对视频进行抽帧的需求,因此想要在C++代码和FFmpeg一起绑定了,于是用了Cmake工具。

下面介绍一下我的交叉编译环境:

  • 操作系统:Ubuntu 18.04
  • 系统架构:X86_64

二、编译步骤

下载源码
  1. 下载源码可点击【Download FFmpeg】,在该页面中Linux有多个操作系统选项,选择【Ubuntu -- Official packages】点进去页面。

  2. 然后滚动到页面底下,选择各版本的源码,一般来说稳定版比较好,我当时选择的是【7:6.0-6ubuntu1】,继续点进去页面。

  3. 进入页面后往下面滚动一小会,找到Download标题,下载第一个包,我下载的是【https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/ffmpeg/7:6.0-6ubuntu1/ffmpeg_6.0.orig.tar.xz】,包不大,放心下载。

  1. 然后将下载的文件,拷贝到你的Linux系统下某个目录,然后使用下面的命令解压:

    cmd 复制代码
    tar -xJf XXX

    其中XXX是你下载下来的文件名,比如我的是【ffmpeg_6.0.orig.tar.xz】

编译安装
  1. 解压后,命令行,进入对应目录,先运行以下命令,赋予可执行权限:

    cmd 复制代码
    chmod +x configure
  2. 然后运行下面的命令,完成生成:

    cmd 复制代码
    ./configure --enable-cross-compile --target-os=linux --arch=arm64 \
    --cross-prefix=/17106/Pengcaiping/gcc-linaro-6.4.1-2017.08-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \
    --cc=/17106/Pengcaiping/gcc-linaro-6.4.1-2017.08-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \
    --cxx=/17106/Pengcaiping/gcc-linaro-6.4.1-2017.08-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \
    --prefix=/17106/tools/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
    • 【--arch=arm64】表示目标架构为arm64,该架构等同于aarch64

    • 【--cross-prefix】指定交叉编译器的路径

    • 【--cc】指定C编译器的路径

    • 【--cxx】指定C++编译器的路径

    • 【--prefix】指定安装路径

    • 后面的参数便不用了解了,前面这些介绍了的都要进行明确指定,然后如果你还没有交叉编译器,就去下载

      可以去交叉编译器发布页【Linaro Releases】下载编译器,这里有很多版本,可以点带【latest】标志的文件夹进去

      然后选择【aarch64-linux-gnu

      接着选择【gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz】,这里跟你选择时,版本号可能有出入,然后就下载完成了。

      下载后放到Ubuntu某个文件夹下进行,解压即可,解压后,可以仿照我的路径写交叉编译器的路径

  3. 运行下面的命令,完成编译

    cmd 复制代码
    make -j$(nproc)

    这个命令会启动多个编译进程,数量和你的处理器核心数相同,从而加速编译过程。

  4. 运行下面的命令完成安装

    cmd 复制代码
    make install

三、心灵的救赎

倘若你的眼镜真是这样冷,在你鉴照下,有个人的心会结成冰。------沈从文《月下》

刚刚好,看见你幸福的样子,于是幸福着你的幸福。------树上春树

相关推荐
cui_win41 分钟前
【内存】Linux 内核优化实战 - net.ipv4.tcp_tw_reuse
linux·网络·tcp/ip
BD_Marathon2 小时前
Ubuntu:Mysql服务器
服务器·mysql·ubuntu
CodeWithMe4 小时前
【Note】《深入理解Linux内核》 Chapter 15 :深入理解 Linux 页缓存
linux·spring·缓存
0wioiw04 小时前
Ubuntu基础(监控重启和查找程序)
linux·服务器·ubuntu
Tipriest_4 小时前
Ubuntu常用的软件格式deb, rpm, dmg, AppImage等打包及使用方法
linux·运维·ubuntu
GBXLUO4 小时前
windows的vscode无法通过ssh连接ubuntu的解决办法
vscode·ubuntu
胡斌附体5 小时前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
愚润求学5 小时前
【Linux】自旋锁和读写锁
linux·运维
大锦终5 小时前
【Linux】常用基本指令
linux·运维·服务器·centos
IT项目管理5 小时前
达梦数据库DMHS介绍及安装部署
linux·数据库