yansheng.wang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  mp3

摘要:MP3帧体的大小由MPEG版本号、比特率、抽样率和填充位4个因素确定。计算公式为:帧大小= ((MPEG版本号== 1?144:72) * 比特率)/抽样率 + 填充位位率为64kbps,采样频率为44.1kHz,padding(帧长调节)为1时,帧长为210字节。位率为128kbps,采样频率为44.1kHz,padding(帧长调节)为0时,帧长为418字节。以下是简单示例:#include <stdio.h> #include <stdlib.h> #include "lame.h" #define BUF_SIZE 512 #define I 阅读全文
posted @ 2012-07-16 18:01 小小程序员001 阅读(1838) 评论(0) 推荐(0)

摘要:MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)。LIBMAD 提供 24-bit 的 PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用 libmad 提供的一系列 API,就可以非常简单地实现 MP3 数据解码工作。在 libmad 的源代码文件目录下的 mad.h 文件中,可以看到绝大部分该库的数据结构和 API 等。 网上有很多关于libmad的使用实例,在他们的基础上,我稍加总结、整理和衍生,文末给出相关参考链接,表示感谢!一、libmad库源码 可以去相 阅读全文
posted @ 2012-07-15 11:19 小小程序员001 阅读(11802) 评论(1) 推荐(1)

摘要:头文件:#ifndef _MP3_H_ #define _MP3_H_ #include "stdint.h" enum { BITRATE_MPEG1, BITRATE_MPEG2, BITRATE_NUM }; enum { SAMPLERATE_MPEG1, SAMPLERATE_MPEG2, SAMPLERATE_MPEG25, SAMPLERATE_NUM }; #define MP3_FRAME_SYNC 0xFFE00000 #define MASK_VERSION 0x00180000 #define SHIFT_VERSION 19 #... 阅读全文
posted @ 2012-06-17 21:22 小小程序员001 阅读(631) 评论(1) 推荐(0)