QAAC音频编码器命令行参数教程 [2024-12月更新]

A@NAZOrip
A@NAZOrip 2023年08月24日
  • 在其它设备中阅读本文章

❀原创教程,转载请注明链接和作者

QAAC基于苹果公司的QtAACEnc改进而来的,出现于2012年的开源编码器。相比2006年的NeroAAC更强大,且已经淘汰了MP3格式(因为网络视频几乎都用AAC流)

终于有科普板块了hhhhh

  • 音频根据用途主要有通话音频,监听音频,HiFi音频和噪音三种,其中办公音频要求动态音量调节和动态降噪来听清客户说了啥;监听音频要尽可能逼近原声,主要用于混音和反潜;HiFi音频各种DAC和AMP数字电路的信号调校结果,和开MadVR看视频的是同一个群体(但很有钱)
  • 音频的位宽bit-width就是数据/视频上说的位深bit-depth,在视频上代表明暗之间的亮度值密度,或者色彩A~B之间色度值的密度;在音频上就是波形音量动态范围的取值密度

下载与安装

直接下载安装好的百度云提取码CCCC, 或谷歌盘

  1. 下载qaac源码编译结果: github
  2. 下载苹果的Core Audio支持:
    1. 下载一个iTunes (Windows 64bit),把后缀改成.zip打开,据系统位数解出AppleApplicationSupport(64).msi AppleMobileDeviceSupport.msi
    2. 下载lesssmi (打开Lessmsi-gui.exe),或MSIExtractor(是软件,不是批处理)打开.msi安装包
    3. 如果要输入flac音频则需要去github,其中libflac的链接位于github-xiph。或ffmpeg pipe
      • MSIExtractor中找到Common Files\Apple\Apple Application Support\目录并解压出以下文件放到QAAC的主目录下(和qaac64.exe放在一起):
      • lessmsi通过Ctrl+F查找并解压出以下文件放到QAAC的主目录下(和qaac64.exe放在一起):
    4. 没装Visual C++ 2012则还要加上主目录下的mscvp120.dll和mscvr120.dll
ASL.dll
CoreAudioToolbox.dll与CoreFoundation.dll
icudt**.dll
libdispatch.dll,libicu**.dll及libicu**.dll (两个libicu,号码不同)
objc.dll

打赏信息

在线丢人,求个打赏,支持一下T_T
打赏.jpg

这玩意年收入6人民币

命令行用例

'打开QAAC(文件夹\qaac.exe)' [参数] '打开音频(路径+文件名+后缀)',如

'D:\qaac64.exe' -a -b 16 -r 44100 --threading --raw -o '导出位置\导出音频.m4a' '导入位置\*.wav'

QAAC默认的导入导出位置就是批处理或shell(.bat/.sh)所在位置
所以直接用*.wav,然后把批处理/shell拖到同源文件目录下运行就不用写路径了
导入PCM波形的.wav需要加个--raw,具体见下文导入PCM波形哦

ffmpeg pipe导入

D:\ffmpeg.exe -i '打开音频' -vn -sn -n -f wav - | D:\qaac.exe [参数] - --ignorelength

-o <字符>输出路径与文件名,如有空格则加引号,例如-o 'D:\文件夹\输出音频.aac'
--ignorelength代表已知输入WAV-PCM文件的情况下,启用unix pipe喂流,省去检查和手打音频长度信息的功夫

显示完整编码信息

--verbose<开关>打开后可以看到平常CLI界面中不显示的

输出/编码格式

AAC-LC:默认的低复杂度low-complexity编码,QAAC中限制最高320kbps,但aac标准上没写这限制
AAC-HE:高压缩效率high-eff.编码,QAAC中限制最高80kbps,同码率下比LC细节好,但码率太低所以很难用到
ALAC: 苹果无损压缩编码的PCM波形文件格式。偏小众,可能不如.ape格式常见

-V,--tvbr   <挡位0/9/18/27/36/45/54/64/73/82/91/100/109/118/127>可变码率,对应QtAAC的15个挡位,"数字越大音质越好",默认91,不受--rate参数限制,适合有闲工夫调试着用
-v,--cvbr   <挡位64/80/96/112/128/144/160/192/224/256/288/320,单位kbps>可变码率,"尽可能"控制在挡位指定的码率中,受--rate参数限制,适合有闲工夫调试着用
-a, --abr    <整数>平均码率,码率限制下贴合目标码率使用的方案,但同质量下码率不如前两者

tvbr, cvbr模式下,码率有可能会因为源音频流高度复杂而超标,有码率限制的话需要确认没超
ABR模式因为用带宽换性能所以只适合直播

--he         <开关>用HE-AAC编码,除TVBR,ALAC,ADTS外可用,音质较差但码率只有16~80kbps ❀注意是--he而不是-he
-A,--alac   <开关>无损压缩,一般音乐的码率大概为1100~1400Kbps

ADTS流格式

和封装/音频不同,将文件作为真的"流格式"编码,一般用于直播和蓝牙A2DP音频,支持Unix Pipe传给下级处理程序

