audio - 确定音频文件是否以Apple Lossless(ALAC)编码

标签 audio encoding aac m4a

有许多带有.m4a后缀的音频文件,这些文件以AACApple Lossless(ALAC)之一编码。我只想选择以Apple Lossless编码的音频文件。有什么办法可以确定吗?我尝试了FFmpeg,但是它说所有的代码都是AAC编码的。

编辑:我目前在Windows上。

最佳答案

这是第67页的描述M4A的文件(到目前为止,是我所能找到的最好的文件):
http://iweb.dl.sourceforge.net/project/audiotools/audio%20formats%20reference/2.14/audioformats_2.14_letter.pdf

A typical M4A begins with an 'ftyp' atom indicating its file type...
10.2.1 the ftyp atom
[0 31] ftyp Length [32 63] 'ftyp' (0x66747970)
[64 95] Major Brand [96 127] Major Brand Version
[128 159] Compatible Brand₁ ...
The 'Major Brand' and 'Compatible Brand' elds are ASCII strings. 
'Major Brand Version' is an integer.


最初,我认为'ftyp'是确定格式的地方,但从此列表来看,它更像是文件类型本身(已经称为m4a):
http://www.ftyps.com/index.html

http://www.ftyps.com/what.html描述更多格式。

如果ftyp没有区别,那么我认为“主要品牌”字段可能是指此页面上的fourcc:
http://wiki.multimedia.cx/index.php?title=QuickTime_container
苹果无损软件是“alac”,而AAC可能是“mp4a”

苹果的无损格式开源页面表明ftype是'alac'(与上面略有矛盾)
http://alac.macosforge.org/trac/browser/trunk/ALACMagicCookieDescription.txt

到目前为止,我所能知道的是,ftyp之后的4个字节始终(以较小的样本大小)为“M4A”。

前约200个(十六进制)字节中的某个位置,存在用于AAC压缩的ascii“mp4a”或用于Apple Lossless的“alac”。 “alac”似乎总是成对出现,相距〜30个字节(“mp4a”仅出现一次)。

抱歉,还不很具体,如果我找到确切的位置或前缀,我会再次更新。 (我的猜测是标题的较早部分在某处指定了大小。)

关于audio - 确定音频文件是否以Apple Lossless(ALAC)编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934936/

相关文章:

iphone - 如何分析iOS中音频队列服务中录制的音频文件?

java - 编码问题; .jar 不适用于 UTF-8 文件中的西里尔字符

android - 从 Android 中的解码声音文件绘制音频波形

ffmpeg - VLC播放器如何计算fmp4文件时间线的总长度?

android - 无需 MediaMuxer 即可将 PCM 转换为 AAC 或 MP4 文件

asp.net - 跨 WEB API 2 流式传输视频

java - 加性高斯白噪声 Java(dB)

iphone - 尝试播放音频文件

c# - 将组合变音符号转换为简单的 utf

编写德语字母时出现 Python UnicodeDecodeError