HarmonyOS 音视频之Lame MP3编码实现

往期知识点整理

背景

MP3是一种广泛使用的音频压缩格式,以其高效的压缩算法和广泛的兼容性而闻名,是最为普及的音频格式之一,几乎所有的音频播放设备、移动设备、计算机和音频软件都支持 MP3 播放。这使得 MP3 成为事实上的标准格式,比起压缩性能兼容性才更是MP3 市场占有率的保障。

但是MP3是版权编码,一般手机厂商不包含MP3硬件编码器,只有MP3硬件解码器,市面上最常用的开源MP3软编码器是Lame,本文我们以Lame 为例,从跨平台编译到接入应用全流程基于Lame 事件MP3 软编码器。

编译Lame

一般三方开源的C/C++库有三种编译方式:

  • cmake
  • make
  • configure

不同构建脚本要配置不同变量,lame 是基于Configure 构建脚本的,通过./Configure -h查看配置参数。OpenHarmony 提供了一套交叉编译框架lycium,根据模版配置三方库信息后执行构建脚本即可。tpc_c_cplusplus 项目thirdparty中已经包含了 lame模块,我们直接编译即可。

进入lycium目录下执行:./build.sh lame即可开始编译,编译完成后可以在lycium目录下看到user/lame目录,里面已经编译好对应的动态库。

在macos arm版本电脑中编译报错,在tpc_c_cplusplus/thirdparty/lame/lame-3.100/armeabi-v7a-build/build.log查看日志后:

1 error generated.
1 error generated.
1 error generated.
../../mpglib/dct64_i386.c:34:10: fatal error: 'config.h' file not found
#include <config.h>
         ^~~~~~~~~~
make[2]: *** [tabinit.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [common.lo] Error 1
make[2]: *** [interface.lo] Error 1
make[2]: *** [decode_i386.lo] Error 1
make[2]: *** [layer1.lo] Error 1
1 error generated.
1 error generated.
make[2]: *** [layer2.lo] Error 1
make[2]: *** [dct64_i386.lo] Error 1
1 error generated.
make[2]: *** [layer3.lo] Error 1
make[1]: *** [all-recursive] Error 1
** [tabinit.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [common.lo] Error 1
make[2]: *** [interface.lo] Error 1
make[2]: *** [decode_i386.lo] Error 1
make[2]: *** [layer1.lo] Error 1
1 error generated.
1 error generated.
make[2]: *** [layer2.lo] Error 1
make[2]: *** [dct64_i386.lo] Error 1
1 error generated.
make[2]: *** [layer3.lo] Error 1
ma
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值