1. AAC 是什么?目前 MP3 已经如此流行,为什么还会出现 ACC?
- AAC(Advanced Audio Coding,高级音频编码),是由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia 等公司共同开发的
有损
音频编码和文件格式 - AAC:编码方面以较小的文件大小提供更高的质量,解码方面需要较少的处理能力
2. AAC LC 到 AAC HE V2 的发展历程?(了解即可)
3. 什么是编码器?什么是解码器?常见的 ACC 编解码器是哪两个?
- 如果想对 PCM 数据进行AAC 编码压缩,那么就要用到
AAC 编码器(encoder)
- 如果想将 AAC 编码后的数据解压出 PCM 数据,那么就要用到
AAC 解码器(decoder)
- ffmpeg_aac 和 fdk_aac
4. 手动编译 ffmpeg 的命令如下:
// 先保证如下库已经安装
brew install yasm
、brew install sdl2
、brew install fdk-aac
、brew install x264
、brew install x265
// 到 FFmpeg 的源码文件夹中,运行如下命令
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265
复制代码
// 用以指定编译好的 FFmpeg 安装到哪个目录
--prefix=/usr/local/ffmpeg
// 生成动态库
--enable-shared
// 不生成静态库
--disable-static
// x264、x265 要求开启GPL License
--enable-gpl
// fdk-aac 与 GPL 不兼容,需要通过开启 nonfree 进行配置
--enable-nonfree
// 将 fdk-acc 内置到 FFmpeg 中
--enable-libfdk-aac
// 将 x264 内置到 FFmpeg 中
--enable-libx264
// 将 x265 内置到 FFmpeg 中
--enable-libx265
复制代码
- 你可以通过
configure --help
命令查看每一个配置项的作用 - 最后运行
make install
或者sudo make install
完成手动编译FFmpeg
5. 通过如下命令验证我们手动编译 FFmpeg 成功,并且成功集成了 fdk_aac
ffmpeg -ar 44100 -ac 2 -f s16le -i 44100_s16le_2.pcm -c:a libfdk_aac out.aac
复制代码
6. 什么是 Makefile
文件?
Makefile
描述了整个项目的编译和链接等规则,可以使得项目的编译变得自动化,不需要每次都手动输入一堆源文件和参数- 比如哪些文件需要编译?哪些文件不需要编译?哪些文件需要先编译?哪些文件需要后编译?等等
7. 思考 ffmpeg 是如何找到 fdk_aac 库的呢?
otool -L libavcodec.dylib
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END