LAME简介
LAME是目前非常优秀的一种MP3编码引擎,行业内,转码MP3格式的音频文件时,LAME库就是最常用的编码器,当达到320Kbit/s时,LAME编码出来的音频质量几乎可以和CD的音质相媲美,并且还能保证整个音频文件的体积非常小,因此若要在移动端平台上编码MP3文件,使用LAME便成为唯一的选择。
注意: 《音视频开发进阶》书中用的是3.99.5版本的,
通过脚本,让LAME支持iOS平台
./configure \
--disable-shared \
--disable-frontend \
--host=arm-apple-darwin \
##这个是你文件存放的路径(写脚本时删除这句话,把路径设置为你的目标路径)
--prefix="/Users/pangrifu/Desktop/编程知识/音视频进阶代码/lame/thin/arm64" \
CC="xcrun -sdk iphoneos clang -arch arm64" \
CFLAGS="-arch arm64 -fembed-bitcode -miphoneos-version-min=7.0" \
LDFLAGS="-arch arm64 -fembed-bitcode -miphoneos-version-min=7.0"
make clean
make -j8
make install
conf igure : 是符合GNU标准的软件包发布所必备的命令,所以这里是通过configure的方式来生成Makef ile文件,然后使用make和makeinstall编译和安装整个库。可使用conf igure -h命令来查看一下conf igure的帮助文档,了解LAME的可选配置项,具体如下。
--prefix : 将编译好的库放在哪一个目录下
--host : 指定最重要运行的品台
CC : 指定交叉工具编译链的路径
CFLAGS : 指定编译时所带的参数
实际操作
step1 下载LAME库文件
step2 编写脚本文件
关于如何创建脚本文件,请查看上一篇文章:Mac下建立.sh脚本文件
step3 目录结构
image.pngstep4 生成.a文件
在终端中 cd 到lame-3.100
目录下
cd /Users/pangrifu/Desktop/编程知识/音视频进阶代码/lame/lame-3.100
然后执行命令sudo ../build_armv7.sh
,提示输入密码,输入密码即可,
此时目录下多了如下的文件:
同样的步骤,可以编译arm64
下的版本,然后使用lipo -create
来合并静态库
注意,此处arm64是不带v的,本人在编写脚本的时候,多谢了一个v,导致出错了好多次,检查了很久才找到问题.
通过 lip -creat
指令合并arm64和armv7两个.a文件
lipo -create ./arm64/lib/libmp3lame.a(第1个.a文件路径) ./armv7/lib/libmp3lame.a(第2个.a文件路径) -output libmp3lame.a(输出文件)
合并之后,使用file libmp3lame.a
来验证,如果输出如下的内容,则说明编译成功了:
libmp3lame.a: Mach-O universal binary with 2 architectures: [arm_v7:current ar archive random library] [arm64]
libmp3lame.a (for architecture armv7): current ar archive random library
libmp3lame.a (for architecture arm64): current ar archive random library
image.png
网友评论