编译 fdk-aac

server/2024/9/30 6:34:31/

文章目录


关于 fdk-aac

A standalone library of the Fraunhofer FDK AAC code from Android.

  • github : https://github.com/mstorsjo/fdk-aac
  • 代码托管 : https://sourceforge.net/projects/opencore-amr/

编译 fdk-aac

1、下载源码:
https://www.linuxfromscratch.org/blfs/view/svn/multimedia/fdk-aac.html

这里我使用 fdk-aac-2.0.3 :https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.3.tar.gz


2、下载脚本:https://github.com/kewlbear/fdk-aac-build-script-for-iOS

git clone https://github.com/kewlbear/fdk-aac-build-script-for-iOS

build-fdk-aac.sh 和 解压后的源码文件夹放在一级目录

fdk-acc % tree -L 1
.
├── README.md
├── build-fdk-aac.sh
└── fdk-aac-2.0.3

3、安装依赖库

brew install automake libtool

4、修改编译脚本 ./build-fdk-aac.sh
1) 去掉 i386 armv7, 留下 arm64 x86_64
2)SOURCE 改为源码解压后的名字 SOURCE="fdk-aac-2.0.3"


5、编译

./build-fdk-aac.sh

也可以指定需要的架构来执行

./build-fdk-aac.sh arm64 x86_64 

然后将分开编译的架构,放到一个包

./build-fdk-aac.sh lipo

6、完成

编译完成后,将生成文件夹 fdk-aac-ios

% cd fdk-aac-ios 
% tree
.
├── include
│   └── fdk-aac
│       ├── FDK_audio.h
│       ├── aacdecoder_lib.h
│       ├── aacenc_lib.h
│       ├── genericStds.h
│       ├── machine_type.h
│       └── syslib_channelMapDescr.h
└── lib└── libfdk-aac.a

在 FFMpeg 编译中启用

1、将 fdk-aac-ios 拖放到和 build-ffmpeg.sh 一级目录
一些教程建议只拖放 fdk-aac-ios 的 lib 部分,我的测试是,需要拖放全部。脚本中也会用到 include 和 lib 文件。

2、修改 脚本 build-ffmpeg.sh

将 19行的

#FDK_AAC=`pwd`/../fdk-aac-build-script-for-iOS/fdk-aac-ios

改为:

FDK_AAC=`pwd`/fdk-aac-ios

伊织 2024-05-05(日)


http://www.ppmy.cn/server/35097.html

相关文章

学习使用js创建class样式的方法代码整理

学习使用js创建class样式的方法代码整理 1、直接在JavaScript中添加样式2、创建一个class并通过JavaScript添加到元素上3、使用JavaScript动态创建并添加style标签 在JavaScript中创建一个class样式可以通过以下几种方式 1、直接在JavaScript中添加样式 document.getElementB…

渗透测试类面试非技术问题

1、此时你负责等保测评几台服务器设备,没有相关权限,客户不愿意提供,你如何处理 答: 梳理相关服务器的测评流程,让客户按测评流程走一遍,你看着他们操作,或者录屏等方式,如果这…

动态规划——背包问题(01,完全,多重)

一、01背包问题 1.题目描述 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 01背包问题特点&…

力扣面试150 简化路径 栈 模拟

Problem: 71. 简化路径 思路 &#x1f469;‍&#x1f3eb; 三叶题解 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) Code class Solution {public String simplifyPath(String path){ArrayDeque<String> d new ArrayDeque<>();…

RAG 修炼手册|一文讲透 RAG 背后的技术

今天我们继续剖析 RAG&#xff0c;将为大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理&#xff0c;以及它们是如何应用的。 01. 什么是 Embedding? Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。 在自然语言…

如何将 redis 快速部署为 docker 容器?

部署 Redis 作为 Docker 容器是一种快速、灵活且可重复使用的方式&#xff0c;特别适合开发、测试和部署环境。本文将详细介绍如何将 Redis 部署为 Docker 容器&#xff0c;包括 Docker 安装、Redis 容器配置、数据持久化、网络设置等方面。 步骤 1&#xff1a;安装 Docker 首…

Java进阶【十三期】:【异常处理】 (抛出捕获异常、自定义异常处理)、处理异常的几种方式 【(File】文件路径操作、File文件处理的综合练习

文章目录 Java进阶【十三期】&#xff1a;异常处理一、异常基本介绍二、编译异常和运行异常三、总结 异常的作用异常的处理方式一、JVM默认的处理方式二、自己处理异常自己 处理的问题 三、总结 Throwable 成员方法抛出异常总结 异常练习自定义异常 FileFile 三个 构造方法File…

红米1s 刷入魔趣 (Mokee)ROM(Android 7.1)

目录 背景准备工具硬件&#xff08;自己准备&#xff09;软件&#xff08;我会在文末提供链接&#xff09; 刷机步骤1. 重启电脑2. 安装驱动3. 刷入TWRP4. 清空数据5. 刷入魔趣6. 开机 结尾下载链接 本文由Jzwalliser原创&#xff0c;发布在CSDN平台上&#xff0c;遵循CC 4.0 B…