五、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堆内存溢出,利用文件分割将大文件分割为小文件可以解决问题. 文件分割后分多次请求服务. //文件分割上传 ...
随机推荐
- 获取被选择的radio的值
function selectRadio() { var val = $('input:radio[name="address_select"]:checked').val(); ...
- Linq:切勿使用 Count() > 0 来判断集合非空
原文(http://www.cnblogs.com/ldp615/archive/2011/12/11/2284154.html) Linq 出现之前,我们通常使用下面的方式来判断集合是否非空,即集合 ...
- 黑马程序员—— Java SE(2)
----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...
- jsp文件上传
整理了一下jsp的上传下载,由客户端到服务端,包括一些常规的业务 一客户端 先看最基本的情况 1 在表单设置multipart/form-data,通过提交键把数据和附件一次性提交的.服务器更多的是对 ...
- android 中使用缓存加载数据
最近app快完工了,但是很多列表加载,新闻咨询等数据一直从网络请求,速度很慢,影响用户体验,所以寻思用缓存来加载一些更新要求不太高的数据 废话不多说,上代码 欢迎转载,但请保留文章原始出处:) 博客 ...
- oracle导出数据显示出现ora-00109或者LRM-00109出错修改办法
出现这种问题是因为日期格式的问题,调整日期格式后就可以了 改成yyyy-mm-dd的格式就好了
- iOS-OC-基础-NSDictionary常用方法
/*=============================NSDictionary(不可变字典)的使用=========================*/ //————————————————— ...
- (转)ultraedit for linux 安装与注册破解
http://hi.baidu.com/simonwoos_zone/item/93f88b41dbad48e41e19bcc8
- (转) eclipse debug (调试) 学习心得
1.Step Into (also F5) 跳入2.Step Over (also F6) 跳过3.Step Return (also F7) 执行完当前method,然后return跳出此metho ...
- [poj2762] Going from u to v or from v to u?(Kosaraju缩点+拓排)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Going from u to v or from v to u? Tim ...