使用 lame 库将音频 pcm文件编码为mp3.

旧街凉风 提交于 2020-08-11 18:57:03

iOS 平台: iOS 使用 lame 这个开源的 mp3编码库将 pcm 文件编码为 mp3文件。初次体验一下音频编解码。(在音视频开发过程中,不可能所有的编码解码处理都由开发从零编写,因此要借助一些第三方库)

1.创建一个 iOS 工程,在页面上画一个按钮,然后添加一个点击按钮事件,用于点击后把 pcm音频文件编码为 mp3文件。

- (IBAction)startEncode:(id)sender {

    Mp3Encoder *encoder = new Mp3Encoder();

    // 源文件的的路径

    const char* pcmFilePath = [[CommonUtil bundlePath:@"vocal.pcm"] cStringUsingEncoding:NSUTF8StringEncoding];

    // 要生成的mp3文件的路径

    const char *mp3FilePath = [[CommonUtil documentsPath:@"vocal.mp3"] cStringUsingEncoding:NSUTF8StringEncoding];

    int sampleRate = 44100;

    int channels = 2;

    int bitRate = 128 * 1024;

    // 初始化解码器,传入源文件路径,生成的文件路径,采样频率,声道数,码率

    encoder->Init(pcmFilePath, mp3FilePath, sampleRate, channels, bitRate);

    // 编码

    encoder->Encode();

    //关闭文件

    encoder->Destory();

    delete encoder;

    NSLog(@"Encode Success");

    NSLog(@"生成结果:%s",mp3FilePath);

}

  • 这里主要整理下 lame 的生成和使用,例子和效果可以参考最下面 Demo链接。

1.下载lame库 https://sourceforge.net/projects/lame/files/lame/. 自己选择一个版本进行编译吧,我一般都是选择最新的。

2.下载build的脚本, https://github.com/kewlbear/lame-ios-build 3.下载完上面两个文件,把两个文件放在同一个目录的路径下,然后终端打开,cd到这个路径下面,执行:sudo ./build-lame.sh 一般会生成3个文件。如果只有两个或者一个,参考下面文章修改错误:】 https://www.jianshu.com/p/8f6fcf85e143

4.生成的文件可以参考:https://www.cnblogs.com/XYQ-208910/p/7650759.html 5.运行下面demo例子中代码,自己尝试生成一下 lame,自己敲一下代码,体验下编解码的过程和 lame的首次使用。

Demo例子参考:https://github.com/fangxuan0/iosMp3Encode Demo文章参考:https://blog.csdn.net/sinat_36772813/article/details/85268190

自身不足之处: 1.各个音频文件优缺点:https://wenku.baidu.com/view/cdea117a5beef8c75fbfc77da26925c52cc591be.html

2.c++

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!