Android NDK 编译 FFmpeg:从下载源码到生成库的全过程

文章目录

  • 准备工作
    • 1. 准备 Linux 环境
    • 2. 下载 FFmpeg 源码
    • 3. 下载 ndk 工具
    • 4. 配置系统环境变量
  • 编译 FFmpeg 源码
    • 1. 编译选项简介
    • 2. 编写编译脚本
    • 3. 脚本使用说明
  • 参考资料

准备工作

1. 准备 Linux 环境

搭建 Linux 环境,网上已有很多的教程。本文使用的是 WSL2(Windows Subsystem for Linux) 环境,感兴趣的读者可在最后一章参考资料中了解更多信息。

2. 下载 FFmpeg 源码

  • 下载地址:https://ffmpeg.org/download.html#releases
  • 下载 5.1.4 版本:wget https://ffmpeg.org/releases/ffmpeg-5.1.4.tar.xz
  • 解压缩:tar -xvf ffmpeg-5.1.4.tar.xz

3. 下载 ndk 工具

  • 下载地址:https://developer.android.com/ndk/downloads?hl=zh-cn
  • 下载 ndk r26c 版本
  • 解压缩:unzip android-ndk-r26c-linux.zip

4. 配置系统环境变量

  • 拷贝解压后的 android-ndk-r26c-linux 目录到 ~/ndk 路径下
  • 命令行输入 vim ~/.bashrc 编辑 bashrc 文件
  • 在 bashrc 文件末尾追加以下内容后保存并退出:
export NDK_PATH=~/ndk/android-ndk-r26c
export PATH=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/:$PATH
  • 命令行输入 source ~/.bashrc

编译 FFmpeg 源码

1. 编译选项简介

FFmpeg 源码使用 configure 脚本进行编译前配置,使用 ./configure --help 可以查看支持的编译配置选项。
标准选项: 这些选项用于配置基本的编译和安装参数。例如,–prefix=PREFIX 选项用于指定安装路径。
授权选项: 这些选项用于控制 FFmpeg 的许可证。例如,–enable-gpl 选项允许使用 GPL 许可的代码。
编译和连接选项: 这些选项用于控制 FFmpeg 的编译配置。例如,–disable-static 选项用于禁用静态库的构建,–enable-shared 选项用于启用动态库的构建。
可执行程序控制选项: 这些选项用于控制是否构建特定的程序。例如,–disable-ffmpeg 选项用于禁用 ffmpeg 程序的构建。
文档选项: 这些选项用于控制是否构建文档。例如,–disable-doc 选项用于禁用文 档的构建。
组件控制选项: 这些选项用于控制是否构建特定的组件。例如,–disable-avdevice。

2. 编写编译脚本

新版 ndk 已放弃 gcc,转而使用更高效的 clang,下述脚本以 clang 为例编译 FFmpeg 源码。

 #!/bin/bash

 # NDK目录
 TOOLCHAIN=$NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64
 # 最低支持的android sdk版本
 API=21

 

你可能感兴趣的:(FFmpeg,在,Android,上的探索与实践,ffmpeg,android)