MP3文件如何计算总播放时间
来源:互联网 发布:海康威视网络监控 编辑:程序博客网 时间:2024/05/06 06:21
MP3文件中没有关于该文件总的播放时间这个变量,因此,要通过一定的计算方法来计算出一个MP3文件的总的播放时间。MP3文件根据比特率是否变化可以分为VBR和CBR的文件,因此,对于这两种文件,计算总播放时间的方法也是不一样的。
1、CBR的MP3文件的计算方法
CBR,故名思议,Constant Bitrate,文件的比特率是固定的,也就是说每个帧的比特率也是固定的。因此,可以通过下面的公式来计算总的播放时间:
总播放时间 = 文件大小 * 8 / 比特率
(1)文件大小:文件大小是以字节为单位。一个MP3文件包括两个部分,一部分是帧数据,还有一部分就是tag,因此,这里的文件大小是指MP3文件的总大小减去tag的大小,即:
文件大小 = 文件总大小 - tag大小
其实,tag所占用的空间与整个MP3文件相比,微乎其微,几乎可以忽略不计。
(2)这里的8是指一个字节包含的比特位数。
(3)比特率:要获得比特率,首先要对MP3文件的第一个帧的Header进行解析,获得比特率的索引值,然后,查比特率索引表,即可得到比特率。
2、VBR的MP3文件的计算方法
VBR,Variable Bitrate,即文件的比特率是时刻在变化着的,每一帧的比特率是不一样的,所以要计算VBR的MP3文件的总播放时间就有点复杂。可以通过下面的公式来总的播放时间:
总播放时间 = 总帧数 * (帧的采样个数 * 1 / 采样率)
(1)总帧数:VBR的MP3文件有两种Header:XING和VBRI,这两个Header中包含了一些信息,其中就包括总帧数。每个VBR的MP3文件只包含一种Header。要判断一个MP3文件是CBR还是VBR就是根据文件是否包含这两种Header中的一种,如果包含XING或者VBRI,就是VBR文件,如果都没有,那就是CBR。这两种Header只会在VBR的MP3文件的第一帧中出现,这里对这两种Header不作介绍。
(2)采样率:首先要对MP3文件的第一个帧的帧头进行解析,获得采样率的索引值,然后,查采样率索引表,即可得到采样率。1 / 采样率:表示每个采样的时长。
(3)帧的采样个数:首先要对MP3文件的第一个帧的帧头进行解析,获得MPEG的版本,然后根据MPEG的采样数索引表查找到帧的采样个数。比如:MPEG1,LayerIII,对应的就是1152。帧的采样个数 * 1 / 采样率:表示一帧的时长。
- MP3文件如何计算总播放时间
- 关于MP3文件播放时间的计算
- 如何获取mp3文件的播放时间
- MPEG简介 + 如何计算CBR/VBR MP3的播放时间
- MPEG简介 + 如何计算CBR/VBR MP3的播放时间
- MPEG简介 + 如何计算 CBR/VBR MP3 的播放时间
- mp3文件总播放时长计算方法
- 如何取得MP3的总时间
- 如何得到WAV文件播放的总时间
- MPEG简介 + 如何计算CBR/VBR MP3的播放时间-2
- MPEG简介 + 如何计算CBR/VBR MP3的播放时间 - 1
- MP3格式分析(五)---计算CBR和VBR的MP3文件的播放时间的步骤
- 获取MP3文件的播放时间
- fedora 播放mp3文件
- C# 播放MP3文件
- flex 播放mp3文件
- python播放mp3文件
- C语言实现获得wav文件播放总时间
- WINCE 驱动基本概念
- Python爬虫
- hdu 4407 (容斥原理 + 暴力)
- Hibernate 注解 annotation
- 棚户区改造
- MP3文件如何计算总播放时间
- 品蜜心得
- maven使用.02.一些概念
- ios的数据存储
- solr搜索提示,将词添加到词库中
- IOS设计UI工具大全
- oc-之数组
- The C Programming Language Brian W. Kernighan & Dennis M. Ritchie
- Android之Adapter用法总结