4.1.3. 计算CBR的MP3的播放时间的两种方法的总结

也因此,最开始的原以为的第二种方法,和第一种,是同一种的想法,其实是错误的。正确的理解是,第二种方法的确是另外一个方法,而且更准确。

因为第一种方法:

CBR播放时间

= 文件大小(字节)× 8比特/字节 ÷(比特率 千比特/秒 ×1000 比特/千比特)

中的比特率,只是针对每一帧的音频的数据的,而并不包括4字节的帧头,而(参见上面的解释):“常见MPEG帧的音频数据大小是418字节”,所以,这样比较起来,至少是,没418+4=422的这一个帧,其中只有418个是真正的音频数据,而比特率,指的只是这个帧数据的比特率,并不包括4字节的帧头,如果也包含进去了,那么则产生了误差,误差大概是4/(418+4)=0.95%,即大概是百分之一的误差。

即,方法一,计算出来的CBR的播放时间,大概有1%的误差。

而第二种方法:

CBR播放时间

= 每一帧的时长 × 总的帧数

= 文件大小(字节)× ( 4 + (每一帧的采样个数÷每一帧的采样频率)× 比特率(千比特/秒)× 1000(比特/千比特)÷ 8比特/字节] ) )×(每一帧的采样个数÷每一帧的采样频率)

就把每一帧的4字节的帧头,也计算进去了,好处是计算出来的播放时间更加精确,坏处是,计算起来,相对第一种方法来说,比较麻烦。

而第一种方法,虽然有大概1%的误差,但是很容易计算。所以现实中,常用第一种方法。