QAAC音频编码器命令行参数教程 [2018.8更]

NAZOrip@A
NAZOrip@A 1月29日
  • 在其它设备中阅读本文章

原创, 转载要求: 附上本页或小丸之家页的链接
附录: QAAC音频编码器命令行参数教程:
QAAC是基于苹果公司的qtaacenc改进而来的, 出现于2012年的编码器
相比2006年的NeroAAC更强大,同时两者相比MP3都能在相同码率下达到更高音质
由于精力有限,所以只翻译了部分参数
关于QAAC的缺点

成品的码率(TVBR, CVBR)容易卡在一个点上,尤其是当超过视频网站码率要求的一点时不得不降低一个码率档次或用ABR模式来满足要求
.

下载与安装(直接用小丸工具箱里的即可,但如果你能折腾的话就往下看吧):
下载qaac: github.com/nu774/qaac/releases
.
QAAC需要苹果的应用程序支持安装才可以运行,所以首先下载一个iTunes
把后缀改成.zip打开
根据你的系统位数解压出AppleApplicationSupport64.msi或者AppleApplicationSupport.msi
安装,就可以用啦~
.
如果你嫌它大,就再下载一个MSIExtractor(批处理之家那个不能用)打开它,找到解压出的Common Files\Apple\Apple Application Support\
.
然后往下翻,找到:

ASL.dll,
CoreAudioToolbox.dll,
CoreFoundation.dll,
icudt*.dll,(*代表可能是任何数字或字母)
libdispatch.dll,
libicu*.dll
libicu*.dll (两个libicu都需要)
objc.dll

如果未安装Visual C++ 2012则还要加上主目录下的mscvp120.dll和mscvr120.dll
.
全部复制到QAAC的主目录下(即和qaac64.exe放在一起)就可以开始了...
如果你要压缩.FLAC格式的音频则需要去github.com/nu774/qaac/wiki/Installation安装一个FLAC解码包哦~
.
--------------------安装up above/参数down below分割线--------------------
.
导入文件与格式
'打开QAAC(文件夹\qaac.exe)' [参数] '打开音频(路径+文件名+后缀)'
比如

'D:\qaac64.exe' -D -b 16 -r 44100 --threading -o '桌面\导出音频.wav' '别的位置\随便一段音频.mp3'

.
从ffmpeg导入文件

'打开FFmpeg(文件夹\ffmpeg.exe)' -i '打开音频' -vn -sn -n -f wav - | '打开QAAC' [参数] - --ignorelength

--ignorelength代表适应被喂流,所以不用知道音频长度信息
.
输出文件格式(注意, 要自己写后缀名)

-o <字符>输出路径与文件名,如有空格则加引号,例如-o 'D:\音频 测试\输出音频.aac'

.wav=解压后/未压缩的PCM波形,搭配参数-D使用
.alac=无损压缩后的PCM波形,搭配参数-A使用
.aac=有损压缩后的PCM波形或DTS波形,搭配参数-V, -v, -a使用

.
文件编码方式
AAC-LC=低复杂度,码率不限(但qaac中限制在最高320kbps)的PCM波形
HE-AAC=高复杂度,码率最高80kbps,仅在同码率下细节还原高的PCM波形,可用在除音乐视频以外的情况
AAC ADTS=使用DTS波形编码,增加对2000年以前播放器的支持,平常用不到
.
编码参数

-V,--tvbr   <整数,范围0~127>可变码率,音质档位,数字越大音质越还原,不一定容易控制住码率,选项有0/9/18/27/36/45/54/63/73/82/91/100/109/118/127,默认91
-v,--cvbr   <整数>可变码率,码率档位,不为了还原而超过规定的码率(然而还是会超),选项有64/80/96/112/128/144/160/192/224/256/288/320,单位kbps
-A,--alac   <开关>无损压缩,如果提示floating point PCM is not supported for ALAC 是因为浮点位深,需要-b(调整位深)来转换成整数位深
-a, --abr <整数>平均码率,在高码率,超0.1kbps都不行情况下的最好方案
-D,--decode <整数>输出PCM波形,并输出(decode代表解码,就是通过播放器解压缩后的音频流)

