上一篇文章讲到FFmpeg默认的编译静态库中是没有音视频的编码器的,需要我们手动编译进FFmpeg,这篇文章就讲一样如何编译AAC音频编码器,主要还是对脚本的编写工作。

1、准备fdk-aac源文件

直接通过网络下载即可。

2、脚本文件编写

#!/bin/shCONFIGURE_FLAGS="--enable-static --with-pic=yes --disable-shared"ARCHS="arm64 x86_64 i386 armv7"# 源文件名
SOURCE="fdk-aac-0.1.6"
FAT="fdk-aac-ios"SCRATCH="scratch"
# thin当前脚本下的自定义文件,用于接收编译后的头文件和静态库
THIN=`pwd`/"thin"COMPILE="y"
LIPO="y"if [ "$*" ]
thenif [ "$*" = "lipo" ]then# skip compileCOMPILE=elseARCHS="$*"if [ $# -eq 1 ]then# skip lipoLIPO=fifi
fiif [ "$COMPILE" ]
thenCWD=`pwd`for ARCH in $ARCHSdoecho "building $ARCH..."mkdir -p "$SCRATCH/$ARCH"cd "$SCRATCH/$ARCH"CFLAGS="-arch $ARCH"if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]thenPLATFORM="iPhoneSimulator"CPU=if [ "$ARCH" = "x86_64" ]thenCFLAGS="$CFLAGS -mios-simulator-version-min=7.0"HOST="--host=x86_64-apple-darwin"elseCFLAGS="$CFLAGS -mios-simulator-version-min=7.0"HOST="--host=i386-apple-darwin"fielsePLATFORM="iPhoneOS"if [ $ARCH = arm64 ]thenHOST="--host=aarch64-apple-darwin"elseHOST="--host=arm-apple-darwin"fiCFLAGS="$CFLAGS -fembed-bitcode"fiXCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'`CC="xcrun -sdk $XCRUN_SDK clang -Wno-error=unused-command-line-argument-hard-error-in-future"AS="$CWD/$SOURCE/extras/gas-preprocessor.pl $CC"CXXFLAGS="$CFLAGS"LDFLAGS="$CFLAGS"$CWD/$SOURCE/configure \$CONFIGURE_FLAGS \$HOST \$CPU \CC="$CC" \CXX="$CC" \CPP="$CC -E" \AS="$AS" \CFLAGS="$CFLAGS" \LDFLAGS="$LDFLAGS" \CPPFLAGS="$CFLAGS" \--prefix="$THIN/$ARCH"make -j3 installcd $CWDdone
fiif [ "$LIPO" ]
thenecho "building fat binaries..."mkdir -p $FAT/libset - $ARCHSCWD=`pwd`cd $THIN/$1/libfor LIB in *.adocd $CWDlipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIBdonecd $CWDcp -rf $THIN/$1/include $FAT
fi

和前面编译x264一样,脚本内容大致差不多,通过这个脚本编译即可。

【免费】FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发-学习视频教程-腾讯课堂

免费学习地址:https://ke.qq.com/course/3202131?flowToken=1042495
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

3、编译

进入当前目录,打开终端进行编译就行。

$ chmod +x  build_fdk-aac_iOS_ptl.sh
$ ./build_fdk-aac_iOS_ptl.sh

如图编译后的目录结构:

到这里就完成了对fdk-aac的编译。

下一篇会讲如何把fdk-aac编译到FFmpeg里面。

