网易首页 > 网易号 > 正文 申请入驻

一日一技 | 如何用命令行将音乐转码到 iTunes Plus AAC

0
分享至

对于仍有聆听本地音乐文件需求的人来说,音频格式的选择是一个重要问题。无损格式虽好,但毕竟对存储空间和流量有一定压力;在移动端聆听时,转制一份有损压缩副本还是更实用的选择。

那该选择什么格式呢?

经历过 iPod 时代的人可能记得苹果曾宣传过 iTunes Plus AAC 的概念。这原本是 iTunes 商店在 2007 年上线的音频文件格式,新闻稿中宣称是一种「高品质 256 kbps AAC 编码」。这后来也成为 iTunes 导入音乐时的一个转码选项,至今可以在 macOS 上的 Music app 中看到,其参数标注为 128 kbps (mono)/256 kbps (stereo), 44.100 KHz, VBR。

Music app 设置中对 iTunes Plus AAC 的提述

iTunes Plus AAC 格式在网上评价很好,除了具有 AAC 编码的小体积、高音质特点外,在一些盲测中也被认为效果优于其他 AAC 编码器。这部分要归功于它采用的 CVBR(constrained variable bitrate)策略,即将平均比特率约束在一个定值(256 kbps),但允许(有时相当激进的)浮动,从而更好平衡了体积和音质。加上受到苹果设备的良好支持,应当说是一种比较理想的压缩格式。

但显然,如果每次转换都要用到 iTunes 或其继任者 Music app,未免太过麻烦;这些软件本身支持的无损格式也有限,基本上只有 WAV 和苹果的私有格式 ALAC。如何将这个过程自动化呢?

实际上,iTunes 和 Music app 的转换功能只是调用了苹果系统框架 Audio Toolbox 提供的转码能力,其他软件也可以调用:

  • 在 macOS 上,内置的命令行工具afconvert(1)包装了 Audio Toolbox 的转码功能,也是 Apple Digital Masters 文档中推荐的转码工具;

  • 在 Windows 上,开源命令行工具qaac可以包装从 iTunes 中提取的 Audio Toolbox 支持库,提供与 iTunes 等效的转换。

将它们做成脚本或配合其他自动化工具使用,就能方便地批量获得 iTunes Plus AAC 格式输出。下文将具体说明。

  • 本文所指的 iTunes Plus AAC,更准确地说,只是采用苹果推荐的编码器及设置参数所得的 AAC 文件,质量上并不能与 iTunes 商店销售的那种母带转制、且经过响度均衡等优化的版本相比;

  • 后文步骤假定用户对终端操作有基础了解;

  • 由于笔者对音频格式及编码的了解有限,文中描述可能存在错漏或不符合最佳实践,欢迎指正。

macOS

如上所述,用 macOS 内置的afconvert(1)即可创建 iTunes Plus AAC。根据 Apple Digital Masters 文档中的说明,应当使用如下参数:

afconvert input.wav \   -d aac \   -f m4af \   -u pgcm 2 \   -b 256000 \   -q 127 \   -s 2 \   output.m4a

上述参数依次设置:

  • 输出的编码格式(-d)为 AAC;

  • 文件格式(-f)为 Apple MPEG-4 Audio;

  • Audio Converter 自定义属性(-upgcm=2(无文档说明,可能与编码器行为有关);

  • 比特率(-b)为 256 kbps;

  • 质量(-q)为最高(取值范围 0-127);以及

  • 比特率分配策略(-s)为 CVBR(见前文说明)。

注:原文档实际上使用了两步转换:首先转为 CAF 格式并执行响度检查,然后再生成经响度均一化处理的 AAC。(pp. 5, 7.) 但该文档的场景是从母带文件转码,而现实中个人用户大多接触的无损文件已经过前期处理,再做此步骤意义不大,故略去。)

不过,afconvert只支持 WAV、ALAC 或 AIFF 格式输入,而现实中更为常见的无损格式是 FLAC,故还需通过ffmpeg做一次预处理:

ffmpeg -i input.flac -ac 2 -ar 44100 temp.wav && \ afconvert -f m4af -d aac -u pgcm 2 -b 256000 -q 127 -s 2 temp.wav output.m4a rm temp.wav

这里,首先用ffmpeg将源文件转为双声道、44.1Khz 的临时 WAV 文件,再交给afconvert处理,最后删除临时文件。

尽管ffmpeg支持通过-c:a aac_at选项来调用 Audio Toolbox,理论上可以一步到位地生成 iTunes Plus AAC;但根据笔者测试,这样生成的文件在质量上与afconvert输出的版本差异较大。因此,本文仍用afconvert执行 AAC 输出。)

我们可以用下图所示的快捷指令自动化上述过程:

https://www.icloud.com/shortcuts/1a193061f2b74e9ca546415b7de25088

使用该快捷指令之前,需要:

  1. FFMPEG_PATH变量上方的文本框中填写正确的ffmpeg安装路径。这里预填的是 M 系列处理器机型上通过 Homebrew 安装的默认路径,具体可以通过在终端运行which ffmpeg来确认;以及

  2. 在系统设置的「隐私与安全性」中,将/System/Library/CoreServices/Finder.app加入「完全磁盘访问权限」。