.
压缩强度与占用

--he         <开关>使用HE-AAC编码,可以和除TVBR以外的模式合作,使用后码率被锁在16~80kbps,和高码率AAC-LC的区别大到只适用于低质量的录像, 非听歌直播上. 注意!是--he而不是-he!
-b           <整数>调整音频位深,比如ALAC支持最深16bit,而音频是24位时就加上-b 16来修复
-n,--nice    <开关>降低程序优先级
--threading   <开关>使用多线程
-q,--quality <整数,范围0~2> 仅用于编码速度换取音质的参数,默认质量优先2,直播可以调到0,ASMR直播可以调到1.
注: 默认是使用低复杂度low complexity 即lc编码方式,适合直播.
--no-dither   <开关>关闭抖动,用音质换取文件体积的参数.
--no-optimize <开关>关闭"压缩完成后为.mp4封装优化"的功能. “优化”意味着更好地让视频播放器播放它,但其它的音频播放器可能会覆盖掉,所以如果不用封装进视频就使用这个选项吧~

.
Smart Padding首尾去噪
直译的话就是智能首尾填声,主要设计目的是为了缓冲掉歌曲突然开始,波形从零突然变化剧烈的情况.
--no-smart-padding <开关>关掉这个功能,以达到对文件体积的控制
.
音频编辑

-r,--rate <整数>调整音频的采样率,比如视频网站要求44100HZ,而音频是48000HZ就写-r 44100
--gain     <浮点>调整文件音量,输入负值可减低
--normalize<开关>音量标准化,统一所有要处理歌曲的音量

.
输出选项

--title    <字符>标题
--artist   <字符>艺术家
--band     <字符>乐队
--album    <字符>唱片
--composer <字符>作曲家
--grouping <字符>分组
--date     <字符>日期
--disk     <字符>唱片名
--genre    <字符>音乐类型
--track    <字符>音轨名
--artwork  <唱片封面>输入路径和文件名导入

.
可能没什么用的参数

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

判定    =threshold判定值(阈值的去术语化叫法), 超过此值则判定为吵,反之未超过的就判定为不吵,单位dBFS,这个值就自己吼一嗓子试试吧(⌒_⌒;)
衰减    =衰减比率,例如判定值是10,比率是3,只要音量超过10db就将<超出的部分>压缩到原来的1/3,通常设15
缓冲    =过渡缓冲,值越大就越柔和,使整个处理过程更自然的参数,单位db,通常设1
见效    =见效时长,单位毫秒. 防止编码器反应过快,致原本大声没有超过判定值就被压回来 
~例如设在3.2,那么超出判定值的音量要从0秒不处理,到花3.2毫秒才完全达到衰减后的设定,通常设25~50左右
退效    =退效时长,单位毫秒. 防止编码器反应过快致声降低不明显
~例如设3.2,那么离开判定范围时,音量会在0秒保持衰减,到3.2毫秒时才完全回到衰减前的设定,通常设150~300左右

.
举例: '--drc 50:6:7:8.9:10'指超过50db算吵,压缩到原来的1/6,反应过来前音量低了8.9db,音频落回后又花了10毫秒将衰减的效果消除
常见错误: 请求的操作无法在使用用户映射区域打开的文件上执行,其实就是本应该输出并覆盖一个文件时,该文件被占用导致覆盖失败了

--start <浮点>开始时间,格式hh:mm:ss.xxxxx..... 比如1:13:22.4432就是在1小时13分22.4432秒开始压缩
--end <浮点>结束时间,格式同上
--delay <浮点>开始前延时,格式同上,如果输入负值则作用同开始时间
    NAZOrip@F
    NAZOrip@F  2018-04-26, 16:58

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

    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,邮箱地址732178924@qq.com

      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讨论下不?