Advanced Audio Coding (AAC) 是 MP3 的后继格式,它被定义於 MPEG-4 part 3 (ISO/IEC 14496-3)。它通常使用在 MP4 容器内;对于音乐习惯上使用 .m4a 副档名。第二常见使用是在 MKV (Matroska) 档内,因为它比 MP4 支援更多以文字为基础的软字幕 (例如 ass, ssa…)。本文中的范例将使用 MP4 与 M4A 副档名。

FFmpeg 可以支援 4 个 AAC-LC 编码器 (aac, libfaac, libfdk_aac, libvo_aacenc) 与两个 AAC-HE 编码器 (libaacplus, libfdk_aac)。libaacplus, libfaac, libfdk_aac 的授权不与 GPL 相容,所以当 GPU 授权源代码也包含在内时 GPU 不允许包含源代码授权依据这些授权的二进位档的发布。因此这些编码器被指定为 “non-free”,且你不能下载内建它们的 ffmpeg。这可以透过自行编译 ffmpeg 来解决。

对于 AAC-LC 品质而言,其答案可能是:
libfdk_aac > libfaac > Native FFmpeg AAC encoder (aac) > libvo_aacenc
https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio#AudioencodersFFmpegcanuse

libfdk_aac

The Fraunhofer FDK AAC 编解码程式库。这是目前 ffmpeg 所能提供的最高品质 AAC 编码器。需要 ffmpeg 组态 (configuration) 中含有 –enable-libfdk-aac (如果也使用 –enable-gpl 则还需要 –enable-nonfree)。

详细资料: Fraunhofer FDK AAC – Hydrogenaud

Constant Bit Rate (CBR, 常数位元速率) 模式

指定一个目标位元速率。它可以让你精準控制输出档案大小 (= 位元率 * 时间长度),且它与 HE-AAC profile 相容。由经验得知,双声道推荐 位元率 >= 128kbps,6 声道则推荐位元率 >= 384kbps (由 双声道位元率 * 声道数 / 2)。使用 -b 选项来控制输出位元速率。

范例:

转换一个音讯档为 AAC 并以 M4A (MP4) 容器来封装:

ffmpeg -i input.wav -c:a libfdk_aac -b:a 128k output.m4a

转换一个影片的 5.1 生到音讯为 AAC,并复制其视讯串流:

ffmpeg -i input.mp4 -c:v copy -c:a libfdk_aac -b:a 384k output.mp4

Variable Bit Rate (VBR, 可变位元速率) 模式

指定一个目标品质,而不是特定的位元速率。设定值范围为 1-5,较高的值会得到较高的位元率与品质。使用 -vbr 选项来设定 VBR 等级。

范例:

转换一个音讯档为 AAC 并以 M4A (MP4) 容器来封装:

ffmpeg -i input.wav -c:a libfdk_aac -vbr 3 output.m4a

转换一个影片的 5.1 生到音讯为 AAC,并复制其视讯串流:

ffmpeg -i input.mp4 -c:v copy -c:a libfdk_aac -vbr 3 output.mp4

High-Efficiency AAC

简称 AAC-HE 又名为 aacPlus,这是一对专门针对低位元速率的 AAC profiles (version 1 与 version 2),AAC-HE v1。对于双声道而言 (如下图所示),AAC-HE v1 适用于 96kbps 以下,而 AAC-HE v2 适用于 48kbps 以下。但大多数播放设备不支援播放任何版本的 AAC-HE 而只能播放 AAC-LC。

x 轴为音质; y 轴为位元率

注意: AAC-HE v2 只能处理双声道。如果需要降混 (down-mix) 至 单声道,则使用 AAC-HE v1。

如果需要指定 Profile 则使用 -profile 选项。

Profiles:
aac_low
MPEG-4 AAC LC (default)
aac_he
MPEG-4 HE-AAC (SBR)
aac_he_v2
MPEG-4 HE-AAC v2 (SBR+PS)
aac_ld
MPEG-4 AAC LD
aac_eld
MPEG-4 AAC ELD

例如:

ffmpeg -i input.wav -ac 2 -c:a libfdk_aac -profile:a aac_he -vbr 3 output.m4a

Native FFmpeg AAC encoder
原生 (Native) FFmpeg AAC 编码器是已包含在 ffmpeg 内,而且它不像本文中其它 AAC 编码器那样需要一个外部程式库。注意这将不会让你得到如同 libfdk_aac 一样的良好结果。这被认为是实验性的编码器,所以需要 “-strict experimental” 或 “-strict -2 is”。

指定位元率

使用 -b 选项来指定输出位元率为 240kbps:

ffmpeg -i input.wav -strict experimental -c:a aac -b:a 240k output.m4a

指定品质

使用 -q 选项来指定输出品质等级为 6:

ffmpeg -i input.wav -strict experimental -c:a aac -q:a 6 output.m4a

设定值有效范围为 0.1-10。比较高的设定值会得到较高的输出品质与位元率大小。
此 VBR 是实验性的并且有可能得到比 CBR 更差的结果。

libvo_aacenc

VisualOn AAC 编码程式库。需要 ffmpeg 组态 (configuration) 中含有 –enable-libvo-aacenc。它有非 non-free 的优点,但它是一个更差的编码器比起 libfdk_aac 甚至 原生的 FFmpeg AAC 编码器,根据 FFmpeg AACの音质评価。此编码器最多只支援 2 声道,并只有 CBR 模式,而且不支援 VBR 输出。