此后,直接运行该快捷指令并选择输入文件,或者选中文件后,通过右键菜单的 Quick Action > Create iTunes AAC 即可快速创建 AAC 版本。

Windows

如上所述,Windows 系统可以通过qaac转码到 iTunes Plus AAC,但前提是安装了苹果的 AAC 编码器。一般来说,这只有通过安装 iTunes 或 iCloud 才能获得(仅限独立安装版)。但很多人并不想安装这两个软件,因此更「绿色」的方法是从 iTunes 安装包中提取相应支持文件供qaac调用。具体步骤如下。

1. 从苹果官网下载最新版的 iTunes 安装包,得到一个iTunes64Setup.exe

2. 下载 qaac 作者提供的提取脚本makeportable2.cmd,将其放在iTunes64Setup.exe同一目录下运行(可能有安全警告,忽略即可)。这将生成一个包含苹果编码器支持库 DLL 的QTfiles64文件夹;

https://github.com/nu774/makeportable/blob/master/makeportable2.cmd

3. 从qaac的发布页面下载最新版并解压,其中包含x86x64两个版本的子目录。因为今年是 2025 年,以下只考虑 x64 版本;

https://github.com/nu774/qaac/releases

4. 将第 2 步所得的QTfiles64文件夹放至x64目录中,即与qaac64.exe同级;

5. 为了能处理 FLAC 输入,再从 FLAC 的发布页面下载最新版(flac-x.y.z-win.zip),将解压所得的libFLAC.dll同样放至x64目录中,与qaac64.exe同级。

https://github.com/xiph/flac/releases

经过上述步骤,qaac64.exe所在目录结构应如下所示:

. ├── libFLAC.dll ├── libsoxconvolver64.dll ├── libsoxr64.dll ├── qaac64.exe ├── QTfiles64 │   ├── ... │   ├── ASL.dll │   ├── concrt140.dll │   ├── CoreAudioToolbox.dll │   ├── CoreFoundation.dll │   ├── icudt62.dll │   └── ... └── refalac64.exe

这就完成了准备工作。

根据qaac的文档,当使用如下方式调用时,输出结果等效于 iTunes Plus (256k):

qaac64.exe -v256 input.flac

为了使用更加方便,我们可以制作一个批处理脚本来自动化:

@echo off setlocal set "QAAC_OPTIONS=-v256" set "QAAC_PATH=%ProgramFiles%\qaac\qaac64.exe" if not exist "%QAAC_PATH%" (     echo ERROR: Could not find qaac64.exe at the specified path.     goto :end ) if "%~1"=="" (     echo No files were provided.     goto :end ) for %%F in (%*) do (     echo Processing: "%%~nxF"     "%QAAC_PATH%" %QAAC_OPTIONS% -o "%%~dpnF.m4a" "%%~F"     echo. ) echo All done. :end echo. echo Press any key to exit... pause >nul

上述脚本假定你将之前步骤整理好的qaac安装文件放在系统盘的Program Files\qaac文件夹下,你也可以将QAAC_PATH变量修改为你实际使用的其他安装路径。

将以上代码保存为makeitunesaac.bat。此后,将要处理的文件拖至该脚本图标上,即可在同目录下获取转码好的 AAC 版本。

效果检查

我们可以使用 MediaInfo 检查通过afconvertqaac生成的 AAC 文件与 iTunes(或 Music app)生成的版本是否一致:

mediainfo output_itunes.m4a output_afconvert.m4a output_qaac.m4a

对于我所用的测试音乐,三者的输出完全一致:

... Format                                   : AAC LC Format/Info                              : Advanced Audio Codec Low Complexity Codec ID                                 : mp4a-40-2 Duration                                 : 4 min 1 s Bit rate mode                            : Variable Bit rate                                 : 256 kb/s Maximum bit rate                         : 341 kb/s Channel(s)                               : 2 channels Channel layout                           : L R Sampling rate                            : 44.1 kHz Frame rate                               : 43.066 FPS (1024 SPF) Compression mode                         : Lossy Stream size                              : 7.68 MiB (99%) ...

这表明afconvertqaac确实能获得 iTunes(或 Music app)基本等效的输出。还能看到,尽管整体比特率维持在 256 kbps,但峰值比特率达到了 341 kbps,表明 CVBR 在发挥作用。

再观察频谱,afconvertqaac输出的版本相比于 320 kbps MP3(LIME 编码)保留了更多无损版本的细节,并且体积小了约 20%,应当说是比较理想的。

https://sspai.com/post/101340?utm_source=wechat&utm_medium=social

作者:PlatyHsu

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
China GT事故发酵,头部车队退出,彦祖怒斥,运营方被曝年入近5

China GT事故发酵,头部车队退出,彦祖怒斥,运营方被曝年入近5

小兰聊历史
2026-09-15 10:32:20
中年失业不可怕啊!三位40岁以上土木精英,一同考入中医药大学,评论瞬间炸锅:一毕业就是老中医

