2023年11月25日发(作者:)

mp4AAC数据格式、解析⽂件的创建修改时间

AAC⽂件

资料:

AAC的⾳频⽂件格式有ADIF ADTS

ADIFAudio Data Interchange Format ⾳频数据交换格式。这种格式的特征是可以确定的找到这个⾳频数据的开始,不需

进⾏在⾳频数据流中间开始的解码,即它的解码必须在明确定义的开始处进⾏。故这种格式常⽤在磁盘⽂件中。

ADTSAudio Data Transport Stream ⾳频数据传输流。这种格式的特征是它是⼀个有同步字的⽐特流,解码可以在这个

流中任何位置开始。它的特征类似于mp3数据流格式。

.⼀加⼿机的录⾳⽂件是AAC格式的。

经过观察,这个⾳频⽂件格式为ADTS。对这种类型⽂件分析,可以参考下mp3⽂件的⾳频数据帧

---------------------------------------------------------------------------------------------------------------------------------------------

MP4⽂件格式

M4A⽂件头:

MP4⽂件中的所有数据都装在boxQuickTime中为atom)中,也就是说MP4⽂件由若⼲个box组成,每个box有类型和长度,可以将box

解为⼀个数据对象块。box中可以包含另⼀个box,这种box称为container box。⼀个MP4⽂件⾸先会有且只有⼀个“ftyp”类型的box,作为

MP4格式的标志并包含关于⽂件的⼀些信息。

Box说明:

⾸先需要说明的是,box中的字节序为⽹络字节序,也就是⼤端字节序(Big-Endian),简单的说,就是⼀个32位的4字节整数存储⽅式为

⾼位字节在内存的低端。

Boxheaderbody组成,

其中header统⼀指明box的⼤⼩和类型,

body根据类型有不同的意义和格式。

标准的box开头的4个字节(32位)为box size,该⼤⼩包括box headerbox body整个box的⼤⼩,这样我们就可以在⽂件中定位各个

box

如果size1,则表⽰这个box的⼤⼩为large size,真正的size值要在largesize域上得到。(实际上只有“mdat”类型的box才有可能⽤到large

size。)如果size0,表⽰该box为⽂件的最后⼀个box,⽂件结尾即为该box结尾。(同样只存在于“mdat”类型的box中。)

size后⾯紧跟的32位为box type,⼀般是4个字符,如“ftyp”“moov”等,这些box type都是已经预定义好的,分别表⽰固定的意义。如果

“uuid”,表⽰该box为⽤户扩展类型。如果box type是未定义的,应该将其忽略。

box类型,增加⼀个wide类型。

后记mp4AACM4A⽂件格式解析

m4a(aac编码)就是的⾳频内容

m4amp3⼀样,也是⼀种⾳频格式的⽂件,但⼀般普通的m4a⽂件扩展名通常是mp4,由于苹果的iTunes的原因,现在⼤多数的⾳乐软件

都直接⽀持了m4a

如果遇到有m4a⾳频格式的⽂件,可以安全地把只包含⾳频的.mp4 ⽂件的扩展名改成.m4a,以便让它能在你喜欢的播放器⾥播放,反过来

转换也可以。

随着苹果⼿机iPhone和平板iPad的流⾏,使得iPhoneiPad中⽀持的m4a格式⽂件如今流⾏了起来。M4AMPEG-4⾳频标准的⽂件的扩

展名。

MPEG4标准中提到,普通的MPEG4⽂件扩展名是“.mp4”。⾃从Apple开始在它的iTunes以及iPod中使⽤“.m4a”以区别MPEG4的视频和⾳

频⽂件以来,

“.m4a”这个扩展名开始被⼤家认识。

注:AAC⽂件就是不经封装的⾳频流。M4A⽂件就是以MPEG-4标准的封装格式进⾏封装的AAC

====================================

⽂件的创建、修改时间的解析,思路:

计算得到:

1904-01-01零点 1970-01-01零点经过的秒数

把从⽂件中解析得到的秒数 减去 上⾯的秒数

得到的值就可以使⽤ctime函数了。