Frank's Technotes首页 | 关于 | 帮助 | 常见问题解答 | 特殊页面 | 登录
探索·思考·发现
可打印版 | 免责条款 | 隐私政策

LAME

本页为 林爽的技术笔记本 之一部分。

目录

背景知识

高质量MP3制作之路中,提到了 LAME 压缩引擎。LAME 是一个开源的 MP3 编(解)码器,基于 GNU LGPL 发布。LAME 的名字,和不少其他开源软件一样,是递归定义的,它的意思是“LAME Ain't an MP3 Encoder”。

我们可以从它的主页[1]得到一份它最新版本的源代码,并且自己编译。这份源代码是 C 语言写成的平台无关的代码,即不论在 Windows, Linux, Mac 等各种平台上均可用支持标准的编译器来编译。当然,也可以到网上搜索一份别人编译好的 Win32 版的 lame.exe。当然,自己动手编译,还是最放心的。

为什么 LAME 只以源代码形式发布?

和其他很多开源软件不同, LAME 在 sourceforge.net 上没有提供不同平台的二进制代码。这是为了避免一些法律上的纠纷。据称,LAME 使用的一些 MP3 压缩算法处理技巧被 Fraunhofer-Institut for Integrated Circuits 拥有专利权。但是,LAME 开发组声称他们仅仅以源代码发布,可以认为是对这种专利算法的一种“描述”,本身不构成侵权。同时,还建议采用 LAME 有关库的软件开发商最好从专利权人处获得一张许可证。

作为一般用户,以学习、研究为目的编译一份 LAME 的代码,是符合中国法律规定的。

编译过程

准备工作

既然在 Windows 平台下编译 native 目标代码,自然还是选择 Microsoft Visual Studio 系列中的 C++ 编译器。我用的是免费的 Microsoft Visual C++ 2005 Express 版本(可以从微软的网站[2]上免费下载并安装)。不过,据称微软的 VC++ Express 开发组很早就决定,这个免费提供的工具不能一装好就被用于 native Windows 程序的开发,而默认只能进行.NET/CLR 的开发。怎么办?没关系,同样到微软的网站免费下载一套 Platform SDK[3],我写这篇文章的最新版本是 Windows Server 2003 R2。装好后,在 VC++ Express 的安装目录(即 %ProgramFiles%\Microsoft Visual Studio 8\VC)下面建一个新目录 PlatformSDK,再把 Platform SDK 安装目录下面的 Bin, Include 和 Lib 三个目录全部复制到刚刚建立的 PlatformSDK 目录下面。准备工作就做完了。

说明一下,这个 Windows Server 2003 R2 Platform SDK 的作用是供开发人员使用,得以用 Microsoft Visual Studio 开发各种平台上的程序。默认包含 Windows 2000,Windows XP (32位及64位平台),Windows Server 2003(32位及64位平台)的有关库文件。不过,安装好的不能(微软也不希望)立即与 VC++ Express 建立关联,所以需要我们手动复制一下。复制后,如果把 Windows Server 2003 R2 Platform SDK 删掉以节省950M的磁盘空间,是没有问题的。

开始编译

之后,打开 lame 源代码目录中的 lame_vc6.dsw 文件(默认直接用 VC++ Express 打开)。经过一系列版本转换,终于可以用上了。首先,将当前Solution中的工程“lame”(而不是“Adbg”)设为默认工程(右键点工程名lame,选“Set as StartUp Project”),再将Build/Configuration Manager中的编译选项改为“Release”。然后就可以Build/Build solution了。

Build之后,会发现有两个工程因为缺少头文件无法编译。一个是MP3x(MP3 frame analyzer),这个是基于 GTK 的,我们暂时用不上。另一个是lame ACM(符合Audio Compression Manager规范,这是微软提出的标准),也暂时不需要。如果想编译一下这两个工具,可以查看源代码各目录中的说明文件。编译好之后,我们可以在源码目录中找到 output 子目录。顺利的话,应该可以发现 lame.exe 和 lame_enc.dll 两个文件。好了,赶紧开一个 cmd 窗口试运行一下吧!


问答

Q: 一定要用VC++ Express吗??
A: 不一定,但使用VC++ Express是不用付钱的。如果你愿意买VS2005的话当然也可以。

有关链接

取自"http://linshuang.info/wiki/LAME"

本页面已经被浏览3,724次。 这页的最后修订在 2008年1月27日 (星期日) 08:51。


查找

浏览
首页
最近更改
随机页面
留言板
Frank's Blog
编辑
查看源代码
编辑帮助
页面选项
讨论此页
发表评论
可打印版
页面信息
页面历史
链入页面
链出更改
我的选项
登录/创建账户
特殊页面
最新页面
文件列表
统计
错误报告
更多...