中年失业不可怕啊!三位40岁以上土木精英,一同考入中医药大学,评论瞬间炸锅:一毕业就是老中医

火山詩话
2026-09-11 13:07:26
李一桐胖30斤仅110多斤却仍要控重,内娱上镜标准多严苛?

李一桐胖30斤仅110多斤却仍要控重,内娱上镜标准多严苛?

草莓解说体育
2026-09-15 05:39:29
罗滕:法国队内不少球员不理解姆巴佩的表态,对他已有不满

罗滕:法国队内不少球员不理解姆巴佩的表态,对他已有不满

懂球帝
2026-09-15 01:37:29
王健林已经惨到什么程度了?

王健林已经惨到什么程度了?

叶葉夜
2026-08-11 23:30:32
刘国正两句大实话:陈熠把冠军扔了,蒯曼离顶尖差一截

刘国正两句大实话:陈熠把冠军扔了,蒯曼离顶尖差一截

不想长大的莫扎特
2026-09-14 11:58:58
东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

东风导弹泄密案!间谍郭万钧一家三口,全部被处以死刑

番外行
2026-03-31 08:28:28
7换2正式达成!东部再添争冠热门,5锋线太强,快船得到3首轮补偿

7换2正式达成!东部再添争冠热门,5锋线太强,快船得到3首轮补偿

你的篮球频道
2026-09-15 06:57:19
A股:刚刚,中央八部门重磅发布!做好准备,周二将迎来关键拐点

A股:刚刚,中央八部门重磅发布!做好准备,周二将迎来关键拐点

虎哥闲聊
2026-09-15 00:00:04
14:9!琉球选举结果出炉,岸田文雄再次出山,中日局势迎新变数

14:9!琉球选举结果出炉,岸田文雄再次出山,中日局势迎新变数

娱乐小可爱蛙
2026-09-14 12:20:23
21连涨跌至2%!2亿灵活就业者正默默算账:社保还值不值得缴?

21连涨跌至2%!2亿灵活就业者正默默算账:社保还值不值得缴?

白米饭怎么吃
2026-09-14 20:31:33
费兰禁食约18小时,专家:6小时进食窗口对顶级运动员过窄

费兰禁食约18小时,专家:6小时进食窗口对顶级运动员过窄

懂球帝
2026-09-14 16:11:18
美前陆军部长离职后直奔基辅!当众承认:乌克兰这平台比美军强

美前陆军部长离职后直奔基辅!当众承认:乌克兰这平台比美军强

吕醿极限手工
2026-09-14 17:05:10
徐静已任上海市委组织部副部长、老干部局局长

徐静已任上海市委组织部副部长、老干部局局长

澎湃新闻
2026-09-14 20:38:27
安徽广德基督教“两会”违法干预教堂事务,三份红头文件叫停后落实仍受阻

安徽广德基督教“两会”违法干预教堂事务,三份红头文件叫停后落实仍受阻

打破砂锅
2026-09-14 12:02:59
分裂前夜的英国

分裂前夜的英国

凤眼论
2026-09-15 08:36:36
苹果Siri AI来了,中国市场暂不上线

苹果Siri AI来了,中国市场暂不上线

财闻
2026-09-15 08:31:30
恋爱中强迫接吻、摸胸、发生性行为,什么情况算性侵、强奸?

恋爱中强迫接吻、摸胸、发生性行为,什么情况算性侵、强奸?

周军律师聊案子
2026-09-13 11:16:45
中国想立威真得打一仗?美日都不是目标,真正该打的硬仗在这里

中国想立威真得打一仗?美日都不是目标,真正该打的硬仗在这里

锅锅爱历史
2026-09-13 12:02:46
公司分红400多万,我准备换房,岳母却让我给小舅子400万,老婆说不给就离,我一句话没说,把离婚协议推到她面前

公司分红400多万,我准备换房,岳母却让我给小舅子400万,老婆说不给就离,我一句话没说,把离婚协议推到她面前

晓艾故事汇
2026-09-13 10:12:40
2026-09-15 11:16:49
少数派sspai incentive-icons
少数派sspai
高品质数字消费指南
5337文章数 28519关注度
往期回顾 全部

科技要闻

芯片产业链蒸发超5000亿美元,特朗普大怒

头条要闻

"卖发动机的Tina"让外国人疯狂 "抽象"视频火遍TikTok

头条要闻

"卖发动机的Tina"让外国人疯狂 "抽象"视频火遍TikTok

体育要闻

英格兰业余门将,拒绝去非洲当国王

娱乐要闻

她是敬一丹女儿,把公益当事业

财经要闻

未来五年,电子信息制造业发展规划出炉

汽车要闻

纯电续航960km/迪迪虾上车 腾势N8L纯电售29.98万元起

态度原创

数码
亲子
旅游
公开课
军事航空

数码要闻

2099元起小米REDMI电视A Pro 2027优选版开售:全新纳米柔光屏

亲子要闻

假装晕倒,看看妈妈的反应

旅游要闻

上海最被低估的老街:300米藏了270年关帝庙,很多人却不知道

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

24小时内58次空袭 也门冲突快速升级

无障碍浏览 进入关怀版