MP3文件如何计算总播放时间
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文件如何计算总播放时间相关推荐
- 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)
使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件) 使用beep播放mp3文件(10num) 使用go语言GUI库fyne实现音乐播放器 要是想使用go语言实现播放mp3需要借助be ...
- 常用的视频格式文件WEB端播放代码
1.avi格式 代码片断如下: <object id="video" width="400" height="200" border= ...
- 磁带转换成MP3 文件,摆脱复读机
一.就是3.5接口的直录线,2元一根,接入声卡的Line IN口,另一端接入录音机的耳机口,用goldwave或Audition.exe录音,在音量属性中选录音选项,来源选Stereo 即立体声输入, ...
- js获取播放器播放时间和停止播放
html代码 1 <video id="myVideo" class="video-active" width="100%" heig ...
- MPEG简介 + 如何计算 CBR/VBR MP3 的播放时间
[此文目的] 1. 了解 MPEG相关知识 2. 了解 MP3 的常见术语含义 3. 详解 VBR MP3的帧头格式及含义 4. 搞懂如何去计算 CBR和 VBR的 MP3文件的播放时 ...
- MPEG简介 + 如何计算CBR 和VBR的MP3的播放时间
1. 声明 本文所写内容,多数整理自互联网,版权归原作者所有 笔者知识有限,文中难免有误,欢迎批评指正,admin (at) crifan.com 觉得此文对你有帮助,想要发邮件来感谢的,也欢迎哈,^ ...
- Android 入门第九讲01-音频(本地音乐播放,暂停,继续播放,获取播放时间,快进到指定位置,变速播放,播放data/data/目录下的音频文件,播放网络歌曲)
Android 入门第九讲01-音频(本地音乐播放,暂停,继续播放,获取播放时间,快进到指定位置,变速播放,播放data/data/目录下的音频文件,播放网络歌曲) 准备 1.储存在raw文件夹 2. ...
- JB的测试之旅-上传的mp3文件播放不了
温馨提示:阅读时长约2分钟: 前言 公司是资讯类产品,因此后台采用了开源的编辑器供运营原创文章.上传图片.视频等,这不,运营上传完视频发布文章后,发现文章里面的音频播放不了: 而这,就是故事的开端: ...
- 【工具】音乐播放相关工具,音乐文件格式转换工具,MP3文件转换成arduino可以直接播放的wav格式,MP3转WAV工具...
微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 最近玩播放音乐又用到了audio.online-convert这个音乐转换工具,好用, ...
最新文章
- Python将彩色图转换为灰度图
- Web纯前端“旭日图”实现元素周期表
- centos oracle命令,CentOS7命令行方式搭建Oracle11gR2
- pythonbool类型数组生成_Python Numpy:如何计算bool数组中真正元素的数量
- Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类
- 基于Nexys4 DDR的温度数码管实时显示
- Linux系统中添加硬盘,并挂载到已有的目录,比如/home/user
- centos7限制cpu使用_CentOS7 CPU隔离配置
- 大屏监控系统实战(13)-10分钟投票增量曲线制作(二)
- 数据结构与算法(八)-二叉树(斜二叉树、满二叉树、完全二叉树、线索二叉树)...
- 如何通过git客户端上传项目到github上
- windows phone 扫描二维码
- CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
- 给兆芯出主意:开发一批新指令,交叉授权
- jeecms常见用法
- Python,折线图,手写数字,图像反色、二值化、28X28
- 会员注册与验证码demo 带注释(html、css、js)
- 全国青少年编程等级考试python一级真题2022年3月(含题库答题软件账号)
- java服务器常见状态码
- 华为自研系统鸿蒙为什么也要基于linux来开发?