Media Player Classic(guliverkli)是由匈牙利人Gabest开发,基于源代码开放协议(GPL:GNU通用公共许可证)的软件,暴风影音等不少播放器都是在它的基础上做出来的,在sourceforge.net上的项目叫做guliverkli,地址是:http://sourceforge.net/projects/guliverkli/.
1.下载guliverkli
首先安装TortoiseSVN客户端,通过地址:https://guliverkli.svn.sourceforge.net/svnroot/guliverkli检出源代码。
2.编译guliverkli
注意:需要使用Microsoft Vis l St io 2005及其以上版本编译,我用的VS2008。
2.1 安装各种SDK
阅读trunk\guliverkli\docs\HowToCompile.txt,根据要求,安装下列SDK(均可以在微软网站找到):
a.Windows Media Format SDK 9
http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=0967C51E-F077-469C-8019-D86C2E3D5D6E&displaylang=zh-cn
b.DirectX 9 SDK
http://www.microsoft.com/downloads/details.aspx?familyid=D625324C-59B4-4951-849E-640B508DC442&displaylang=en
c.Platform SDK
http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
2.2 设置各种SDK
安装好这些SDK后,在VC++中设置好Incl e和Lib目录。
必须注意的是,HowToCompile.txt中所说的<DXSDK>\Samples\C++\DirectShow\BaseClasses在新版的DXSDK中根本不存在(找不到<streams.h>),费尽周折,发现竟然被微软放在
D:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Samples\Multimedia\DirectShow\BaseClasses目录下,而且要自己编译(该目录下有个makefile,执行NMAKE命令即可)。
3. 开始编译guliverkli
注意要按照如下顺序,并且编译的模式要统一,例如都是Unicode Debug模式
a. deccs
b. dsutil
c. ui (run \lib\ui.bat to merge them)
d. s pic
e. s titles
f. filters (for mpc only build those configurations which output a lib, the rest outputs stand-alone filters)
g. 其他
guliverkli中的几个小错误:
在ccdecoder.cpp的129行有几个错误:'?'都写成了'?
Rasterizer.cpp中提示找不到_MAX,可以替换为max
webserver.cpp中提示找不到atlisapi.h,需要在http://atlserver.codeplex.com/下载,VS2008不再默认支持ATL Server了。
apps\mplayerc项目中Link input选项:将RadGtSplitterRU.lib删除
其他小错误,根据提示一修改就可以了。
首先安装TortoiseSVN客户端,通过地址:https://guliverkli.svn.sourceforge.net/svnroot/guliverkli
注意:需要使用Microsoft Vis l St io 2005及其以上版本编译,我用的VS2008。
阅读trunk\guliverkli\docs\HowToCompile.txt,根据要求,安装下列SDK(均可以在微软网站找到):
http://www.microsoft.com/downloads/details.aspx?familyid=D625324C-59B4-4951-849E-640B508DC442&displaylang=en
http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
安装好这些SDK后,在VC++中设置好Incl e和Lib目录。
必须注意的是,HowToCompile.txt中所说的<DXSDK>\Samples\C++\DirectShow\BaseClasses在新版的DXSDK中根本不存在(找不到<streams.h>),费尽周折,发现竟然被微软放在
D:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Samples\Multimedia\DirectShow\BaseClasses目录下,而且要自己编译(该目录下有个makefile,执行NMAKE命令即可)。
注意要按照如下顺序,并且编译的模式要统一,例如都是Unicode Debug模式
a. deccs
b. dsutil
c. ui (run \lib\ui.bat to merge them)
d. s pic
e. s titles
f. filters (for mpc only build those configurations which output a lib, the rest outputs stand-alone filters)
g. 其他
Rasterizer.cpp中提示找不到_MAX,可以替换为max
webserver.cpp中提示找不到atlisapi.h,需要在http://atlserver.codeplex.com/
apps\mplayerc项目中Link input选项:将RadGtSplitterRU.lib删除
其他小错误,根据提示一修改就可以了。