音频格式(1): MP3学习记录

在日常生活中,MP3格式使用的非常频繁。

那么到底什么是MP3呢

下面是百度百科的解释

MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III),简称为MP3。它被设计用来大幅度地降低音频数据量。利用 MPEG Audio Layer 3 的技术,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的文件,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。用MP3形式存储的音乐就叫作MP3音乐,能播放MP3音乐的机器就叫作MP3播放器。


在详细研究了参考的3篇文章,我大概总结了MP3的格式结构

1. Tag

Tag包含的信息有,整个Tag的长度信息,以及对MP3的一些描述信息。

下图中的,作者,标题等信息都在这个Tag里面,只要我们解析了Tag就可以获取到这些信息。



2. Stream

Stream就是一个个流,是压缩后的。

也包括StreamHeader + StreamData,我们可以根据这个StreamHeader来解析StreamData,然后将StreamData交给声卡,让其来播放。


3. Tail

Tail其实就是

ID3V1

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

但是呢?在一个标准MP3格式中,是有这128个字节的。

但不是所有的MP3文件都是标注格式,有的MP3格式没有这个ID3V1,所以当碰到了,也无需惊讶。。




4.开源库libmad

一个MP3文件,我想要解析它。得到所有的信息,每一个块的内容具体是什么,我想要知道。

所以我研究了libmad开源库,在windows编译后,再加上网上的一些开源代码。做了一个MP3格式侦探的工具。

这里记录一下libmad的使用的大体过程:

libmad不断寻找“FF E0”,作为一个Stream的头标识,他会跳过Tag字段。













参考:

1. http://blog.csdn.net/fulinwsuafcie/article/details/8972346

2. http://blog.csdn.net/sunshine1314/article/details/2514322

3. http://blog.csdn.net/wwv386646959/article/details/40868035

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值