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

三、心灵的救赎

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

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

相关推荐
Swaggy T1 小时前
自动驾驶控制算法——MPC控制算法
linux·人工智能·自动驾驶
可变羽翼核心8 小时前
Steam饥荒联机版多人服务器搭建全解析 -- 阿里云Linux系统构建云服务器
linux·运维·服务器
白云coy9 小时前
如何在 Ubuntu 24.04 LTS 上安装 Docker
ubuntu·docker·eureka
小孙姐11 小时前
Linux-Day12.DNS服务
linux·运维·服务器
小孙姐11 小时前
Linux-Day07.磁盘空间管理
linux·运维·服务器
fareast_mzh11 小时前
Remove anti-piracy XML in media (.mp4,.mkv) files using ffmpeg, mkvproedit
xml·ffmpeg·反反盗版
鹿鸣天涯12 小时前
Kali Linux 2025.2基于MITRE ATT&CK框架
linux·运维·网络
杜子不疼.12 小时前
《Linux编译器:gcc/g++食用指南》
linux·服务器·开发语言
水冗水孚14 小时前
😱😱😱CPU和内存飙到100%——我的火山引擎服务器被印度的ip恶意植入挖矿程序了!😡😡😡
服务器·ubuntu·centos
gnawkhhkwang15 小时前
Linux 调度器函数sched_*系统调用及示例
linux·服务器