温馨提示:本站为该正规票务导购网站,提供北京音乐厅票务中心正规的购票信息展示。
你现在的位置:首页 > 演出资讯  > 音乐会

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

更新时间:2025-08-04 22:54  浏览量:1

经历过 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 自定义属性( -u ) pgcm=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 支持通过选项来调用 Audio Toolbox,理论上可以一步到位地生成 iTunes Plus AAC;但根据笔者测试,这样生成的文件在质量上与 afconvert 输出的版本差异较大。因此,本文仍用 afconvert 执行 AAC 输出。)

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

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

在 FFMPEG_PATH 变量上方的文本框中填写正确的 ffmpeg 安装路径。这里预填的是 M 系列处理器机型上通过 Homebrew 安装的默认路径,具体可以通过在终端运行 which ffmpeg 来确认;以及 在系统设置的「隐私与安全性」中,将 /System/Library/CoreServices/Finder.app 加入「完全磁盘访问权限」。

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

▍ Windows qaac 转码到 iTunes Plus AAC,但前提是安装了苹果的 AAC 编码器。一般来说,这只有通过安装 iTunes 或 iCloud 才能获得(仅限独立安装版)。但很多人并不想安装这两个软件,因此更「绿色」的方法是从 iTunes 安装包中提取相应支持文件供 qaac 调用。具体步骤如下。 1. 从苹果官网下载最新版的 iTunes 安装包,得到一个 iTunes64Setup.exe ; 2. 下载 qaac 作者提供的提取脚本 makeportable2.cmd ,将其放在同一目录下运行(可能有安全警告,忽略即可)。这将生成一个包含苹果编码器支持库 DLL 的 QTfiles64 文件夹; https://github.com/nu774/makeportable/blob/master/makeportable2.cmd 3. 从 qaac 的发布页面下载最新版并解压,其中包含 x86 和 x64 两个版本的子目录。因为今年是 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 同级。 经过上述步骤, 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 检查通过 afconvert 和 qaac 生成的 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%)
...

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

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

场馆介绍
北京音乐厅隶属中国国家交响乐团。其前身是始建于1927年的中央电影院,1960年经改建作为音乐厅启用。1983年,在我国老一辈著名指挥大师李德伦、严良堃亲自主持下,北京音乐厅在原址破土重建,成为我国第一座专为演奏音... ... 更多介绍
场馆地图
北京市西城区北新华街1号
1路、4路、52路、22路、10路或地铁西单站下车
北京音乐厅