都说Mplayer是Linux下最好的多媒体播放器之一,所以我刚把显示和声卡整好就决心装个这个东东,最后终于在老红帽上装成功了。
下面的安装步骤就是参考众多老鸟的文章及自己N次失败实践出来的,仅供初学者参考。
一、系统环境:
===================================================================
操作系统 RedHat 9
内核版本 linux-2.4.20-8 (版本够老的吧 查内核:#uname -a)
XFree86 4.3.0 (Red Hat Linux release: 4.3.0-2)
GCC版本 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
GTK版本 gtk+-1.2.10-25、gtk+-devel-1.2.10-25
SDL版本 sdl及sdl-devel 1.2.5
===================================================================
以上为安装环境的基本情况,至于说明GCC、GTK、SDL的版本,是因为有人提出MPlayer编译是否成功与这些包的版本有很大的关系,摘录如下:
===================================================================
关于Linux内核:
网上很多人在MPlayer编译出错时都归结为Linux内核版本太低,当然本人也推荐大家使用最新的版本,不过我这里不想太麻烦,即于内核升级等有心情的时候再说吧,总之我现在用的就是2.4.20-8。
===================================================================
关于XFree86:
建议总使用最新版本。正常来说,每个人会这样做,因为XFree86从4.0.2开始,它包含了用来使其能够在它支持的卡片上使用硬件YUV加速(快速的图象显示)的XVideo扩展(在某些地方被称作Xv)。
===================================================================
关于gcc:
(推荐gcc版本为2.9.5和3.2.x)
建议版本是:2.95.3(或者2.95.4)和3.2+。永远不要使用2.96或者3.0.x!他们产生错误的MPlayer的代码。如果你决定更换2.96的gcc,那么不要只是因为新而决定采用3.0.x!3.0.x的早期版本甚至比2.96更buggy。因此不如降级到2.95.x(也把libstdc++降级,其它程序可能需要它)或者根本不升/降级(但这种情况下请对运行时的问题作好准备)。如果你一定要使用3.x.x请使用最新的版本,早先的发行版本有各种各样的错误,确信你使用的至少是3.1,它通过测试且工作正常。关于gcc 2.96的bug仍然没有修正,他们在MPlayer中被绕过!
检查你的gcc版本,运行gcc -v看输出是多少,如果是3.0以下的话,则建议安装gcc3.1以上(根据mplayer的官方说明,3.1以下的gcc和2.96的gcc可以用./configre --disable-gcc-checking参数编译,但可能不稳定),安装gcc3的方法是:进入gcc3目录,运行rpm -ivh *.rpm --nodeps,全部百分百安装后,开一个终端窗口,运行mv /usr/bin/gcc /usr/bin/gcc2和mv /usr/bin/gcc3 /usr/bin/gcc,再运行gcc -v,看输出是否为3.2.2,如果是,则ok,不是,则检查安装步骤。
===================================================================
关于sdl及sdl-devel:
(建议安装,可以支持sdl视频输出模式)
它不是必须的,但是在某些情况下(损坏的音频,在xv驱动模式下奇怪地延迟的显卡)能帮助。总使用最新(1.2.x或以上)的。
检查你的系统有没有安装了sdl及相同版本(一定要相同版本的)的sdl-devel库:运行“软件包管理器”,按“查找软件包”按钮,输入sdl,查找,如果能找到sdl及sdl-devel包,则表示都已经安装(或用rpm -qa|grep SDL*可以查出你系统里已安装的带有SDL字眼的rpm包),如果版本比1.2.0高,那么OK;如果没安装或版本比较低(小于1.2.0),则安装本站提供的sdl包,命令rpm -ivh SDL*.rpm --nodeps或rpm -Uvh SDL*.rpm --nodeps,安装完后运行一下sdl-config --version,看输出是不是1.2.3,如果正确,则ok。
===================================================================
关于gtk及gtk-devel:
MPlayer GUI需要GTK 1.2.x(它不是GTK的,但是面板是的)。skin被保存为PNG格式,因此你需要安装gtk,libpng(和他们的devel包,一般是gtk-dev和libpng-dev)。
查看你的系统中是否有GTK,用rpm -qa|grep gtk*命令。
二、安装前的准备工作
===================================================================
安装MPlayer之前,确认你已经装好显卡和声卡的驱动。至于怎么安装显卡和声卡,那又是另外的长篇了,我的显卡是NVIDIA Fx5200,声卡是intl8x0。
软件包:
1 MPlayer-1.0rc2.tar.bz2
官方站点:http://www.mplayerhq.hu/MPlayer
下载地址:http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2
2 Codes包
all-20071007.tar.bz2
windows-all-20071007.zip
下载地址:http://www.mplayerhq.hu/MPlayer/releases/codecs/
divx4linux-20020418
3 皮肤
下载地址:http://www.mplayerhq.hu/MPlayer/skins/
三、开始安装
===================================================================
Linux软件包的编译安装无非就是:configure、make、make install三步,但中间就是有太多的麻烦事,否则也不会有那么多的安装教程出来了。
1 安装Codecs
必须要先安装Codecs,否则MPlayer在编译时有可能不会编译相关的解码模块。在/usr/lib文件夹下新建两个文件(codecs和wincodecs)
mkdir /usr/lib/codecs
mkdir /usr/lib/wincodecs
解压两个code包,并将其内文件移到上面新建的两个文件夹
tar jxvf all-20071007.tar.bz2
mv all-20071007/* /usr/lib/codecs
unzip windows-all-20071007.zip
mv windows-all-20071007/* /usr/lib/wincodecs
安装divx5 for linux:
进入divx4linux-20020418目录(cd divx4linux-20020418),运行./install.sh
===================================================================
2 安装Mplayer
解压MPlayer:
tar jxvf MPlayer-1.0rc2.tar.bz2
cd MPlayer-1.0rc2
===================================================================
(1).
这一步很重要,MPlayer-1.0rc2配置参数与以前版本有所不同,有些参数已经不适用于新版了。如果你想自已指定一些参数,请用命令./configure --help查看详细参数,调用configure后,还可以通过查看config.make文件,看看有什么不对的地方。如果不想太麻烦就直接用下面的配置吧,我就是这么配置MPlayer-1.0r2的,效果不错。
./configure --prefix=/usr/local --libdir=/usr/lib --enable-gui --enable-dynamic-plugins --enable-real --enable-freetype --language=zh_CN --win32codecsdir=/usr/lib/wincodecs
===================================================================
(2).
make
这一步命令很简单,但往往出错就出在这里,我所遇到的make错误有如下几种原因:
------ configure参数没设定好,如:--libdir=DIR 没指定好;
------ 有些参数本来默认是autodetect,但在调用configure时却在参数中强制指定,而实际编译环境却不允许。
------ 最后一种就是source版本过时导致的错误了,如果你也和我一样在make时出现下面的情况:
....
/usr/include/netinet/in.h:259: parse error before '(' token
/usr/include/netinet/in.h:259: parse error before "__u32"
/usr/include/netinet/in.h:260: parse error before '(' token
/usr/include/netinet/in.h:260: parse error before "__u16"
/usr/include/netinet/in.h:262: parse error before '(' token
/usr/include/netinet/in.h:262: parse error before "__u32"
/usr/include/netinet/in.h:264: parse error before '(' token
/usr/include/netinet/in.h:264: parse error before "__u16"
....
make[1]: Leaving directory `/download/mplayer/mplayer-1.0rc2/stream'
make: *** [stream/stream.a] Error 1
那么你需要修改一下/usr/include/netinet/in.h文件,在 __BEGIN_DECLS 后面增加下述文字
#undef ntohl
#undef ntohs
#undef htonl
#undef htons
(4).
make install
这里我没遇到过什么问题。
===================================================================
3 安装皮肤
把你的皮肤文件压包,并cp到/usr/local/mplayer/share/mplayer/skins/下,此外要mkdir /usr/local/mplayer/share/mplayer/skins/default文件夹,cp一个皮肤数据到该文件夹中。也可以直接mv 一个皮肤文件为default。
===================================================================
4 安装字体
从/usr/share/fonts/zh_CN/TrueType/下cp一个字体文件到/usr/local/mplayer/中,注意拷贝后的命名叫subfont.ttf我是如下操作的:
cp /usr/share/fonts/zh_CN/TrueType/gbsn00lp.ttf /usr/local/mplayer/subfont.ttf
===================================================================
5 拷贝执行文件到bin目录下
cp mpalyer /bin/
===================================================================
6、运行
mpalyer /路径/要播放的媒体文件名;