PCM转MP3音频文件(借助lame库)
来源:互联网 发布:snmp简单网络管理协议 编辑:程序博客网 时间:2024/06/08 06:26
pcm2mp3.c
#include <stdio.h>#include <stdlib.h>#include <lame.h>#define INBUFSIZE 4096#define MP3BUFSIZE (int) (1.25 * INBUFSIZE) + 7200int encode(char* inPath, char* outPath) {int status = 0;lame_global_flags* gfp;int ret_code;FILE* infp;FILE* outfp;short* input_buffer;int input_samples;char* mp3_buffer;int mp3_bytes;gfp = lame_init();if (gfp == NULL) {printf("lame_init failed/n");status = -1;goto exit;}ret_code = lame_init_params(gfp);if (ret_code < 0) {printf("lame_init_params returned %d/n",ret_code);status = -1;goto close_lame;}infp = fopen(inPath, "rb");outfp = fopen(outPath, "wb");input_buffer = (short*)malloc(INBUFSIZE*2);mp3_buffer = (char*)malloc(MP3BUFSIZE);do{input_samples = fread(input_buffer, 2, INBUFSIZE, infp);printf("input_samples is %d./n",input_samples);//fprintf(stderr, "input_samples is %d./n", input_samples);mp3_bytes = lame_encode_buffer_interleaved(gfp, input_buffer,input_samples/2, mp3_buffer, MP3BUFSIZE);//fprintf(stderr, "mp3_bytes is %d./n", mp3_bytes);if (mp3_bytes < 0) {printf("lame_encode_buffer_interleaved returned %d/n", mp3_bytes);status = -1;goto free_buffers;} else if(mp3_bytes > 0) {fwrite(mp3_buffer, 1, mp3_bytes, outfp);}}while (input_samples == INBUFSIZE);mp3_bytes = lame_encode_flush(gfp, mp3_buffer, sizeof(mp3_buffer));if (mp3_bytes > 0) {printf("writing %d mp3 bytes/n", mp3_bytes);fwrite(mp3_buffer, 1, mp3_bytes, outfp);}free_buffers:free(mp3_buffer);free(input_buffer);fclose(outfp);fclose(infp);close_lame:lame_close(gfp);exit:return status;}int main(int argc, char** argv) {if (argc < 3) {printf("usage: lame_test rawinfile mp3outfile/n");}encode(argv[1], argv[2]);return 0;}
0 0
- PCM转MP3音频文件(借助lame库)
- PCM转MP3音频文件(借助lame库)
- 录音(PCM格式)、播放、lame转码成MP3
- iOS 使用lame库进行音频转mp3(一)
- iOS 使用lame库进行音频转mp3(二)
- Android开发 使用Lame把音频文件转换成mp3格式
- Android开发 使用Lame把音频文件转换成mp3格式
- 【转】PCM Audio,PCM格式音频文件 详解
- lame mp3
- mp3 lame
- mp3转pcm
- PCM音频文件
- MP3 Lame 转换 参数 设置(转)
- Lame For Unity Wav转Mp3解决方案
- LAME-MP3编码引擎(音频)
- lame mp3 wav文件转mp3 单通道
- IOS 实现使用lame库 录音转MP3格式 边录边转功能
- Android编译Lame的全平台so库方案2,并实现转码mp3
- Android 图片缓存处理
- [LeedCode OJ]#85 Maximal Rectangle
- 更新至OSX 10.10后MBA外接网卡无法使用的解决
- javascript的对象
- 排序算法(三)选择排序
- PCM转MP3音频文件(借助lame库)
- 深入理解Java内存模型之系列篇
- JDBC DAO
- js算法:分治法-快速排序
- zz: Python subprocess创建子进程(Windows下打开新的CMD窗口)
- End User 访问SharePoint URL获取数据流程
- 中科院自动化所实验室情况介绍(2015年8月)
- CodeForces 547B(单调栈)
- csdn的博客栏目html设置