一、MP3文件概述

一、概述

MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位。MP3 的全称应为 MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是 MPEG1 标准中的声音部分,也叫 MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应 MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高,MP1 和 MP2 的压缩率分别为 4:1 和6:1-8:1,而 MP3 的压缩率则高达 10:1-12:1,也就是说,一分钟 CD 音质的音乐,未经压缩需要 10MB的存储空间,而经过 MP3 压缩编码后只有 1MB 左右。不过 MP3 对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3 采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压 缩比的 MP3 文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。

二、整个MP3文件结构

Mp3和Wav文件不同,Mp3没有文件头,MP3文件由帧(frame)构成的,每个帧包括帧头(FrameHeader)和帧数据 (FrameData),MP3文件大体分为三部分:TAG_V2(ID3V2)、Frame、 TAG_V1(ID3V1),值得一提的是TAG_V2(ID3V2)和TAG_V1(ID3V1)也是帧,可以称之为标签帧,Frame部分可以称之为 数据帧。在一个Mp3文件里,不一定有标签帧,但一定有数据帧。

1. ID3V2

包含了作者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量。

2. Frame

一系列的帧,个数由文件大小和帧长决定;每个FRAME的长度可能不相等,也可能相等,由位率bitrate决定;每个FRAME又分为帧头和数据实体两部分,帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立。

3.ID3V1

包含了作者,作曲,专辑等信息,长度为128BYTE。

三 、Mp3文件的种类

根据Mp3中的Frame(数据帧)的位率bitsrate是否相同,可以分成两大类Mp3文件:帧的位率相等,称为CBR(constant BitRate);帧的位率不相等,称之为VBR(Variable BitRate);VBR的Mp3定义了两种规范,分别是Xing 和VBRI文件。如下表:


位率相等(Constant BitRate)


CBR  Mp3文件


位率不等(Variable BitRate)


Xing  Mp3文件


VBRI  Mp3文件

时间: 2024-10-09 16:51:34

一、MP3文件概述的相关文章

计算机程序的思维逻辑 (56) - 文件概述

我们在日常电脑操作中,接触和处理最多的,除了上网,大概就是各种各样的文件了,从本节开始,我们就来探讨文件处理,本节主要介绍文件有关的一些基本概念和常识,Java中处理文件的基本思路和类结构,以及接来下章节的安排思路. 基本概念和常识 二进制思维 为了透彻理解文件,我们首先要有一个二进制思维.所有文件,不论是可执行文件.图片文件.视频文件.Word文件.压缩文件.txt文件,都没什么可神秘的,它们都是以0和1的二进制形式保存的.我们所看到的图片.视频.文本,都是应用程序对这些二进制的解析结果. 作

1.[python]怎样将二进制音频转为mp3文件

这个困扰我半小时的智障的问题... "wb"(二进制写)方式打开mp3文件,将二进制mp3内容写入mp3文件: mp3_data = b"***" with open("1.mp3", "wb") as f: f.write(mp3_data)

【转】MP3文件原理及结构解析

1.引言文件压缩技术的日新月异使得MP3成为时下最烫手的音乐格式,优质的音乐随着0与1的排列迅速散布 到世界各地,撼动人心.何谓MP3?MP3的全称是MPEG Audio Layer 3,它是一种高效的计算机音频编码方案,它以较大的压缩比将音频文件转换成较小的扩展名为.MP3的文件,基本保持原文件的音质.MP3是 ISO/MPEG标准的一部分,ISO/MPEG标准描述了使用高性能感知编码方案的音频压缩,此标准一直在不断更新以满足“质高量小”的追求,现已形成 MPEG Layer 1.Layer

Unity3d:播放物理目录下的MP3文件

u3d里,是支持播放MP3文件的,但要放到资源里,不支持播放物理目录下的MP3文件.由于界面上无需显示,只是当作背景音乐来播放,所以想到调用c#的组件来解决此问题.主要代码都在附件中,根据需要加到自己的u3d程序里即可.贴士:此类问题容易造成局限性,只局限在u3d里面,u3d不支持了就判了死刑,而忘记真正的药是c#,u3d只是汤而已 源码下载 Unity3d:播放物理目录下的MP3文件,布布扣,bubuko.com

pygame加载中文名mp3文件出现error

好一阵子没有写东西了,最近几天在做一个基于Python pygame的音乐播放器,本来想做完了,再来发篇文章的,可越做越深,框架大致出来了,考虑周期比较长,也可能是我个人问题,做得比较慢.下面来谈谈pygame.mixer.music.load()加载中文名的mp3文件问题. (发表时间2017-03-30 22:45:58 原创链接http://www.cnblogs.com/dearvee/p/6649055.html) #前言: 今天刚刚做了个音乐列表,但笔者发现在指定目录mp3文件名为中

声卡录制:采集声卡播放的声音,并录制成mp3文件!

声卡录制是一个常见的需求,比如我们在线观看视频或听歌,觉得一段音乐特别好,但是,又没有提供下载,那么,我们就可以使用声卡录制技术,边播放边将其录制下来. 实现声卡录制,涉及到两个基础的技术:声卡捕捉.录制声音成mp3文件.语音视频采集组件MCapture提供了声卡采集的功能,而语音视频录制组件MFile提供了将声音数据录制生成mp3文件的功能.所以,结合MCapture和MFile,将它们组合起来,就可以实现我们想要的软件. 本文实现了一个简单的声卡录制的Demo,Demo运行起来后的截图如下:

Java类编译后Class文件概述(上)

一.Class文件 注意:每一个Class 文件都对应着唯一一个类或接口的定义信息,但是相对地,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成). 二.class文件的文件结构 class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型:无符号数和表. class文件的结构描述 ClassFile { u4 magic; <span style="white-space:pre"> </span>//4位

也说alsa音乐播放(mp3文件从零开始)

首先也是最重要的是:我说大话了,本文也就是一个思路而已,如果你是音乐播放小白也想弄明白原理可以往下看,否则,return -1; 现有的音乐格式千差万别,于是就有了ffmpeg话说这个框架真是够牛逼,音频视频转码都不在话下,我是个死脑筋,遇到不懂的老是想弄明白,对于音乐播放感觉是一头雾水,经过几天的研究以后大致想明白了,对一个mp3文件要播放出来需要经过几个步骤: 1.转码,其实也就是提取文件中有用的音频信息 2.经过第一步得到的wav波形文件 3.调用声卡来播放wav文件,对于linux 3.

C#文本转语音并保存wav和MP3文件

回顾上次写博客至今都有4个多月了,最近工作比较的忙没时间写博文.以后会多坚持写博文,与大家分享下最近遇到的问题.最近因为项目需要,研究了下用C#开发TTS.下面把大体的思路给大家说说,希望对大家有所帮助. 首先需要了解下MS的SAPI,它是微软的语音API.它包括了语音识别SR引擎和语音合成SS引擎两种语音引擎.等下会给大家看下语音合成SS引擎.它由不同的版本,操作系统的不同使用的版本不同,不过我喜欢使用其他的合成语音包,比如:NeoSpeech公司的合成语音包.回过头来,MS 的SAPI的版本