七、FFmpeg使用---AAC音频编译相关推荐

  1. 解决ffmpeg获取AAC音频文件duration不准

    最近测试提出了一个bug,ijk获取到的aac文件的duration不准,发来一看,确实不准,在AE或者系统mediaplayer中得到的都是3m48s(准确时间是MMParserExtractor: ...

  2. ffmpeg系列-解决ffmpeg获取aac音频文件duration不准

    这个问题是这样产生的,一同事反应会随机出现ijk获取到的aac文件的duration不准,发来一看,确实不准,在AE或者系统mediaplayer中得到的都是8.4秒(准确时间是MtkAACExtra ...

  3. ffmpeg编码aac音频

    主要代码如下 #include<stdio.h> #include "libavutil/avutil.h" #include "libavutil/time ...

  4. 基于 FFMPEG 的音频编解码(一):Hello FFMPEG,安装与编译

    Hello FFMPEG 基于 FFMPEG 的音频编解码(一):Hello FFMPEG,安装与编译 基于 FFMPEG 的音频编解码(二):音频解码 基于 FFMPEG 的音频编解码(三):音频编 ...

  5. 在Linux环境下使用ffmpeg将PCM音频数据编码成aac数据

    在Linux环境下使用ffmpeg将PCM音频数据编码成aac数据 程序框图 代码演示 程序框图 将pcm数据经过aac编码器编码成aac数据,我是将从设备上采集的数据经过重采样送入aac编码器进行编 ...

  6. 使用FFMPEG分离mp4/flv文件中的264视频和aac音频

     准备 ffmpeg 4.4 一个MP4或flv格式的视频文件 分离流程 大致分为以下几个简单步骤: 1.使用avformat_open_input 函数打开文件并初始化结构AVFormatConte ...

  7. FFMPEG操作流数据-获取aac音频文件

    多媒体文件是一个容器,在容器里有很多的流(Stream/Track[翻译:轨]),如视频流.音频流.字幕流等. 常见操作 解复用 获取流(AVStream) 读数据包(AVPacket) 解码/编码( ...

  8. FFmpeg 解码 AAC 格式的音频

    FFmpeg 默认是可以解码 AAC 格式的音频,但是如果需要获取 PCM16 此类数据则需要经过音频转码.首先要打开解码器,然后向解码器发送 AAC 音频帧(不带 ADTS),然后从解码器获取解码后 ...

  9. 实验一 利用ffmpeg进行视音频信息提取 |音视频技术

    实验一 利用ffmpeg进行视音频信息提取 |音视频技术 一.实验目的 1.深入掌握视音频的基本参数信息 2.掌握ffmpeg编译环境配置 3.掌握和熟悉提取视音频文件的基本方法 二.实验要求 1.对 ...

最新文章

  1. 点击Ehlib列标题的快速排序方法
  2. Android之给图片添加涂鸦(文字)
  3. springfox-swagger-ui 在二级目录下的路径问题
  4. github的角色和人员结构
  5. 单例模式:Instance
  6. [蓝桥杯2016决赛]反幻方-next_permutation枚举
  7. 网络基础之 Nmap 命令
  8. servlet里面为什么有时候覆_为什么新来的经理强烈推荐?前后端分离知识,学到了...
  9. 认识零信任安全网络架构
  10. 韩国ETRI提出实时Anchor-Free实例分割算法CenterMask,代码将开源
  11. 二进制数据与16进制字符串相互转化方法
  12. python电脑版-python
  13. 《软件构架实践》(六) —— 构架编档
  14. 加载JDBC驱动程序
  15. 广东工业大学华立学院c语言试题,广东工业大学华立学院考试试卷《高频电子线路》-2015.doc...
  16. Lattice diamond软件中的Clarity Designer 与 IPexpress切换
  17. 内存条的写入速度比硬盘快很多
  18. 计算机网络三种模型(OSI模型、TCP/IP模型、五层通用模型)、各层作用
  19. 洛谷 【入门4】数组 P1427 小鱼的数字游戏
  20. 明源云客微信抢房技巧_微信抢房软件开发 - heartdong - OSCHINA - 中文开源技术交流社区...

热门文章

  1. 个人所得税 java_个人所得税计算java版
  2. 线性光耦在电流采样中的应用
  3. 操作系统-第四章存储器管理 计算题:已知逻辑地址求物理地址
  4. 服务器上进行java项目部署
  5. 通信线路工程验收规范_弱电施工规范与工艺标准
  6. python zxing 二维码识别
  7. 干货 | 实验室信息管理系统LIMS六大特点
  8. 《深度学习进阶:自然语言处理》natural language processing 的 jupyter notebook代码及笔记
  9. 制作Ubuntu的U盘启动盘
  10. JAVA毕设项目医院医护人员排班系统(java+VUE+Mybatis+Maven+Mysql)