M4A 是一个最清楚的例子,说明一个贯穿整个音频和视频领域的问题:扩展名指的是盒子,不是里面的东西。两个都以 .m4a 结尾的文件,内部可以像照片和扫描件一样不同。
一个 M4A 文件是一个只装音频的 MP4 容器。和视频 MP4 是同一套容器规格——一模一样的盒子,只是把视频轨拿掉了。
Apple 引入这个扩展名,是为了让系统不要试图用视频播放器去开一个纯音频文件。那就是这个名字的全部用途:它标示意图。容器和编解码器是分开的两层,而 M4A 只描述了第一层。
在一个 M4A 里面,你会找到两种差异极大的编解码器之一:
AAC——有损,而且常见得多。它丢掉细节来换取小文件,是 MP3 的继任者,而且在同样比特率下比它好。一首三分钟的歌大约 3 到 6 MB。
ALAC(Apple 无损)——无损。它压缩但不丢掉任何东西;解开之后你会原封不动拿回原始采样。同一首三分钟的歌大约 20 到 30 MB。
所以两个 M4A 文件之间五倍到十倍的体积差距不是错误,而且两个文件都没有坏。一个是压缩过的近似值,另一个是完美的副本。扩展名完全没告诉你手上是哪一种。
最快的判断方法:拿文件大小对照时间长度。接近每分钟 10 MB 的是 ALAC;接近每分钟 1 MB 的是 AAC。一个会报告音频文件信息的工具会直接把编解码器名称列出来。
你可能遇过的好几个扩展名,其实是同一个容器换了标签,用来告诉 Apple 软件该怎么对待这个文件:
.m4a——一般音频。.m4b——有声书。容器完全相同;这个扩展名让播放器记住你的进度,并提供章节导航和速度控制。.m4r——铃声。.m4p——旧的 DRM 保护购买内容。这些是真的被锁住,不只是贴了标签。因为 .m4a 和 .m4b 是同一个格式,把一个长音频文件改名成 .m4b 是一个真的有用的技巧:它让一段录音变成播放器会当成有声书对待的东西,附带进度记忆。文件内部什么都没变。
第三种值得多讲一点。把音频从 MP4 里拉出来变成 M4A 根本不需要重新编码——那条轨道原封不动地从一个盒子搬到另一个,几秒钟,没有任何质量损失。如果一个工具花了好几分钟从视频抽音频、而且结果听起来略差,那它重新编码了一个不需要重新编码的东西。
M4A 里的 AAC 基本上在每一台手机、电脑、浏览器和现代车机上都播得出来。例外是较旧的硬件——MP3 时代的车载音响和独立播放器——它们可能看得到文件却拒绝播,或者根本不列出来。
ALAC 窄一些。它在 Apple 软件里支持良好,在其他地方也越来越普及,但一台愉快播放 AAC 的设备可能处理不了 ALAC,而从外面看那个失败长得一模一样。
正确答案完全取决于你实际上拿到的是哪个编解码器。
从 AAC 转:这是有损转有损。文件被解码然后再压一次,而第二轮只能移除更多。结果永远不会比你开始时的好。只为了兼容性才做,而且用宽松的比特率——192 kbps 以上——好让第二轮的损伤保持听不出来。
从 ALAC 转:这是正常、健康的方向。你是在第一次压缩一个无损原始文件,和从 WAV 开始完全一样,而结果就是 MP3 能达到的最好水准。把 ALAC 留着当正本。
所以同一个操作——“把 M4A 转成 MP3”——在一种情况下是不情愿的妥协,在另一种情况下是正确的流程,而扩展名完全没给你任何线索你在哪一种情况里。
.m4b、.m4r 和 .m4p 是同一个容器贴了不同标签