五、MP3文件认识上的几个误区
1.每帧播放时长都为26ms?
很多博客和文章都提到,Mp3文件每个帧的播放时长(Frame_PlayingTime)是26ms,这个结论是错误的。公式应该是这样的:
一个帧的播放时长=一个帧的采样个数*一次采样的时间=一个帧的采样个数*(1/采样频率)------------------单位是秒。
Frame_PlayingTime=Sample_Number * Time_Per_Sample=Sample_Number * (1 / Frame_Sample_Rate)
现在分析一下26ms的来历,我们一般的声音文件采样频率为44.1KHZ,也就是说分析数据帧时,第21至22位为“00”,如“FF FB 90 64”,所以
每帧的播放时长=1152/(44.1*1000)=26.12ms=26ms;但是,前面的博文里面分析了,MPEG-1共有三种采样频率(如下表);所以,采样频率为48KHz时,每帧的播放时长为24ms;采样频率为32Hz时,每帧的播放时长为36ms;
|
00 |
01 |
10 |
11 |
|
|
MPEG-1 |
44.1 kHz |
48 kHz |
32 kHz |
未定义 |
|
MPEG-2 |
22.05 kHz |
24 kHz |
16 kHz |
未定义 |
|
MPEG-2.5 |
11.025 kHz |
12 kHz |
8 kHz |
未定义 |
另:在这里,说一下MPEG-2和MPEG-2.5。MPEG-2 音频(ISO/IEC 13813-3)包含了对 MPEG-1的两种扩展。通常称为 MEGP-2/低采
样率(LSF)和MPEG-2/多声道(Multichannel)。 MPEG-2/LSF的特性:a.一个或两个音频声道
b.采样率只有MPEG-1的一半c.比特率从8Kpbs 到256Kbps;MPEG-2/多声道 的特性:a.多达5个全范围的音频声道和一个
LFE(Low Frequency Enhancement,也叫做 重低音)声道b.采样率和MPEG-1相同c.对于5.1声道,最高的比特率可达
1Mpbs 。
五、MP3文件认识上的几个误区的更多相关文章
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- SpringMVC学习总结(五)——SpringMVC文件上传例子
这是用的是SpringMVC-3.1.1.commons-fileupload-1.2.2和io-2.0.1 首先是web.xml <?xml version="1.0" e ...
- 渗透测试学习 十五、 文件上传&&解析漏洞
大纲:文件解析漏洞 上传本地验证绕过 上传服务器验证绕过 文件解析漏洞 解析漏洞主要说的是一些特殊文件被IIS.Apache.Nginx在某些情况下解释成脚本文件格式的漏洞. IIS 5.x/6.0解 ...
- SpringMVC中文件的上传(上传到服务器)和下载问题(一)
一.今天我们所说的是基于SpringMVC的关于文件的上传和下载的问题的解决.(这里所说的上传和下载都是上传到服务器与从服务器上下载文件).这里的文件包括我们常用的各种文件.如:文本文件(.txt), ...
- 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片
突发奇想,想弄个显示MP3文件信息和专辑图片的小Demo,个人不是大牛,遂百度之,总算搞定,现分享如下. 效果图: GIF效果图: 主要是依靠2个DLL文件:ID3.dll 和 Interop.She ...
- 浅谈如何使用代码为MP3文件写入ID3Tags
作者:郑童宇 GitHub:https://github.com/CrazyZty 1.前言 做了三年左右的Android开发,一直没写过博客,最近正好打算换工作,算是闲一些,就将以前开发所遇到的一些 ...
- Unity3d:播放物理目录下的MP3文件
u3d里,是支持播放MP3文件的,但要放到资源里,不支持播放物理目录下的MP3文件.由于界面上无需显示,只是当作背景音乐来播放,所以想到调用c#的组件来解决此问题.主要代码都在附件中,根据需要加到自己 ...
- HTML5 文件域+FileReader 分段读取文件并上传(七)-WebSocket
一.单文件上传实例 HTML: <div class="container"> <div class="panel panel-default" ...
- android下大文件分割上传
由于android自身的原因,对大文件(如影视频文件)的操作很容易造成OOM,即:Dalvik堆内存溢出,利用文件分割将大文件分割为小文件可以解决问题. 文件分割后分多次请求服务. //文件分割上传 ...
随机推荐
- [core Java学习笔记][第一二三章基本语法]
基本语法 1 Java 简单的类型 1.1 一些常量 正无穷大 Double.POSITVE_INFINITY 负无穷大 Double.NEGATIVE_INFINITY 不存在 Double.NaN ...
- Js Json 互转
推荐: //js对象转换为 JSON 文本 var text = '[{"id":1,"name":"C","size" ...
- 引用System.Runtime.Serialization.Json
vs2012下,重新添加一次System.Runtime.Serialization的引用
- [转]CSS vertical-align属性详解 作者:黄映焜
CSS vertical-align属性详解 posted @ 2014-08-26 17:44 黄映焜 前言:关于vertical-align属性. 实践出真知. 垂直居中. 第二种用法. ...
- 自适应SimpsonSimpson积分
- Sql存储过程解密方法
在网上查到这样一个存储过程解密的方法,用起来简单,收藏到这里: )) AS ------------------------sql2000大于40000的----------------- --原作: ...
- bzoj 2049 Cave 洞穴勘测(LCT)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud 动态树入门题,不需要维护任何信息. 我用的是splay,下标实现的lct. #in ...
- netCDF
NetCDF started in 1989 most used in geoscience community array-oriented self-describing header, desc ...
- mysql dos启动出现1067错误的解决方法
请参看下面的链接:http://www.webjx.com/htmldata/2007-10-16/1192542247.html
- Python多线程同步命令行模拟进度显示
最近在一个Python(3.5)的小项目中需要用到多线程加快处理速度,同时需要显示进度,于是查了些资料找到几个实现方法:线程池的map-reduce和Queue结合线程的实现.这里简单的实例介绍一下Q ...