[写在最前面的] 越发觉得iteye(以前的javaeye)是个不错的技术讨论平台,所以决定先将以前的一些技术相关的文章都搬过来。一来备忘,二来系统化自己的知识。主观上是为了自己的积累与提高,希望客观上能给不相识的技术伙伴一点帮助。如果转载,请标注出处。
在AAC媒体文件中,以Sampling Frequency Index的方式记录AAC的采样率,下面的数组为对应表:AAC_Sampling_Frequency_Table[16] = {96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350, 0, 0, 0}
AAC媒体文件的时长难为了我不少时间,现在终于明白了如何计算。
首先要明确一点,AAC的每帧采样个数为1024,即每个AAC帧中包含1024个采样。
这样Frame_duration(s/f)=1024(Sample/f)/Sampling_Rate(Sample/s),File_duration(s)=Frame_duration(s/f)*Frame_count(f)。
例子,某个AAC媒体,采样率16000Hz,938帧,时长=(1024/16000)*938约为60秒。