有许多带有.m4a
后缀的音频文件,这些文件以AAC或Apple 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
最初,我认为'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/