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

三、心灵的救赎

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

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

相关推荐
悟空空心几秒前
iperf3的介绍与舒勇
linux·网络
一尘之中7 分钟前
二进制与十六进制数据转换:原理、实现与应用
linux·c语言·人工智能
风口上的吱吱鼠12 分钟前
记录 ubuntu 安装中文语言出现 software database is broken
linux·服务器·前端
newdf观察者14 分钟前
penEuler操作系统结合豆包测试github仓库8086-Emulator项目
linux·运维·github
绵绵细雨中的乡音23 分钟前
Linux进程学习【进程地址】
linux·学习
Lw老王要学习30 分钟前
Linux架构篇、第四章_ELK与EFK-7.17.9的日志管理
linux·运维·elk·架构·云计算
知北游天31 分钟前
Linux:进程间通信---消息队列&&信号量
linux·服务器
liuyunluoxiao42 分钟前
进程间通信--管道【Linux操作系统】
linux
辰尘_星启1 小时前
【Debian】关于LubanCat-RK3588s开发板安装Debian的一些事
运维·ubuntu·debian
NON-JUDGMENTAL1 小时前
CentOS 7 修改锁屏时间为永不
linux·运维·centos