另外,多说一句,我原先以为,还有另外一种计算方法,即:
“总帧数乘于每一帧的时长法”
总的时长 = 每一帧的时长 * 总的帧数
就是先计算每一帧的时间长度,再计算一共有多少帧,然后将两者相乘,即可得到文件总时长。
其中:
= 每一帧的采样个数 * 每一采样的时长
= 每一帧的采样个数 * (1 / 每一帧的采样频率)
而
总的帧数
= 文件大小 / 单个帧的大小
= 文件大小(字节)* 8比特/字节 / ((每个帧的时长 * 比特率(千比特/秒) * 1000比特/千比特))
但是后来发现,上面这个计算总的帧数的方法,其实是不精确的,是把每一帧的4字节的MPEG帧头漏掉了。
因此,才会有之前的想法,认为这两种计算CBR的MP3的播放时间的计算公式是同一种:
“此法,其实和上面的是同一个方法,因为上面两个等式相乘之后,即为:
总的时长
= 每一帧的时长 * 总的帧数
=每一帧的时长 * [总的文件大小(字节)* 8比特/字节 / ( (每个帧的时长 * 比特率(千比特/秒) * 1000比特/千比特) )]
= [总的文件大小(字节)* 8比特/字节 / [ 比特率 千比特/秒 * 1000比特/千比特)]
还是和上面的方法是,是同一个公式。
”而对于上面的总的帧数的计算方法,真正正确的是:
总的帧数
= 文件大小 ÷ 单个帧的大小
= 文件大小 ÷ (帧头 + 帧数据)
= 文件大小 ÷ (固定的4字节 + 帧数据)
= 文件大小(字节)× 8比特/字节 ÷ ( 4 + [ 每个帧的时长 × 比特率(千比特/秒)× 1000(比特/千比特)] )
方法二,即为:
CBR播放时间
= 每一帧的时长 × 总的帧数
= (每一帧的采样个数 ×(1 / 每一帧的采样频率))×( 文件大小(字节)× 8比特/字节 ÷ ( 4 + [ 每个帧的时长 × 比特率(千比特/秒)× 1000(比特/千比特)] ) )
= 文件大小(字节)× ( 4 + (每一帧的采样个数÷每一帧的采样频率)× 比特率(千比特/秒)× 1000(比特/千比特)÷ 8比特/字节] ))×(每一帧的采样个数÷每一帧的采样频率)
其中:
文件大小:是总的MP3文件大小,减去MP3的Tag的大小。