M4A 和 AAC 音频文件有啥区别?

Posted

技术标签:

【中文标题】M4A 和 AAC 音频文件有啥区别?【英文标题】:What is the difference between M4A and AAC Audio Files?M4A 和 AAC 音频文件有什么区别? 【发布时间】:2013-08-09 05:50:43 【问题描述】:

M4A 音频文件和 AAC 音频文件有什么区别吗? 相同的东西,但文件扩展名不同?

【问题讨论】:

【参考方案1】:

.M4A 文件通常仅包含音频,并被格式化为 MPEG-4 Part 14 文件(.MP4 容器)。

.AAC 不是容器格式,而是经过编码的音频流的原始 MPEG-4 Part 3 比特流。

请注意,M4A 不必完全包含 AAC 音频,还有其他有效选项。

【讨论】:

不是.M4A是一个独立于.MP4容器的容器吗,前者是一个音频容器——就像.M4V是一个视频容器一样——而后者,相比之下,是音频和视频的容器?您的回答似乎只是暗示 .M4A 文件使用 .MP4 容器,这不是我理解的事情。 @Hashim:M4A 和 MP4(和其他)是假设容器格式称为 MP4 的扩展。数据结构完全相同,只是选择了M4A的扩展名,表明文件可能只有音频(这不是严格的条件,而是更多的提示)。 所以M4A不是编解码器?我试图理解为什么 Accord.NET 中的 FFmpeg 接口提供 AAC 和 M4A 作为音频编解码器的选择。 @KyleDelaney M4A 不是编解码器。 MP4/M4A/M4V 都是可互换的文件扩展名,用于方便地引用相同的 MP4 容器格式,作为封闭媒体类型的提示。 M4A:仅音频,M4V:仅视频,MP4(有时是 M4V):两者。用于 MP4 文件的最常见编解码器是 H.264 视频和 AAC 音频。如果 M4A 被列为编解码器选项,它可能只是让您在多个标准 MP4 音频编解码器之间进行选择(或者如果没有,则只是具有不同选项的 AAC)。 从@Beejor 添加到 cmets 以尝试帮助人们澄清:M4A、MP4 和 MV4 是容器。参考 OP,.AAC 是文件扩展名,AAC 是编解码器。让事情变得更加混乱(当然!),AAC 是少数能够独立存在的音频编解码器之一,它也可能包含(“包含”)在容器(例如 MP4)中。重新封顶:AAC 是编解码器,也可以是文件扩展名。 M4A 是一个容器。 M4A 不是编解码器。【参考方案2】:

有原始视频和音频流,这些流不能直接在大多数视频/音频播放器上播放,它们需要在传输中“封装”,原始 H.264 视频流和原始 AAC 音频流需要可以在 MP4 封装内,也可以在 AVI 或 MOV 封装内。

MP4 文件可以包含 H.264 视频流和/或 AAC 音频流,但由于某种原因,有人决定包含视频和音频的 MP4 文件使用文件扩展名 M4V(v 表示视频),如果它是一个 MP4 文件,仅包含使用 M4A 扩展名的音频,这是其他封装器的常见做法,例如使用 WMV 和 WMA 的 Windows Media,或使用 OGV 和 OGA 的 OGG,看起来很愚蠢。

因此,具有 M4A 文件扩展名的文件是可以包含 AAC 音轨的 MP4 文件,但并非总是如此,这就是为什么像 mediainfo 这样的程序可以方便地了解文件中的内容。

【讨论】:

我在哪里可以阅读更多关于您关于某些音频播放器 [截至 2013 年] 只能播放“封装”文件但不能播放原始流的声明的信息? 尝试在不使用 MP4 封装的情况下在 iTunes 或 Windows Media 上播放 AAC 曲目。 我没有 iTunes。 Windows Media Player 12.0.18362 版可以播放。对我来说,听起来“封装”是原始 AAC 加上额外的标头,即比原始更难解析。所以我想知道我认为原始 AAC 更简单是否是错误的,或者为什么不经常支持原始 AAC。 这是一篇很好的文章,解释了编解码器和容器之间的区别:tubularinsights.com/file-formats-containers-compression 该链接没有回答我的问题:为什么不经常支持原始 AAC。但我现在有一个理论。由于带有音频的视频总是在一个容器中,程序员必须实现视频+音频容器的读取;然后从那里实现读取音频容器可能比读取原始音频更容易。【参考方案3】:

它们不是一回事。

.m4a 文件与mp4 基本相同;它只是一种容器格式。 codec != container 不表示编解码器,因此只能包含mp3ac3 或任何其他音频编解码器。

.aac 文件包含串联的 AAC 帧,前面带有 ADTS 标头(以及可选的 ID3 标记)。

【讨论】:

如果您知道aacm4a 使用哪种类型的编解码器,您能帮我吗?? aac是编解码器,所以编解码器是aacm4a是容器,所以可以是任意编解码器。

以上是关于M4A 和 AAC 音频文件有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙中的三种音频编码:Apt-X、SBC、AAC,请问分别有啥区别?

请问MP3 OGG WMA WMV WAV 和AAC格式之间有啥区别啊

AVAudioRecorder 录制 AAC/m4a

使用 Android 流式传输 AAC 音频

AVAudioPlayer initWithContentsOfURL 为 AAC/M4A 文件返回 nil

audition cs6怎样导出aac和m4a的格式音乐