CBR 128Kbps:

ffmpeg -i input.wav -ac 2 -c:a libvo_aacenc -b:a 128k output.m4a

附:

HE-AAC, HE-AAC v2品质 高品质比特率 HE-AAC:32至48kbit/s 单声道 HE-AAC v2:16至24kbit/s 单声道 高品质音频采样率 24至96kHz声道 单声道、立体声、多声道(如5.1、7.1)应用 DVB(数 字视频广播)、ISDB(综合业务数字广播)、ARIB、ATSC-M/H、DAB+(数字音频广播)、DRM+(数字版权管理)、DRM、DVB- H(手持式数字视频广播)、DMB(数字多媒体广播)、MediaFLO、3GPP、XM广播、移动电话、音频和视频下载服务

AAC-LC品质 达到统计学标准的清晰度比特率 最高每通道256kbit/s采样率 8至96kHz声道 单声道、立体声、多声道(如5.1、7.1)应用 苹果 iPod、 iTunes、QuickTime、 日本ISDB(综合业务数字广播)、 AV 接收器、汽车收音机、移动音乐播放器、移动电话

AAC 编码基本说明相关推荐

  1. 采集音频和摄像头视频并实时H264编码及AAC编码

    0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...

  2. 采集音频和摄像头视频并实时H264编码及AAC编码[转]

    0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...

  3. 【Android RTMP】音频数据采集编码 ( FAAC 音频编码参数设置 | FAAC 编码器创建 | 获取编码器参数 | 设置 AAC 编码规格 | 设置编码器输入输出参数 )

    文章目录 一. 头文件.成员变量准备 二. 创建 FAAC 编码器 三. 获取并设置 FAAC 编码器参数 四. 设置 FAAC 编码器编码标准 五. 设置 FAAC 编码器 AAC 编码规格 六. ...

  4. C++实现RTMP协议发送H.264编码及AAC编码的音视频

    C++实现RTMP协议发送H.264编码及AAC编码的音视频 RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司 ...

  5. RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播

    RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播 摘要: RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播 RTMP(Real Time Messaging Pro ...

  6. 相位测试音频mp3_苹果AirPods MAX耳机音质一大短板在哪里?蓝牙AAC编码品质讨论与测试 「Soomal」...

    AirPods Max是苹果发布不久的4399元售价定为比较高端的一款耳机,我们没有订购,因为订购后也得14周以后收货--太久了.我们今天发这篇文章是不是要云评测了?这里我们要重新复习一下蓝牙中的AA ...

  7. 音视频探索(2):AAC编码解析

    1.AAC编码格式分析 1.1 AAC简介  高级音频编码(AdvancedAudio Coding,AAC)一种基于MPEG-4的音频编码技术,它由杜比实验室.AT&T等公司共同研发,目的是 ...

  8. Android使用AudioRecord录制PCM音频、PCM转AAC、使用MediaRecorder直接录制AAC编码音频

    Android为我们提供了两个音频处理的API:AudioRecord和MediaRecorder AudioRecord:偏底层的api MediaRecorder:对AudioRecord进行包装 ...

  9. 【FFmpeg】aac 编码的cbr和vbr 测试

    FFmpeg官方 AAC 编码文档 CBR 模式 Constant Bit Rate (CBR) mode These settings target a specific bit rate, wit ...

  10. 音频之各种有损编码器的比较,AAC编码器之选择,频谱、差值比较,编码器下载

    音频有损编码有:aac,mp3,ogg(vobis),opus等.这里只讨论主流编码格式,aac编码器有faac,qaac,fhgacc,neroacc,fdkacc,falabaac等,其封装格式有 ...

最新文章

  1. Keras快速上手:基于Python的深度学习
  2. 蓝桥杯:基础练习 特殊的数字
  3. 主机主浏览服务器宣告的运作原理机制
  4. 【ZZ】详解哈希表的查找
  5. DeepMind用ReinforcementLearning玩游戏
  6. centos7.0 php-fpm 安装ImageMagic php扩展imagick
  7. python 线性回归_Python中的简化线性回归
  8. python数独游戏源代码100行_python实现自动解数独小程序
  9. 重理工c语言实验指导书,太原理工大学级c语言实验指导书参考答案教程方案.docx...
  10. mybatis逆向工程 生成代码
  11. 飞客蠕虫(Conficker)
  12. 高数篇:高等数学全目录
  13. 什么是指针?为什么要用指针?
  14. [iOS]寻找superView
  15. 学业水平计算机考试考点宣传标语,中考考点宣传标语(学生方面)
  16. 转大型分布式网站术语浅析
  17. win10升级Java版本
  18. 计算机网络实验三 cpt
  19. CSDN怎么更换皮肤
  20. Magical爬虫の学习(1)

热门文章

  1. 中国进出口银行运维的精细化管理
  2. Fatal error: Uncaught Error: Call to undefined function curl_init()
  3. 太感动了,看于丹讲解论语
  4. DEVC++实现火柴人跑酷游戏
  5. 问题 A: THE FOOL
  6. vector的构造函数
  7. 2021北京化工大学计算机学院招生网,北京化工大学2021年硕士研究生招生简章
  8. 关于Dracula伯爵的传说
  9. Vulnhub靶机:ME AND MY GIRLFRIEND_ 1
  10. 利用matlab对彩色图像打马赛克