取决于厂商生态,蓝牙设备还可能支持以下生态编解码中的一部分,高端的外置声卡和音频介面(同时支持蓝牙和USB输入)除外:

  • 兼容:SBC (其实已满足99%的音质要求),大部分条形音响都用这个
  • 苹果:AAC-ADTS (QAAC支持编码)
  • 高通:aptX,aptX LL,aptX HD,aptX Adaptive
  • 索尼:LDAC
  • 盛微:LHDC,LLAC,LLAC LL
  • 三星(仅IEM耳机):SSC
  • 微软(Windows系统):自购Lucent的Windows LDAC A2DP驱动(25~35 CNY) + 支持蓝牙传输的硬件(USB,PCIE,M.2网卡等)

Windows 10 2004或更高版本可通过Github上的第三方方案实现蓝牙ADTS输入,将系统本身临时作为接收设备用,但原作者长期未更新,且仅支持手动连接,有需求的可以(创建Github账户并)fork一个~

未压缩流格式

与视频解码器逆运算出画面所同,和音频文件的区别是不需要解码所以(在硬盘很快的情况下)打开速度比解码播放更快,但体积特大,但支持Unix Pipe传给下级处理程序

封装与音频文件格式

相比于纯数据流(视频流,音频流),封装文件增加了如歌词,章节,标识,封面;视频如HDR信息,帧率,分辨率等。封装后的体积比原始的流文件大点。音频流和视频流封装到一起时,则由视频封装文件会标记音频流的元数据

  • .wav:未压缩的PCM波形文件后缀(指定-D
  • .alac:无损压缩PCM波形文件后缀,详见上方ALAC说明(指定-A
  • .aac:有损压缩的PCM/DTS波形音频流后缀(指定--adts
  • .caf/.m4a:音频封装,用于打包AAC,ALAC,PCM波形以及歌词,章节,标识,封面等内容到单文件
    • QAAC编码后在MediaInfo打开还会显示"Apple audio with iTunes info"
-D,--decode <开关>输出PCM波形(.wav)
一般用于频谱分析,毕竟解包不带解码器的软件然后安个解码器进去的门槛超高
-A,--alac   <开关>无损压缩
--adts       <开关>以Audio Data Transport System格式编码,主要用于蓝牙耳机和音响. 除无损(ALAC)以外的模式可用
*留空*       <默认>编码为AAC并封装为.m4a
--caf        <开关>用core audio format封装格式打包音频流以及-D下导出的PCM波形

与ffmpeg/带Lav-filter的视频处理工具不同,QAAC不识别命令行里导出文件的后缀名,因此必须指定格式参数

导入PCM波形

QAAC会自动检测源的规格,但PCM(.wav)就测不出来,所以会默认用2声道,44100Hz,16bit位深编码新文件. 若与源不符,就要手动指定输入PCM流的规格:

--raw          <开关>启用纯PCM波形模式,要不然QAAC不知道
--raw-channels <浮点,默认2>指定声道数量. 有3,4,5,5.1,6,6.1,7,7.1和8可选,要搭配--chanmap用
--raw-rate     <整数,默认44100>照着源文件写就行啦
--raw-format   <字符+整数+字符>S/U/F+位深+L/B,若符合默认s16l就不用动咯~

S(igned)/U(nsigned):首个位深字节值里面有(范围0~255)或没有(范围-128~127)正负号,一般都有,没见过就写默认的S
F(loat):源音频流是浮点位深,不是整数位深
位深:在音频上都叫位宽,一般是默认16bit,此处不加后缀bits
L(ittle-Endian)/B(ig-Endian):具体看这篇教程的解释,总之要用到x86架构的处理器,用默认的L就对啦~

--ignorelength <开关>已知unix pipe输入WAV-PCM文件流的情况下,启用unix pipe支持,省去检查和手打音频长度信息的功夫

多声道编辑

常见的立体声有1左2右两条声道. 而更高的数量的声道会照标准,给这些音轨对号入座;比如三声道就是中置1,左2,右3等等,具体见github里的声道布置表格
音频的常见问题有麦克拿反/右耳没声音;然后这里PCM波形还无法被QAAC自动检测,所以手打音轨号来修复/指定就成了常规操作...大概

--chanmask     <浮点,默认0(立体声)>强制使用3,4,5,5.1,6,6.1,7,7.1或8声道
--chanmap      <逗号分隔数字>重分配输入音频的声道位

--chanmap 2,1代表音轨1换到二号位,音轨2换到一号位;在立体声中就是左右互换;能修复麦克拿反了的情况,不过据说麦克拿倒了是假唱(大雾)
--chanmap 1,1在立体声中将左声道贴入右声道,可以修复右耳没声的问题(未测试)
--chanmap 2,3,1代表三声道默认的1中,2左,3右改成2中,3左,1右. 其实就是1移动到了最右边

压缩强度与占用

-b,--bits-per-sample
              <整数>改动音频位深,比如频谱分析软件支持最深16bit,而音频是24位时就加上-b 16来修复
-n,--nice    <开关>降低程序优先级
--threading   <开关>使用多线程
-q,--quality <整数,范围0~2,默认2> 仅用于编码速度换取音质的参数,不用改
注: 默认是使用低复杂度low complexity 即lc编码方式,适合直播.
--no-dither   <开关>关闭抖动,用音质换取文件体积的参数.
--no-optimize <开关>编码后的音频还要再进行一步优化,以装入.caf/.m4a的封装中,此选项将其关闭,所以别动>_<

章节处理

--chapter      <输出章节>给编码的音频封装(.M4A/.CAF)写入章节信息,至于怎么拷进视频封装里咱就不懂啦❀

00:00:00.000 Intro
00:00:31.031 OP
0:01:57.034 Part_A
00:12:41.552 Part_B
00:22:41.151 ED
00:24:09.740 Next_Ep_Preview
Patlabor TV - 17.txt
--cue-tracks   <逗号分隔整数>仅支持cue列表的

--cue-tracks 4就是编码cue文件中指定的第4号音频
--cue-tracks 11-13,15就是分别导出11,12,13,15号音频
--concat --cue-tracks 11-13,15就是组合导出11,12,13,15为一整个音频

--text-codepage <整数>生成cue sheet/章节/歌词字幕的文本编码,一般用65001表示UTF-8

导出章节中单曲

cue sheet可以自己写,然后保存为.cue
标准格式如下,照着写,然后导入QAAC来分指定cue-tracks导出就行了❀

REM GENRE Anime
REM DATE 2014
REM DISCID 3503D604
REM COMMENT "ExactAudioCopy v1.0b3"
CATALOG 4988104079268
PERFORMER "みかくにんぐッ!"
TITLE "とまどい→レシピ"
FILE "みかくにんぐッ! - とまどい→レシピ.wav" WAVE
  TRACK 01 AUDIO
    TITLE "とまどい→レシピ"
    PERFORMER "みかくにんぐッ!"
    ISRC JQ2921400252
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "放課後ばけーしょん"
    PERFORMER "みかくにんぐッ!"
    ISRC JQ2921400253
    INDEX 00 04:30:62
    INDEX 01 04:32:36
とまどい→レシピ.cue

首位波形缓入缓出

直译的话就是智能首尾垫音,主要设计目的是为了缓冲掉歌曲突然开始,波形从零突然冲顶,低端声卡会直接噼啪爆音(待考证)的情况

--no-smart-padding
              <开关>关掉这个默认功能,但不建议

音频标识(内容正在施工中)

--tag         <4cc:value>用fourCC.org标准?格式?的标识(内容正在施工中)
--tag-from-file <文件名>同上但这次是输入已经写好的文件
--long-tag    <key:value>用iTunes标准?格式?的标识(内容正在施工中)
--fname-format<?>文件命名格式(内容正在施工中)
--fname-from-tag<?>用音频标识命名输出文件,这样给写好的曲子加上tag就可以节省各种导出和压缩的时间了(内容正在施工中)

音频编辑

-r,--rate    <整数>调整音频的采样率,比如视频网站要求44100HZ,而音频是48000HZ就写-r 44100
--gain        <浮点>调整文件音量,输入负值可减低
--concat      <开关>将(用通配符如*.wav)输入的多个文件按输入顺序结合为单文件,QAAC会生成章节chapter到.m4a封装里(未验证)
--normalize   <开关>音量标准化,统一所有要处理歌曲的音量
--start       <浮点>开始时间,格式hh:mm:ss.xxxxx..... 比如1:13:22.4432就是在1小时13分22.4432秒开始压缩
--end         <浮点>结束时间,格式同上
--delay       <浮点>开始前延时,格式同上,如果输入负值则作用同开始时间
--peak        <开关>扫描音频尖峰并只输出文本,用于方便检查混音音量

音频滤镜

用DAW还能预览效果,所以不晓得这个还有啥用...

--drc         <判定:衰减:缓冲:见效:退效>动态范围压缩,就是将吵的音量压下来,同时保留一定范围内音量,使不该响的不响的功能

判定    threshold判定(阈值的去术语化叫法), 超过此值则判定为吵,反之未超过的就判定为不吵,单位dBFS,这个值就自己吼一嗓子试试吧(⌒_⌒;)
衰减    ratio程度,例如判定值是10,比率是3,只要音量超过10db就将<超出的部分>压缩到原来的1/3,通常设15
缓冲    knee过渡,值越大就越柔和,使整个处理过程更自然的参数,单位db,通常设1
见效    attack时长,单位毫秒. 防止编码器反应过快,致原本大声没有超过判定值就被压回来 
~例如设在3.2,那么超出判定值的音量要从0秒不处理,到花3.2毫秒才完全达到衰减后的设定,通常设25~50左右
去效    release时长,单位毫秒. 防止编码器反应过快致声降低不明显,在混音中,release越快,对应的乐器轨道就越靠前,反之越慢,因此构成了声场上前-后的声场关系,用于在乐器数量多的情况下保证乐器的主次关系。如果是逼近物理位置还得加上和建筑外形相同反射面建模的自定义Reverb
~例如设3.2,那么离开判定范围时,音量会在0秒保持衰减,到3.2毫秒时才完全回到衰减前的设定,通常设150~300左右

举例: '--drc 50:6:7:8.9:10'指超过50db阈值,压缩到原来的1/6,反应过来前音量低了8.9db,音频落回后花10毫秒将衰减的效果消除

已知报错

请求的操作无法在使用用户映射区域打开的文件上执行, 是本应输出并覆盖旧文件时,目标文件被占用导致覆盖失败
floating point PCM is not supported for ALAC,是因为原音频是alac不支持浮点位深,需要-b 16/20/24/32转换~

--log          <文件名>导出压制log

批处理单文件储存多个参数

::将此处复制下来保存为.bat文件即可使用
@ set QAAC=D:\Programs\QAAC\qaac64.exe

@ set 转WAV=-D --threading -r 44100 -b 16
@ set abr320K=-a 320 -b 16 -r 44100 --threading
@ set cvbr256K=-v 256 -b 16 -r 44100 --threading
@ set ALAC=--alac -b 16 --threading

::使用例子: %QAAC% %转WAV% -o "输出" "输入", 可以多复制调整几行命令以批量处理

shell单l文件储存多个参数(未验证,需自行修改)

第一步, 安装Wine以运行.exe:

sudo dpkg --add-architecture i386 
wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/
sudo apt-get update
sudo apt-get install --install-recommends winehq-stable

第二步:

#将此处复制下来保存为.sh文件, 通过Bash
#!/bin/Bash

QAAC=./D:\Programs\QAAC\qaac64.exe
转WAV=-D --threading -r 44100 -b 16
320K=-a 320 -b 16 -r 44100 --threading
256K=-a 256 -b 16 -r 44100 --threading
ALAC=--alac -b 16 --threading

#使用例子: $QAAC $转WAV -o "输出" "输入", 可以多复制调整几行命令以批量处理

关于选择正确的采样率

只要确认要编码音频的音高赫兹数,就可以确定使用更低的采样率编码音频,实现压缩

采样率

录制时的波形锚点写入频率,以及播放时转换到模拟信号的输出频率,用赫兹 Hz 表示。根据奈奎斯特-香农采样定理,采样一个正弦/余弦波的最小频率应为两倍于其周期,才能使模拟转数字的数据足够保真,大概如图:

  • 余弦波y=cos(πx)中,一个周期里有一个波峰和一个波谷,所以波峰最高处,和波谷最低处应该采样一次:
    • Sample-2Hz-Source-1Hz.png
  • 如果采样的频率远低于波形频率的两倍:
    • Sample-0.5Hz-Source-1Hz.png
  • 如果采样率和波形周期相同:
    • Sample-1Hz-Source-1Hz.png
    • Sample-1.5Hz-Source-1Hz.png
  • 如果采样率略高于信号频率,采样的信息里至少仍然是贴近y=cos(πx)的:
    • Sample-2.5Hz-Source-1Hz.png

这个正弦波实际代表的是音频里频率最高的信号,所以是才是理论上采样率的“底线”

注:上图见 Desmos 例

音高

  • 各种音色的震动频率,频率越高则音高越高
  • 结合采样率说,为了保真最高振动频率/音高最高的信号,所以采样率是音高频率的两倍
  • 在实践中,如果创建一个 48000Hz / 48kHz 的音频工程文件,这个音频频谱则最高支持 24000Hz / 24kHz

赫兹

任何一种测量范围内均衡重复现象,如波形或物件震频,芯片的运行频率,由Hz,KHz,GHz表示,赫兹数越高,支持的音高就越高

  • 歌声中的齿音/咬字音,非元音/通过口腔发出的短音,这些声音仍比乐器的泛音高很多
  • 音高最高的乐器是Hi-Hat/铜嚓,Cymbal/锣

QAAC-LC的采样率,声道,码率对应表

采样率 (Hz)最高频率 (Hz)声道布置最小-最大码率流量/CVBR档位
80004000Mono8 12 16 20 24
80004000Stereo16 20 24 28 32 40 48
800040003.0 (C L R)24 28 32 40 48 56 64 72
800040004.0 (L R Ls Rs)32 40 48 56 64 72 80 96
800040004.0 (C L R Cs)32 40 48 56 64 72 80 96
800040005.0 (C L R Ls Rs)40 48 56 64 72 80 96 112
800040005.1 (C L R Ls Rs LFE)40 48 56 64 72 80 96 112
800040006.0 (C L R Ls Rs Cs)48 56 64 72 80 96 112 128 144
800040006.1 (C L R Ls Rs Cs LFE)48 56 64 72 80 96 112 128 144
800040007.0 (C L R Ls Rs Rls Rrs)56 64 72 80 96 112 128 144 160
800040007.1 (C Rc L R Ls Rs LFE)56 64 72 80 96 112 128 144 160
800040008.0 (C L R Ls Rs Rls Rrs Cs)64 72 80 96 112 128 144 160 192
110255512.5Mono8 12 16 20 24 28 32
110255512.5Stereo16 20 24 28 32 40 48 56 64
110255512.53.0 (C L R)40 48 56 64 72 80 96
110255512.54.0 (L R Ls Rs)48 56 64 72 80 96 112 128
110255512.54.0 (C L R Cs)48 56 64 72 80 96 112 128
110255512.55.0 (C L R Ls Rs)64 72 80 96 112 128 144 160
110255512.55.1 (C L R Ls Rs LFE)64 72 80 96 112 128 144 160
110255512.56.0 (C L R Ls Rs Cs)72 80 96 112 128 144 160 192
110255512.56.1 (C L R Ls Rs Cs LFE)72 80 96 112 128 144 160 192
110255512.57.0 (C L R Ls Rs Rls Rrs)96 112 128 144 160 192 224
110255512.57.1 (C Rc L R Ls Rs LFE)96 112 128 144 160 192 224
110255512.58.0 (C L R Ls Rs Rls Rrs Cs)96 112 128 144 160 192 224 256
120006000Mono12 16 20 24 28 32
120006000Stereo24 28 32 40 48 56 64
1200060003.0 (C L R)40 48 56 64 72 80 96
1200060004.0 (L R Ls Rs)48 56 64 72 80 96 112 128
1200060004.0 (C L R Cs)48 56 64 72 80 96 112 128
1200060005.0 (C L R Ls Rs)64 72 80 96 112 128 144 160
1200060005.1 (C L R Ls Rs LFE)64 72 80 96 112 128 144 160
1200060006.0 (C L R Ls Rs Cs)72 80 96 112 128 144 160 192
1200060006.1 (C L R Ls Rs Cs LFE)72 80 96 112 128 144 160 192
1200060007.0 (C L R Ls Rs Rls Rrs)96 112 128 144 160 192 224
1200060007.1 (C Rc L R Ls Rs LFE)96 112 128 144 160 192 224
1200060008.0 (C L R Ls Rs Rls Rrs Cs)96 112 128 144 160 192 224 256
160008000Mono12 16 20 24 28 32 40 48
160008000Stereo24 28 32 40 48 56 64 72 80 96
1600080003.0 (C L R)40 48 56 64 72 80 96 112 128 144
1600080004.0 (L R Ls Rs)48 56 64 72 80 96 112 128 144 160 192
1600080004.0 (C L R Cs)48 56 64 72 80 96 112 128 144 160 192
1600080005.0 (C L R Ls Rs)64 72 80 96 112 128 144 160 192 224
1600080005.1 (C L R Ls Rs LFE)64 72 80 96 112 128 144 160 192 224
1600080006.0 (C L R Ls Rs Cs)72 80 96 112 128 144 160 192 224 256 288
1600080006.1 (C L R Ls Rs Cs LFE)72 80 96 112 128 144 160 192 224 256 288
1600080007.0 (C L R Ls Rs Rls Rrs)96 112 128 144 160 192 224 256 288 320
1600080007.1 (C Rc L R Ls Rs LFE)96 112 128 144 160 192 224 256 288 320
1600080008.0 (C L R Ls Rs Rls Rrs Cs)96 112 128 144 160 192 224 256 288 320 384
2205011025Mono16 20 24 28 32 40 48 56 64
2205011025Stereo32 40 48 56 64 72 80 96 112 128
22050110253.0 (C L R)48 56 64 72 80 96 112 128 144 160 192
22050110254.0 (L R Ls Rs)64 72 80 96 112 128 144 160 192 224 256
22050110254.0 (C L R Cs)64 72 80 96 112 128 144 160 192 224 256
22050110255.0 (C L R Ls Rs)80 96 112 128 144 160 192 224 256 288 320
22050110255.1 (C L R Ls Rs LFE)80 96 112 128 144 160 192 224 256 288 320
22050110256.0 (C L R Ls Rs Cs)96 112 128 144 160 192 224 256 288 320 384
22050110256.1 (C L R Ls Rs Cs LFE)96 112 128 144 160 192 224 256 288 320 384
22050110257.0 (C L R Ls Rs Rls Rrs)112 128 144 160 192 224 256 288 320 384 448
22050110257.1 (C Rc L R Ls Rs LFE)112 128 144 160 192 224 256 288 320 384 448
22050110258.0 (C L R Ls Rs Rls Rrs Cs)128 144 160 192 224 256 288 320 384 448 512
2400012000Mono16 20 24 28 32 40 48 56 64
2400012000Stereo32 40 48 56 64 72 80 96 112 128
24000120003.0 (C L R)48 56 64 72 80 96 112 128 144 160 192
24000120004.0 (L R Ls Rs)64 72 80 96 112 128 144 160 192 224 256
24000120004.0 (C L R Cs)64 72 80 96 112 128 144 160 192 224 256
24000120005.0 (C L R Ls Rs)80 96 112 128 144 160 192 224 256 288 320
24000120005.1 (C L R Ls Rs LFE)80 96 112 128 144 160 192 224 256 288 320
24000120006.0 (C L R Ls Rs Cs)96 112 128 144 160 192 224 256 288 320 384
24000120006.1 (C L R Ls Rs Cs LFE)96 112 128 144 160 192 224 256 288 320 384
24000120007.0 (C L R Ls Rs Rls Rrs)112 128 144 160 192 224 256 288 320 384 448
24000120007.1 (C Rc L R Ls Rs LFE)112 128 144 160 192 224 256 288 320 384 448
24000120008.0 (C L R Ls Rs Rls Rrs Cs)128 144 160 192 224 256 288 320 384 448 512
3200016000Mono24 28 32 40 48 56 64 72 80 96
3200016000Stereo48 56 64 72 80 96 112 128 144 160 192
32000160003.0 (C L R)72 80 96 112 128 144 160 192 224 256 288
32000160004.0 (L R Ls Rs)96 112 128 144 160 192 224 256 288 320 384
32000160004.0 (C L R Cs)96 112 128 144 160 192 224 256 288 320 384
32000160005.0 (C L R Ls Rs)128 144 160 192 224 256 288 320 384 448
32000160005.1 (C L R Ls Rs LFE)128 144 160 192 224 256 288 320 384 448
32000160006.0 (C L R Ls Rs Cs)144 160 192 224 256 288 320 384 448 512 576
32000160006.1 (C L R Ls Rs Cs LFE)144 160 192 224 256 288 320 384 448 512 576
32000160007.0 (C L R Ls Rs Rls Rrs)192 224 256 288 320 384 448 512 576 640
32000160007.1 (C Rc L R Ls Rs LFE)192 224 256 288 320 384 448 512 576 640
32000160008.0 (C L R Ls Rs Rls Rrs Cs)192 224 256 288 320 384 448 512 576 640 768
4410022050Mono32 40 48 56 64 72 80 96 112 128 144 160 192 224 256
4410022050Stereo64 72 80 96 112 128 144 160 192 224 256 288 320
44100220503.0 (C L R)96 112 128 144 160 192 224 256 288 320 384 448
44100220504.0 (L R Ls Rs)128 144 160 192 224 256 288 320 384 448 512 576 640
44100220504.0 (C L R Cs)128 144 160 192 224 256 288 320 384 448 512 576 640
44100220505.0 (C L R Ls Rs)160 192 224 256 288 320 384 448 512 576 640 768
44100220505.1 (C L R Ls Rs LFE)160 192 224 256 288 320 384 448 512 576 640 768
44100220506.0 (C L R Ls Rs Cs)192 224 256 288 320 384 448 512 576 640 768 960
44100220506.1 (C L R Ls Rs Cs LFE)192 224 256 288 320 384 448 512 576 640 768 960
44100220507.0 (C L R Ls Rs Rls Rrs)224 256 288 320 384 448 512 576 640 768 960
44100220507.1 (C Rc L R Ls Rs LFE)224 256 288 320 384 448 512 576 640 768 960
44100220508.0 (C L R Ls Rs Rls Rrs Cs)256 288 320 384 448 512 576 640 768 960 1280
4800024000Mono32 40 48 56 64 72 80 96 112 128 144 160 192 224 256
4800024000Stereo64 72 80 96 112 128 144 160 192 224 256 288 320
48000240003.0 (C L R)96 112 128 144 160 192 224 256 288 320 384 448
48000240004.0 (L R Ls Rs)128 144 160 192 224 256 288 320 384 448 512 576 640
48000240004.0 (C L R Cs)128 144 160 192 224 256 288 320 384 448 512 576 640
48000240005.0 (C L R Ls Rs)160 192 224 256 288 320 384 448 512 576 640 768
48000240005.1 (C L R Ls Rs LFE)160 192 224 256 288 320 384 448 512 576 640 768
48000240006.0 (C L R Ls Rs Cs)192 224 256 288 320 384 448 512 576 640 768 960
48000240006.1 (C L R Ls Rs Cs LFE)192 224 256 288 320 384 448 512 576 640 768 960
48000240007.0 (C L R Ls Rs Rls Rrs)224 256 288 320 384 448 512 576 640 768 960
48000240007.1 (C Rc L R Ls Rs LFE)224 256 288 320 384 448 512 576 640 768 960
48000240008.0 (C L R Ls Rs Rls Rrs Cs)256 288 320 384 448 512 576 640 768 960 1280

QAAC-HE的采样率,声道,码率对应表

采样率 (Hz)最高频率 (Hz)声道布置最小-最大码率流量/CVBR档位
160004000Mono10 12 16 20 24 28 32
160008000Stereo20 24 28 32 40 48 56 64
1600080004.0 (L R Ls Rs)40 48 56 64 80 96 112 128
1600080005.1 (C L R Ls Rs LFE)56 64 80 96 112 128 160
1600080007.1 (C Rc L R Ls Rs LFE)80 96 112 128 160 192 224
2205011025Mono10 12 16 20 24 28 32
2205011025Stereo20 24 28 32 40 48 56 64
22050110254.0 (L R Ls Rs)40 48 56 64 80 96 112 128
22050110255.1 (C L R Ls Rs LFE)56 64 80 96 112 128 160
22050110257.1 (C Rc L R Ls Rs LFE)80 96 112 128 160 192 224
2400012000Mono12 16 20 24 28 32
2400012000Stereo24 28 32 40 48 56 64
24000120004.0 (L R Ls Rs)48 56 64 80 96 112 128
24000120005.1 (C L R Ls Rs LFE)64 80 96 112 128 160
24000120007.1 (C Rc L R Ls Rs LFE)96 112 128 160 192 224
3200016000Mono12 16 20 24 28 32 40
3200016000Stereo24 28 32 40 48 56 64 80
32000160004.0 (L R Ls Rs)48 56 64 80 96 112 128 160
32000160005.1 (C L R Ls Rs LFE)64 80 96 112 128 160 192
32000160007.1 (C Rc L R Ls Rs LFE)96 112 128 160 192 224 256
441004000Mono16 20 24 28 32 40
4410022050Stereo32 40 48 56 64 80
44100220504.0 (L R Ls Rs)64 80 96 112 128 160
44100220505.1 (C L R Ls Rs LFE)80 96 112 128 160 192
44100220507.1 (C Rc L R Ls Rs LFE)112 128 160 192 224 256
4800024000Mono16 20 24 28 32 40
4800024000Stereo32 40 48 56 64 80
48000240004.0 (L R Ls Rs)64 80 96 112 128 160
48000240005.1 (C L R Ls Rs LFE)80 96 112 128 160 192
48000240007.1 (C Rc L R Ls Rs LFE)112 128 160 192 224 256
8820044100Mono32 40 48 56 64 80 96 112 128 160
8820044100Stereo64 80 96 112 128 160 192 224 256 320
88200441004.0 (L R Ls Rs)128 160 192 224 256 320 448 640
88200441005.1 (C L R Ls Rs LFE)160 192 224 256 320 448 640
88200441007.1 (C Rc L R Ls Rs LFE)224 256 320 448 640 1120
9600048000Mono32 40 48 56 64 80 96 112 128 160
9600048000Stereo64 80 96 112 128 160 192 224 256 320
96000480004.0 (L R Ls Rs)128 160 192 224 256 320 448 640
96000480005.1 (C L R Ls Rs LFE)160 192 224 256 320 448 640
96000480007.1 (C Rc L R Ls Rs LFE)224 256 320 448 640 1120

操作

  1. 打开Audition或其它可以观察频谱/热度图的软件
  2. 导入源音频,找到全曲响度最大,最激烈的部分(一般为副歌Chorus)
  3. 对频谱/热度图操作Ctrl+鼠标滚轮向下直到能看见22kHz的信号频率为止
    Measure-Waves-1.png
    • 图中例子显示,在19kHz的信号频率往上就没有任何有效信息了
    • 如果怀疑信号有效,则可以用鼠标左键拖选这部分信号并播放,如果听不到就调大音量,直到听到为止(注意保护听力,因为提高音量的同时也会提高本来就很响处的音量)
  4. 可以打开窗口 > 频率分析以仔细观察频谱,进度条指针所对应18kHz及其上方的信号电平小于-80dBFS
    Measure-Waves-2.png
  • 根据波形振幅转换混音电平的公式可以看到,在-50dBFS以下的波形振幅太小了,对音质/信号完整性没有任何贡献(甚至从-60dBFS开始就失效了)
    Amplitude-to-dBFS.png
  • -50dBFS以下电平需要正常歌曲音量播放在75~85dB(标准混音音量)的时候能勉强听到一点,-60dBFS以下的电平需要让正常歌曲能打碎玻璃的音量才能听到,-80dBFS以下的电平...理论上需要能让正常歌曲弄坏扬声器的巨大音量才能听到

因此,根据对音频的频谱分析,得到了仅限这段音频中大于19kHz的音高属于可以砍掉无效信号的结论;对应到AAC-LC双声道逐轨最高有效为22050Hz,即全音频流44100Hz的最高有效采样率,得到参数

qaac64.exe --tvbr 127 -b 16 -r 44100 --threading --verbose

甚至可以更进一步地把所有-60dBFS(12kHz以上的频段),但适用的音频更少;对应到AAC-LC双声道逐轨最高有效为16000Hz,即全音频流32000Hz的最高有效采样率,得到参数

qaac64.exe --tvbr 127 -b 16 -r 32000 --threading --verbose

最终得到了平均300Kbps,但音质与44100Hz或更高储存频率的音频差▲1‰左右,同时理论音质等于或高于CVBR 320kbps,44100或48000Hz的高压缩音轨

  • 有概率变高是因为更多码率能被拿来编码有效信号

理论验证

为防被说瞎搞,所以验证了一下理论... 方法是将-6dBFS的电平对应到90~100dB,然后逐渐降低音量从而获取到-80dBFS的感知音量,缺陷是录音设备是一加3T和一加8,一加3T的最大收音音量只有64dB,一加8的最大收音音量只有89dB

  • 播放一个-6dBFS的正弦波,实际音量为大于89dB(要被震吐了...)
    -6dBFS-81dB.jpg
  • 然后把电平降低到-38dBFS,接收音量下降到了48dB,此时体感音量相当于手机音量设置在8~18%
    -38dBFS-48dB.jpg
  • 然后把电平降低到-48dBFS,接收音量下降到了22dB,这个时候扬声器的音量低于环境噪音(19~25dB),耳朵贴在扬声器上能勉强听到
    -48dBFS-22dB.jpg
  • 再往下就完全被环境噪音遮住了,但在-52~-54dBFS的时候把耳朵贴在扬声器上使劲听还是能听到很微弱的一点点...

那么... emmmmmmm就这样,呕

  • 2024.1更新:改良了封装文件vs音频文件格式,并增加了QAAC不根据后缀名判断的说明(感谢@1-β²)

    [...]附录 α:QAAC 音频压缩教程 或 Github 副本[...]

    飞鸽
    飞鸽  2024-05-06, 11:52

    请问把6声道改成2声音要怎么做

      A@NAZOrip
      A@NAZOrip  2024-06-21, 05:48

      用混音软件,比如Reaper,FL Studio,Adobe Audition

    lcitrus
    lcitrus  2022-08-08, 22:38

    qaac中的qaac说明写的是:
    example:--chanmap 2,3,1 -> C+L+R -> L+R+C
    这是代表1号位换2音轨,2号位换3音轨,3号位换1音轨吧
    所以应该是 1中2左3右 换成 1左2右3中 吧

      A@NAZOrip
      A@NAZOrip  2023-08-28, 23:39

      有点乱,我捋一捋... 好像我没搞错,除非chanmap改了声道本身而不是把音轨放进对应的声道里

        A@NAZOrip
        A@NAZOrip  2023-08-28, 23:41

        应该是你看错了,这个1-2-3轨移动了,但声道没变,而你回复里写的1-2-3轨道位置没有变化

    TSiao
    TSiao  2022-06-13, 13:47

    按照教程自己整理了一份最新的打包文件,测试了可以使用:

    名称: QAAC_v2.76+Apple_Application_Support_7.0.2(x86_64).zip
    大小: 34244592 字节 (32 MiB)
    SHA1: C5292173754E77E7A7B551252CC93BE77E8654F8

    https://cloud.189.cn/web/share?code=ArMBneR3aEJz(访问码:x1ck)

    https://pan.baidu.com/s/1Y60_7SHRRDrtsM5PDXsZ-w 提取码: vnev

      A@NAZOrip
      A@NAZOrip  2022-08-28, 22:11

      QAAC没啥关键更新,就是在奇怪的地方修修bug,不过有人维护这是ao的!

    TSiao
    TSiao  2022-06-13, 12:54

    感谢您的收集:
    文中的AppleApplicationSupport与AppleApplicationSupport64是4.1版本的,
    我尝试更新了一下最新的版本:到7.0.2,来自https://ipsw.me/iTunes
    即ITunes 12.9.0.167 x64版本(解压后x86与x64皆有)
    下载地址看上去是苹果官方服务器的:https://secure-appldnld.apple.com/itunes12/041-02280-20180912-24D8CF68-AC7A-11E8-8B51-C26F1B1141A5/iTunes64Setup.exe

    使用dBpoweramp Music Converter【https://www.dbpoweramp.com/】安装m4a (Apple Lossless & AAC)【https://www.dbpoweramp.com/codec-central-m4a.htm】插件后,可以正常转换。

    iTunes 12.10以上版本解压出来没有了。https://support.apple.com/kb/DL2064

    TSiao
    TSiao  2022-06-13, 12:49

    感谢您的收集:
    文中的AppleApplicationSupport与AppleApplicationSupport64是4.1版本的,
    我尝试更新了一下最新的版本:到7.0.2,来自https://ipsw.me/iTunes
    即ITunes 12.9.0.167 x64版本(解压后x86与x64皆有)
    下载地址看上去是苹果官方服务器的:https://secure-appldnld.apple.com/itunes12/041-02280-20180912-24D8CF68-AC7A-11E8-8B51-C26F1B1141A5/iTunes64Setup.exe

    使用dBpoweramp Music Converter【https://www.dbpoweramp.com/】安装m4a (Apple Lossless & AAC)【https://www.dbpoweramp.com/codec-central-m4a.htm】插件后,可以正常转换。

    gohos59027
    gohos59027  2021-05-14, 21:08

    请问--fname-from-tag和--fname-format怎么用,输出类似artist-title.m4a的文件名

    NAZOrip@F
    NAZOrip@F  2018-04-26, 16:58

    实际测试中使用ffpipe需要指定输出格式为wav才能pipe成功,并且应注意pipe格式。即实际命令应为ffmpeg -i ... -f wav | qaac ... -ignorelength -

      NAZOrip@A
      NAZOrip@A  2018-05-08, 11:14

      已修改

        NAZOrip@F
        NAZOrip@F  2018-05-14, 01:52

        给大佬点赞

    ffmpeg user
    ffmpeg user  2018-04-14, 21:14

    你这个ffmpeg和qaac的路径应该添加到系统变量里去,然后打开音频文件所在的文件夹,在文件管理器地址栏中输入PowerShell或者cmd,按Enter键,然后运行路径已简化的命令,比如:
    qaac input.wav -o output.m4a

      NAZOrip@A
      NAZOrip@A  2018-06-15, 10:46

      这篇文档的最低用户定位是给突然需要压制, 压完就删工具的用户看的, 而且我也算压了上百个音频了也没搞过什么变量, 反倒是把命令写进txt保存了, 用的时候直接改文件导入导出名称就行了

    学长很忙
    学长很忙  2018-04-01, 18:32

    楼主,你好,我想问下哦,用qaac编码iTunes plus 256的时候怎么设置音量平衡呀,用iTunes软件压缩的话,专辑的每首歌都会有音量平衡的,而且是自动的,但qaac要怎么设置呀?因为我是要编码整张专辑的呢!

      NAZOrip@A
      NAZOrip@A  2018-04-08, 04:24

      最近准备升级系统所以手机QQ卸了,我微信号jiac789,邮箱地址[email protected]

      NAZOrip@A
      NAZOrip@A  2018-04-04, 08:12

      @学长很忙 你别说,我查了一下, qaac还真有这么个东西, 教程已更新, 见--normalize

        学长很忙
        学长很忙  2018-04-04, 18:10

        我用了--normalize,但编码以后好像还是没有volume那个选项,用iTunes软件查看是叫volume,用foobar查看是叫APPLE SOUNDCHECK GAIN,好像都没看到呢!--normalize后面要加什么参数吗

          NAZOrip@A
          NAZOrip@A  2018-04-07, 05:26

          那是个开关额,写下来就等于打开了音量标准化的功能

            学长很忙
            学长很忙  2018-04-07, 12:05

            可以加个qq讨论下不?