背景介绍
M4A 文件格式是使用 AAC(高级音频编码)创建的音频文件,称为有损压缩。M4A 一词缩写为 MPEG 4 音频。这些音频文件通常具有 .m4a 文件扩展名。对于未受保护的内容尤其如此。它可以存储各种类型的音频内容,例如有声读物、歌曲和播客。M4A 通常被实现为比 MP3 更高级的格式,MP3 通常不仅仅为音频而设计。它只是 MPEG 1 或 2 视频文件中的音频层。
M4A 格式由 FairPlay 数字版权管理加密,通过 iTunes Store 销售时使用 .m4p 扩展名。Apple iPhone 使用 MPEG-4 音频作为铃声,但这些音频文件使用 .m4r 扩展名。
MPEG规范中定义音频Object编码提供了用于表示自然声音(例如语音和音乐)和基于结构化描述合成声音的工具。合成声音的表示可以从文本数据或所谓的乐器描述中导出,并通过编码参数来提供效果,例如混响和空间化。这些表示提供压缩和其他功能,例如可扩展性和效果专业
发展历程
M4A,即MPEG-4 Audio,是Apple Inc.于2004年开发的一种数字音频格式。它基于MPEG-4 Part 14 (MP4)文件格式,并使用高级音频编码(AAC)压缩标准。M4A 文件通常比相同质量的 MP3 文件小,并且还可以支持 DRM(数字版权管理)保护。
Apple 想要创建一种比 MP3 更高效、更通用的音频格式,这推动了 M4A 的开发。在相同的文件大小下,AAC 提供比 MP3 更好的音质,而且更能抵抗压缩伪影。此外,M4A 文件可以使用 DRM 进行保护,这使得 Apple 能够控制其音乐的分发和消费方式。
M4A 文件受到大多数现代设备和软件的广泛支持。它们可以在 Apple 设备(例如 iPhone、iPad 和 iPod)以及许多其他设备(例如 Android 手机和平板电脑、Windows 电脑和 Mac 电脑)上播放。
以下是 M4A 历史的简要时间表:
如今,M4A 是一种广泛使用的音频格式。它是 Apple Music 的默认音频格式,并且许多其他流媒体服务(例如 Spotify 和 Amazon Music)也支持它。M4A 文件也是在计算机和移动设备上存储音乐文件的流行选择。
为何有M4A文件
M4A 的开发是为了解决 MP3 音频格式的许多问题。MP3是一种有损压缩格式,这意味着在压缩过程中会丢失一些数据。这可能会导致音质下降,尤其是在较低比特率的情况下。另一方面,M4A 是一种无损压缩格式,这意味着在压缩过程中不会丢失任何数据。即使比特率较低,这也能带来更好的音质。
M4A还解决了MP3文件的DRM(数字版权管理)问题。DRM 是一种可用于限制数字媒体使用的技术。这可能会导致共享 MP3 文件变得困难,并且还会阻止用户在某些设备上播放 MP3 文件。M4A 文件可以使用 DRM 进行保护,但也可以在任何支持 MPEG-4 Part 14 (MP4) 文件格式的设备上播放。
以下是 M4A 解决的一些问题:
- MP3 文件的音质损失
- MP3 文件的 DRM 限制
- 文件大小小
- 广泛的兼容性
以下是 M4A 发展的一些原因:
- Apple 希望创建一种比 MP3 更高效、更通用的音频格式
- 对无损压缩格式的需求
- 需要不受 DRM 限制的格式
M4A 与 MP4 | M4A和MP4的区别
- M4A 是一种高度压缩的格式,因为它使用 MPEG-4 技术,而 MP3 使用的压缩程度较低。即使比特率较低,M4A 文件的音质也优于 MP3 文件。
- M4A是ISO开发的,而MP4是Fraunhofer协会开发的
- 文件使用有损 AAC 编解码器通过 M4A 进行编码。这使得该格式能够提供相同的比特率,同时实现比 MP3 更严格的压缩,因此,您可以使用较小的文件播放高质量的声音。
- M4A 的文件扩展名为 .m4a,而 MP4 的扩展名为 .mp4。
- M4A 文件的兼容性不如 MP3 文件,因为 M4 A 是更新的格式。查找 MP3 音乐相当容易,您可以在各种设备上立即访问它。支持 MPEG-DASH 和 HLS 流协议。
- M4A 扩展为快速文件格式,而 MP4 则是从 MP2 扩展而来。
- MP4 主要由 Apple 用于 iTunes 歌曲,而 MP4 用于音频文件的现有标准。
文件格式
在QuickTime文件中,基本的数据单元是原子(atom)。Atoms由头部(header)和后续的原子数据组成。Atom Header包含原子的大小字段(size)和类型字段(type),用于表示原子的字节大小和类型,如下图所示。大小字段表示原子中的总字节数,包括大小和类型字段。类型字段指定原子中存储的数据类型,并隐含了该数据的格式。在某些情况下,大小和类型字段之后会有版本(version)字段和标志(flags)字段。带有这些版本和标志字段的原子有时也被称为完整原子。
如果一个扩展大小字段存在,它会给出一个64位整数作为大型原子的大小。如果存在扩展大小字段,大小字段将被设置为1。一个原子的实际大小不能小于8个字节(即类型和大小字段的最小大小)。
以下是 M4A 文件中最常见的atom类型的列表:
“ftyp”、“mdat”、“moov”、“pnot”、“udta”、“uuid”、“moof”、“free”、“skip”、“jP2“、“wide”、“load”、“ctab”、“imap”、“matt”、“kmat”、“clip”、“crgn”、“sync”、“chap”、“tmcd”、“scpt” 、“ssrc”、“PICT”。
第一个块的类型为“ftype”,并且在偏移量 8 处有一个子类型。由子类型定义的 M4A 必须是“M4A_”,对于 M4B 子类型必须是“M4B_”,对于 M4P 子类型必须是“M4B_”。是“M4P_”。
- ftyp:该块标识文件格式和版本。
- mdat:该块包含实际的音频数据。
- moov:该块包含电影信息,例如曲目信息和元数据。
- udta:该块包含用户定义的元数据。
M4A 文件结构也是分层的,这意味着块可以包含其他块。例如,moov 块可以包含 auds 块,其中包含音频流信息。
至于具体每一个atom的含义,可以自行查阅Apple官网的说明,上面记录的非常详细,链接如下:
https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFPreface/qtffPreface.html#//apple_ref/doc/uid/TP40000939-CH202-TPXREF101
当然也有PDF版本:
https://developer.apple.com/standards/qtff-2001.pdf
文件工具
针对具体的M4A文件,可以用MP4Reader进行直观查阅,更好理解M4A文件:
MP4 Reader 是一款用于 ISO 基于的媒体文件格式及其衍生格式的工具。主要功能:
- 显示 ISO/IEC 14496-12、ISO/IEC 14496-14 和 ISO/IEC 14496-15,Smooth Streaming Protocol Specification 和 Adobe Flash Video File Format Specification 中Atom(原子)的详细信息。
- 显示每个轨道的解码器特定配置的详细信息。
- 在 “mdat” 盒子中以十六进制字符显示每个样本的内容。
下载地址如下:
https://mp4-reader.software.informer.com/
参考文献
https://www.file-recovery.com/m4a-signature-format.htm
https://sound.media.mit.edu/resources/mpeg4/audio/general/w3156.pdf
https://csclub.uwaterloo.ca/~ehashman/ISO14496-3-2009.pdf
我是一枚爱跑步的程序猿,维护公众号和知乎专栏《MediaStack》,有兴趣可以关注,一起学习音视频知识,时不时分享实战经验。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。