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

一日一技 | 如何用命令行将音乐转码到 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.

相关推荐
热点推荐
看张凌赫《逐玉》,再看陈飞宇《白日提灯》,真是没对比就没伤害

看张凌赫《逐玉》,再看陈飞宇《白日提灯》,真是没对比就没伤害

一娱三分地
2026-03-28 16:32:18
丈夫解释张水华嘴唇发紫与心脏无关:她是冻伤的,我们会定期体检

丈夫解释张水华嘴唇发紫与心脏无关:她是冻伤的,我们会定期体检

杨华评论
2026-03-29 21:33:59
医生调查发现:稳定血糖最好的方式,不是少吃肥肉,而是这些习惯

医生调查发现:稳定血糖最好的方式,不是少吃肥肉,而是这些习惯

读懂世界历史
2026-02-03 19:47:26
日本人妻买了一款中国零食,吃后欲罢不能并询问其名字,网友热议

日本人妻买了一款中国零食,吃后欲罢不能并询问其名字,网友热议

仙味少女心
2026-03-29 06:25:21
万万没有想到,赖清德的父亲赖永都,非但不是日本鬼子他是中国人

万万没有想到,赖清德的父亲赖永都,非但不是日本鬼子他是中国人

史行途
2026-03-30 08:13:47
洽洽食品:公司海盐味瓜子已在全国线下部分渠道铺货,各个区域渠道铺货会有些差异

洽洽食品:公司海盐味瓜子已在全国线下部分渠道铺货,各个区域渠道铺货会有些差异

每日经济新闻
2026-03-29 21:51:04
1985年,FBI特工因航班延误发现破绽,致潜伏37年的红色谍王被捕

1985年,FBI特工因航班延误发现破绽,致潜伏37年的红色谍王被捕

干史人
2024-10-02 07:40:03
太不公平了!唐山女子哭诉母亲把家产给弟弟,却在她家养老引热议

太不公平了!唐山女子哭诉母亲把家产给弟弟,却在她家养老引热议

火山詩话
2026-03-28 05:44:30
她是体坛冠军中的“败类”,为捞钱共侍二夫,坑了44亿逃到美国

她是体坛冠军中的“败类”,为捞钱共侍二夫,坑了44亿逃到美国

削桐作琴
2026-03-02 15:10:50
农村开始“翻旧账”了!村村全覆盖,这3类人躲都躲不掉

农村开始“翻旧账”了!村村全覆盖,这3类人躲都躲不掉

三农雷哥
2026-03-08 20:45:46
女孩当小姐,一晚要提供4到5次上门服务,被亲人点到不赴约

女孩当小姐,一晚要提供4到5次上门服务,被亲人点到不赴约

情感艺术家
2026-02-26 10:48:00
佛说:人生这八苦,谁也躲不过,若你想通了就是福气

佛说:人生这八苦,谁也躲不过,若你想通了就是福气

金沛的国学笔记
2026-03-28 18:10:08
为了向詹娜索要5万美金封口费,霍华德究竟付出了多大代价?

为了向詹娜索要5万美金封口费,霍华德究竟付出了多大代价?

罗氏八卦
2026-03-29 18:05:03
3月30日执行!不需买墓地了,国家将要开始正式放开殡葬新选择

3月30日执行!不需买墓地了,国家将要开始正式放开殡葬新选择

云舟史策
2026-03-29 07:21:53
赌王最不愿提起的家族秘闻:是的,我妹妹和我弟弟有一个孩子

赌王最不愿提起的家族秘闻:是的,我妹妹和我弟弟有一个孩子

牛锅巴小钒
2026-03-29 09:13:16
10岁夏洛特的蓝眼:血脉纯正像女王也像戴安娜,梅根的女儿比不了

10岁夏洛特的蓝眼:血脉纯正像女王也像戴安娜,梅根的女儿比不了

笑傲春秋
2026-03-29 18:05:03
八大军区司令员对调时,八位司令员的年龄分别是多大?谁最年轻?

八大军区司令员对调时,八位司令员的年龄分别是多大?谁最年轻?

微史纪
2026-03-29 13:09:36
中年男人无妻是啥体验?网友:没钱苦一辈子,跟结婚不结婚没关系

中年男人无妻是啥体验?网友:没钱苦一辈子,跟结婚不结婚没关系

带你感受人间冷暖
2026-03-28 17:20:05
张雪峰女儿亲自辟谣!父母恩爱没离婚,回应三个问题,口才很意外

张雪峰女儿亲自辟谣!父母恩爱没离婚,回应三个问题,口才很意外

可爱小菜
2026-03-30 05:57:16
一段夫妻离婚对话刷屏!丈夫坦诚变心、净身出户,妻子竟平静应允

一段夫妻离婚对话刷屏!丈夫坦诚变心、净身出户,妻子竟平静应允

火山詩话
2026-03-28 15:09:53
2026-03-30 10:52:49
少数派sspai incentive-icons
少数派sspai
高品质数字消费指南
5015文章数 28357关注度
往期回顾 全部

科技要闻

DeepSeek“崩了”一夜,仍无法正常使用

头条要闻

单依纯发文道歉"我的错误与任何人无关" 李荣浩回应

头条要闻

单依纯发文道歉"我的错误与任何人无关" 李荣浩回应

体育要闻

绝杀卫冕冠军后,他单手指天把胜利献给父亲

娱乐要闻

单依纯凌晨发长文道歉!李荣浩再回应

财经要闻

油价冲击,有些亚洲货币先扛不住了!

汽车要闻

理想i9要来了!外形似小号MEGA 能冲击高端纯电市场?

态度原创

旅游
游戏
本地
艺术
军事航空

旅游要闻

多地以花为媒创新玩法激活“春日经济” 沉浸式“赏花打卡”点亮文旅新意

玩家发现《生化危机9》新彩蛋:303号房的维罗妮卡

本地新闻

在潍坊待了三天,没遇到一个“潍坊人”

艺术要闻

600 年前的「产亡孤魂」,藏着中国女性最痛的记忆

军事要闻

美两栖攻击舰载3500名增援到达

无障碍浏览 进入关怀版