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

三、心灵的救赎

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

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

相关推荐
寻月隐君13 分钟前
保姆级教程:Zsh + Oh My Zsh 终极配置,让你的 Ubuntu 终端效率倍增
linux·后端·命令行
XM-545815 分钟前
2025微信小程序wxapkg解包全攻略
linux·运维·小程序
朗晴1 小时前
文本编辑器VIM的使用方法!
linux·运维·服务器
Imagine Miracle1 小时前
Ubuntu for ARM 更换为阿里云镜像源
arm开发·ubuntu·阿里云
雨夜和阳晨4 小时前
FFmpeg录制屏幕及声音
ffmpeg
吴声子夜歌4 小时前
FFmpeg——基础知识及FFmpeg框架
ffmpeg
2401_826097629 小时前
JavaEE-Linux环境部署
java·linux·java-ee
(:满天星:)10 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
爱莉希雅&&&10 小时前
shell编程之awk命令详解
linux·服务器·git
笑稀了的野生俊10 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力